0 txs
0 calls
constructor
No constructor.
functions
askHash
purefunction askHash(tuple ask) pure returns (bytes32)
bidHash
purefunction bidHash(tuple bid) pure returns (bytes32)
nonceCancellation
viewfunction nonceCancellation(address, uint256) view returns (bool)
onChainApprovals
viewfunction onChainApprovals(address, bytes32) view returns (bool)
orderAgreementHash
purefunction orderAgreementHash(tuple agreement) pure returns (bytes32)
owner
viewfunction owner() view returns (address)
cancelNonces
nonpayablefunction cancelNonces(uint256[] nonces)
fillOrder
nonpayablefunction fillOrder(tuple agreement, tuple bid, bytes bidSignature, uint8 bidSignatureKind, tuple ask, bytes askSignature, uint8 askSignatureKind)
fillOrderEth
payablefunction fillOrderEth(tuple agreement, tuple bid, bytes bidSignature, uint8 bidSignatureKind, tuple ask, bytes askSignature, uint8 askSignatureKind) payable
renounceOwnership
nonpayablefunction renounceOwnership()
setArchipelagoRoyaltyRate
nonpayablefunction setArchipelagoRoyaltyRate(uint256 newRoyaltyRate)
setEmergencyShutdown
nonpayablefunction setEmergencyShutdown(bool isShutdown)
setOnChainAskApproval
nonpayablefunction setOnChainAskApproval(tuple ask, bool approved)
setOnChainBidApproval
nonpayablefunction setOnChainBidApproval(tuple bid, bool approved)
setTreasuryAddress
nonpayablefunction setTreasuryAddress(address newTreasuryAddress)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AskApproval
event AskApproval(address indexed participant, bytes32 indexed askHash, bool approved, (bytes32 agreementHash, uint256 nonce, uint40 deadline, bytes32[] extraRoyalties, uint256 tokenId, bool unwrapWeth, address authorizedBidder) ask)
BidApproval
event BidApproval(address indexed participant, bytes32 indexed bidHash, bool approved, (bytes32 agreementHash, uint256 nonce, uint40 deadline, bytes32[] extraRoyalties, bytes trait, address traitOracle) bid)
NonceCancellation
event NonceCancellation(address indexed participant, uint256 indexed nonce)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RoyaltyPaid
event RoyaltyPaid(uint256 indexed tradeId, address indexed payer, address indexed recipient, uint256 micros, uint256 amount, address currency)
TokenTraded
event TokenTraded(uint256 indexed tradeId, address indexed tokenAddress, uint256 indexed tokenId)
Trade
event Trade(uint256 indexed tradeId, address indexed buyer, address indexed seller, uint256 price, uint256 proceeds, uint256 cost, address currency)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001d3362000023565b62000073565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6138ed80620000836000396000f3fe6080604052600436106100f75760003560e01c80638da5cb5b1161008a578063f3bfcaf811610059578063f3bfcaf814610295578063f6e5e817146102e0578063fb395ad114610300578063fd1711e51461033b57600080fd5b80638da5cb5b1461020d5780638de1132d146102425780639fb28faf14610255578063f2fde38b1461027557600080fd5b8063715018a6116100c6578063715018a6146101985780637e7ee88b146101ad57806382887804146101cd578063841db50d146101ed57600080fd5b806314c64402146101035780635f56dfd3146101255780636605bfda146101585780636872a84d1461017857600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5061012361011e366004612be5565b61035b565b005b34801561013157600080fd5b50610145610140366004612ef3565b610412565b6040519081526020015b60405180910390f35b34801561016457600080fd5b50610123610173366004612f28565b610423565b34801561018457600080fd5b50610145610193366004612fde565b6104f0565b3480156101a457600080fd5b506101236104fb565b3480156101b957600080fd5b506101456101c83660046130ae565b610588565b3480156101d957600080fd5b506101236101e83660046130f2565b610593565b3480156101f957600080fd5b506101236102083660046131e5565b6105c1565b34801561021957600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014f565b6101236102503660046130f2565b6106b3565b34801561026157600080fd5b506101236102703660046131fe565b6108e3565b34801561028157600080fd5b50610123610290366004612f28565b610993565b3480156102a157600080fd5b506102d06102b0366004613273565b600260209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161014f565b3480156102ec57600080fd5b506101236102fb36600461329f565b610ac3565b34801561030c57600080fd5b506102d061031b366004613273565b600160209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b506101236103563660046132f1565b610b56565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600061041d82610bdc565b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103d8565b6003805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b600061041d82610ca4565b60005473ffffffffffffffffffffffffffffffffffffffff16331461057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103d8565b6105866000610d59565b565b600061041d82610dce565b6000806105a589898989898989610e52565b915091506105b68989848885610fd4565b505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103d8565b6113888111156106ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f70726f746f636f6c20726f79616c747920746f6f20686967680000000000000060448201526064016103d8565b600455565b6000806106c589898989898989610e52565b90925090503373ffffffffffffffffffffffffffffffffffffffff831614610749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6f6e6c7920626964646572206d61792066696c6c20776974682045544800000060448201526064016103d8565b6000896000015190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b50506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301523460248301528516935063a9059cbb92506044019050602060405180830381600087803b15801561082357600080fd5b505af1158015610837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085b9190613327565b6040518060400160405280601781526020017f4d61726b65743a207472616e73666572206661696c6564000000000000000000815250906108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b506108d78a8a858986610fd4565b50505050505050505050565b60005b8181101561098e576000838383818110610902576109026133c2565b336000818152600160208181526040808420958202979097013580845294905285822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055935191945084939092507f35d8fd1186a8d5a470d6c39bac424b9b7e3b2bbfe1fd771fbefe09f98596350591a3508061098681613420565b9150506108e6565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103d8565b73ffffffffffffffffffffffffffffffffffffffff8116610ab7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103d8565b610ac081610d59565b50565b6000610ace83610ca4565b3360008181526002602090815260408083208584529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168615151790555191925082917f6f3de911b0f99f640ea02152b40d904d2c9913b2a056c48f8ca6fed7a83183a090610b499086908890613494565b60405180910390a3505050565b6000610b6183610bdc565b3360008181526002602090815260408083208584529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168615151790555191925082917f214a170e73e2a383db493e7149b4d064fa17ab5bd300a2e57dcc011d3e6ef02390610b499086908890613522565b60007f31f9468f5d1e7eb4237db6d4f45aa4ca2c44fd2c8cbc5f1cd4c2178ed1922c9f826000015183602001518460400151610c1b8660600151611f4c565b6080870151805160209182012060a0890151604051610c87989796959493019687526020870195909552604086019390935264ffffffffff919091166060850152608084015260a083015273ffffffffffffffffffffffffffffffffffffffff1660c082015260e00190565b604051602081830303815290604052805190602001209050919050565b60007f391e27022501bf610123a796e8a213ce549369b3bc887d452f524d17ca711c0f826000015183602001518460400151610ce38660600151611f4c565b86608001518760a001518860c00151604051602001610c879897969594939291909788526020880196909652604087019490945264ffffffffff929092166060860152608085015260a0840152151560c083015273ffffffffffffffffffffffffffffffffffffffff1660e08201526101000190565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60007f91ae5aeaa8c54e77d27efff9c5621ce1113d43c961e101869142bddaa8596546826000015183602001518460400151610e0d8660600151611f4c565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff948516908601526060850192909252909116608083015260a082015260c001610c87565b6000806000610e608a610dce565b9050808960000151146040518060800160405280604181526020016138776041913990610eba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b50808660000151146040518060800160405280604181526020016138776041913990610f13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b506000610f98604080517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86660208201527ffac22429634c4b83835d76f0b27b35ad0d97c5dfbdffb309216cd7e62efe2e9b9181019190915246606082015230608082015260009060a00160405160208183030381529060405280519060200120905090565b9050610fae81610fa78c610bdc565b8b8b611f5f565b9350610fc481610fbd89610ca4565b8888611f5f565b9250505097509795505050505050565b60035460ff1615611041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4d61726b6574206973207368757420646f776e0000000000000000000000000060448201526064016103d8565b604085015160208601518651608085015160c086015173ffffffffffffffffffffffffffffffffffffffff1615806110a857508673ffffffffffffffffffffffffffffffffffffffff168660c0015173ffffffffffffffffffffffffffffffffffffffff16145b61110e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626964646572206973206e6f7420617574686f72697a6564000000000000000060448201526064016103d8565b876040015164ffffffffff16421115604051806060016040528060228152602001613855602291399061116e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b50856040015164ffffffffff1642111560405180606001604052806022815260200161385560229139906111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b5073ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083208b830151845282529182902054825160608101909352602280845260ff909116159291613855908301399061125a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832089830151845282529182902054825160608101909352602280845260ff90911615929161385590830139906112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b5073ffffffffffffffffffffffffffffffffffffffff87811660008181526001602081815260408084208e83018051865290835281852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090811686179091558c88168087528585528387208f86018051895290865296849020805490921690951790555193518151808401969096528582019490945260608501929092526080808501939093528151808503909301835260a09384019091528151910120908a0151909185918291166114365760008b608001516113c5906135d5565b9050848114611430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f746f6b656e6964206d69736d617463680000000000000000000000000000000060448201526064016103d8565b5061154b565b60a08b015160808c01516040517f94d487b700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216916394d487b791611495918b91899160040161361a565b60206040518083038186803b1580156114ad57600080fd5b505afa1580156114c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e59190613327565b61154b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6d697373696e672074726169740000000000000000000000000000000000000060448201526064016103d8565b60005b8c60600151518110156115a6576115888d606001518281518110611574576115746133c2565b60200260200101518c8b8a888b8e8c61208f565b6115929084613658565b92508061159e81613420565b91505061154e565b5060005b8960600151518110156115ee576115d08a606001518281518110611574576115746133c2565b6115da9084613658565b9250806115e681613420565b9150506115aa565b50600354610100900473ffffffffffffffffffffffffffffffffffffffff16156117d3576000620f424087600454611626919061366f565b61163091906136ac565b905061163c8184613658565b6003546040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8e8116600483015261010090920482166024820152604481018490529194508716906323b872dd90606401602060405180830381600087803b1580156116bf57600080fd5b505af11580156116d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f79190613327565b6040518060400160405280601781526020017f4d61726b65743a207472616e73666572206661696c656400000000000000000081525090611765576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b50600354600454604080519182526020820184905273ffffffffffffffffffffffffffffffffffffffff898116838301529051610100909304811692908c169187917f874baf7481cd2190a134cb1c3033f31024cdc4a60c16a0399c769ddb7171d1a89181900360600190a4505b60005b8b606001515181101561182e576118108c6060015182815181106117fc576117fc6133c2565b60200260200101518c8d8a888b8e8c61208f565b61181a90836136e7565b91508061182681613420565b9150506117d6565b506040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101859052600090819073ffffffffffffffffffffffffffffffffffffffff8a1690636352211e9060240160206040518083038186803b15801561189a57600080fd5b505afa1580156118ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d291906136ff565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119115760019150611a8a565b6040517f081812fc0000000000000000000000000000000000000000000000000000000081526004810187905273ffffffffffffffffffffffffffffffffffffffff808c1691908b169063081812fc9060240160206040518083038186803b15801561197c57600080fd5b505afa158015611990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b491906136ff565b73ffffffffffffffffffffffffffffffffffffffff1614156119d95760019150611a8a565b6040517fe985e9c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528b811660248301528a169063e985e9c59060440160206040518083038186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a809190613327565b15611a8a57600191505b81611af1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f61736b6572206973206e6f74206f776e6572206f7220617070726f766564000060448201526064016103d8565b6040517f42842e0e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528d81166024830152604482018890528a16906342842e0e90606401600060405180830381600087803b158015611b6957600080fd5b505af1158015611b7d573d6000803e3d6000fd5b505050508a60a0015115611d71576040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8d81166004830152306024830152604482018690528816906323b872dd90606401602060405180830381600087803b158015611c0157600080fd5b505af1158015611c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c399190613327565b6040518060400160405280601781526020017f4d61726b65743a207472616e73666572206661696c656400000000000000000081525090611ca7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b506040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff881690632e1a7d4d90602401600060405180830381600087803b158015611d1057600080fd5b505af1158015611d24573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff8d16925086156108fc02915086906000818181858888f19350505050158015611d6b573d6000803e3d6000fd5b50611e91565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8d811660048301528b81166024830152604482018690528816906323b872dd90606401602060405180830381600087803b158015611de957600080fd5b505af1158015611dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e219190613327565b6040518060400160405280601781526020017f4d61726b65743a207472616e73666572206661696c656400000000000000000081525090611e8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b505b604080518981526020810186905280820185905273ffffffffffffffffffffffffffffffffffffffff898116606083015291518c8316928f169188917f1a51197f9a37c0e80257819723735f2e11a00ce3cf47cce6fc29ed498799d1939181900360800190a4858973ffffffffffffffffffffffffffffffffffffffff16867f9b01892c65e232348b8aa9a050269ddec2af8c4bbe0ba6dcc8fa627ba3e6e02460405160405180910390a45050505050505050505050505050565b600081604051602001610c87919061371c565b600080826002811115611f7457611f74613752565b14611f8c57611f85858585856120bb565b9050612087565b600083806020019051810190611fa291906136ff565b905073ffffffffffffffffffffffffffffffffffffffff8116331480611ff8575073ffffffffffffffffffffffffffffffffffffffff8116600090815260026020908152604080832088845290915290205460ff165b612084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61726b65743a206f6e2d636861696e20617070726f76616c206d697373696e60448201527f670000000000000000000000000000000000000000000000000000000000000060648201526084016103d8565b90505b949350505050565b60008061209d8a8585612220565b90506120ad818a8a8a8a8a6124fa565b9a9950505050505050505050565b60008060018360028111156120d2576120d2613752565b141561211257604080516020810188905290810186905261210b906060016040516020818303038152906040528051906020012061273f565b905061220c565b600283600281111561212657612126613752565b141561218557604080517f1901000000000000000000000000000000000000000000000000000000000000602080830191909152602282018990526042808301899052835180840390910181526062909201909252805191012061210b565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f5369676e6174757265436865636b65723a206e6f207369676e6174757265206760448201527f6976656e0000000000000000000000000000000000000000000000000000000060648201526084016103d8565b612216818561277a565b9695505050505050565b606083811c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff851663800000008087161580159061230f57604080516001808252818301909252600091816020015b604080518082019091526000808252602082015281526020019060019003908161226f57905050905083816000815181106122ac576122ac6133c2565b60200260200101516020019063ffffffff16908163ffffffff168152505084816000815181106122de576122de6133c2565b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff909116905294506124f39350505050565b6040517fec10efb200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301526024820188905263ffffffff8516604483015260208a901c67ffffffffffffffff811660648401529160009187169063ec10efb29060840160006040518083038186803b1580156123a257600080fd5b505afa1580156123b6573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526123fc9190810190613781565b90506000805b825181101561244e5782818151811061241d5761241d6133c2565b60200260200101516020015163ffffffff168261243a91906136e7565b91508061244681613420565b915050612402565b508563ffffffff168111156124e5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f6f7261636c652077616e747320746f206f7665727370656e6420726f79616c7460448201527f7920616c6c6f746d656e7400000000000000000000000000000000000000000060648201526084016103d8565b5095506124f3945050505050565b9392505050565b60008060005b885181101561273357600089828151811061251d5761251d6133c2565b602002602001015190506000620f424088836020015163ffffffff16612543919061366f565b61254d91906136ac565b905061255981856136e7565b82516040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8d811660048301529182166024820152604481018490529195508716906323b872dd90606401602060405180830381600087803b1580156125d657600080fd5b505af11580156125ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260e9190613327565b6040518060400160405280601781526020017f4d61726b65743a207472616e73666572206661696c65640000000000000000008152509061267c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d891906133af565b50816000015173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16887f874baf7481cd2190a134cb1c3033f31024cdc4a60c16a0399c769ddb7171d1a88560200151858b6040516127169392919063ffffffff939093168352602083019190915273ffffffffffffffffffffffffffffffffffffffff16604082015260600190565b60405180910390a45050808061272b90613420565b915050612500565b50979650505050505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01610c87565b6000806000612789858561279e565b915091506127968161280e565b509392505050565b6000808251604114156127d55760208301516040840151606085015160001a6127c987828585612a67565b94509450505050612807565b8251604014156127ff57602083015160408401516127f4868383612b7f565b935093505050612807565b506000905060025b9250929050565b600081600481111561282257612822613752565b141561282b5750565b600181600481111561283f5761283f613752565b14156128a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103d8565b60028160048111156128bb576128bb613752565b1415612923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103d8565b600381600481111561293757612937613752565b14156129c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016103d8565b60048160048111156129d9576129d9613752565b1415610ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016103d8565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612a9e5750600090506003612b76565b8460ff16601b14158015612ab657508460ff16601c14155b15612ac75750600090506004612b76565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612b1b573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612b6f57600060019250925050612b76565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831660ff84901c601b01612bb987828885612a67565b935093505050935093915050565b8015158114610ac057600080fd5b8035612be081612bc7565b919050565b600060208284031215612bf757600080fd5b81356124f381612bc7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715612c5457612c54612c02565b60405290565b60405160e0810167ffffffffffffffff81118282101715612c5457612c54612c02565b6040805190810167ffffffffffffffff81118282101715612c5457612c54612c02565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612ce757612ce7612c02565b604052919050565b803564ffffffffff81168114612be057600080fd5b600067ffffffffffffffff821115612d1e57612d1e612c02565b5060051b60200190565b600082601f830112612d3957600080fd5b81356020612d4e612d4983612d04565b612ca0565b82815260059290921b84018101918181019086841115612d6d57600080fd5b8286015b84811015612d885780358352918301918301612d71565b509695505050505050565b600082601f830112612da457600080fd5b813567ffffffffffffffff811115612dbe57612dbe612c02565b612def60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612ca0565b818152846020838601011115612e0457600080fd5b816020850160208301376000918101602001919091529392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610ac057600080fd5b8035612be081612e21565b600060c08284031215612e6057600080fd5b612e68612c31565b90508135815260208201356020820152612e8460408301612cef565b6040820152606082013567ffffffffffffffff80821115612ea457600080fd5b612eb085838601612d28565b60608401526080840135915080821115612ec957600080fd5b50612ed684828501612d93565b608083015250612ee860a08301612e43565b60a082015292915050565b600060208284031215612f0557600080fd5b813567ffffffffffffffff811115612f1c57600080fd5b61208784828501612e4e565b600060208284031215612f3a57600080fd5b81356124f381612e21565b600060e08284031215612f5757600080fd5b612f5f612c5a565b90508135815260208201356020820152612f7b60408301612cef565b6040820152606082013567ffffffffffffffff811115612f9a57600080fd5b612fa684828501612d28565b60608301525060808201356080820152612fc260a08301612bd5565b60a0820152612fd360c08301612e43565b60c082015292915050565b600060208284031215612ff057600080fd5b813567ffffffffffffffff81111561300757600080fd5b61208784828501612f45565b60006080828403121561302557600080fd5b6040516080810167ffffffffffffffff828210818311171561304957613049612c02565b816040528293508435915061305d82612e21565b818352602085013560208401526040850135915061307a82612e21565b816040840152606085013591508082111561309457600080fd5b506130a185828601612d28565b6060830152505092915050565b6000602082840312156130c057600080fd5b813567ffffffffffffffff8111156130d757600080fd5b61208784828501613013565b803560038110612be057600080fd5b600080600080600080600060e0888a03121561310d57600080fd5b873567ffffffffffffffff8082111561312557600080fd5b6131318b838c01613013565b985060208a013591508082111561314757600080fd5b6131538b838c01612e4e565b975060408a013591508082111561316957600080fd5b6131758b838c01612d93565b965061318360608b016130e3565b955060808a013591508082111561319957600080fd5b6131a58b838c01612f45565b945060a08a01359150808211156131bb57600080fd5b506131c88a828b01612d93565b9250506131d760c089016130e3565b905092959891949750929550565b6000602082840312156131f757600080fd5b5035919050565b6000806020838503121561321157600080fd5b823567ffffffffffffffff8082111561322957600080fd5b818501915085601f83011261323d57600080fd5b81358181111561324c57600080fd5b8660208260051b850101111561326157600080fd5b60209290920196919550909350505050565b6000806040838503121561328657600080fd5b823561329181612e21565b946020939093013593505050565b600080604083850312156132b257600080fd5b823567ffffffffffffffff8111156132c957600080fd5b6132d585828601612f45565b92505060208301356132e681612bc7565b809150509250929050565b6000806040838503121561330457600080fd5b823567ffffffffffffffff81111561331b57600080fd5b6132d585828601612e4e565b60006020828403121561333957600080fd5b81516124f381612bc7565b6000815180845260005b8181101561336a5760208185018101518683018201520161334e565b8181111561337c576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006124f36020830184613344565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613452576134526133f1565b5060010190565b600081518084526020808501945080840160005b838110156134895781518752958201959082019060010161346d565b509495945050505050565b821515815260406020820152815160408201526020820151606082015264ffffffffff60408301511660808201526000606083015160e060a08401526134de610120840182613459565b9050608084015160c084015260a0840151151560e084015273ffffffffffffffffffffffffffffffffffffffff60c085015116610100840152809150509392505050565b821515815260406020820152815160408201526020820151606082015264ffffffffff60408301511660808201526000606083015160c060a084015261356c610100840182613459565b905060808401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160c08501526135a78282613344565b91505073ffffffffffffffffffffffffffffffffffffffff60a08501511660e0840152809150509392505050565b80516020808301519190811015613614577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b73ffffffffffffffffffffffffffffffffffffffff8416815282602082015260606040820152600061364f6060830184613344565b95945050505050565b60008282101561366a5761366a6133f1565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136a7576136a76133f1565b500290565b6000826136e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082198211156136fa576136fa6133f1565b500190565b60006020828403121561371157600080fd5b81516124f381612e21565b815160009082906020808601845b838110156137465781518552938201939082019060010161372a565b50929695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602080838503121561379457600080fd5b825167ffffffffffffffff8111156137ab57600080fd5b8301601f810185136137bc57600080fd5b80516137ca612d4982612d04565b81815260069190911b820183019083810190878311156137e957600080fd5b928401925b8284101561384957604084890312156138075760008081fd5b61380f612c7d565b845161381a81612e21565b81528486015163ffffffff811681146138335760008081fd5b81870152825260409390930192908401906137ee565b97965050505050505056fe4d61726b65743a206f726465722063616e63656c6c6564206f7220657870697265644d61726b65743a20626964206f722061736b27732061677265656d656e74206861736820646f65736e2774206d61746368206f726465722061677265656d656e74a2646970667358221220a048a8a635f3d09a655e793c7161aed978e6da488347e31bcc42c9fab05ec2b764736f6c63430008090033