Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@white-matrix/amethyst-sdk

Package Overview
Dependencies
Maintainers
12
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@white-matrix/amethyst-sdk - npm Package Compare versions

Comparing version 0.0.1-a to 0.0.1-b

dist/contracts/typechain/AccessControl__factory.ts

129

dist/contracts/typechain/AmethystRoleManagementImpl__factory.ts

@@ -54,21 +54,2 @@ /* Autogenerated file. Do not edit manually. */

{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "OwnershipTransferred",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,

@@ -176,3 +157,3 @@ internalType: "address",

internalType: "bool",
name: "haveRole",
name: "enable",
type: "bool",

@@ -187,3 +168,3 @@ },

],
name: "SetRole",
name: "SetAmethystRole",
type: "event",

@@ -265,15 +246,2 @@ },

internalType: "bytes32",
name: "c__0x843f28ea",
type: "bytes32",
},
],
name: "c_0x843f28ea",
outputs: [],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",

@@ -315,13 +283,13 @@ type: "bytes32",

{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "account",
name: "person",
type: "address",
},
{
internalType: "string",
name: "role",
type: "string",
},
],
name: "hasRole",
name: "hasAmethystRole",
outputs: [

@@ -340,13 +308,13 @@ {

{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "person",
name: "account",
type: "address",
},
{
internalType: "string",
name: "role",
type: "string",
},
],
name: "haveRole",
name: "hasRole",
outputs: [

@@ -403,15 +371,2 @@ {

inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "pause",

@@ -436,9 +391,2 @@ outputs: [],

{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [

@@ -482,15 +430,2 @@ {

{
internalType: "uint256",
name: "expiration",
type: "uint256",
},
],
name: "setMaxExpiration",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",

@@ -507,3 +442,3 @@ name: "person",

internalType: "bool",
name: "isHaveRole",
name: "enable",
type: "bool",

@@ -522,3 +457,3 @@ },

],
name: "setRole",
name: "setAmethystRole",
outputs: [],

@@ -531,2 +466,15 @@ stateMutability: "nonpayable",

{
internalType: "uint256",
name: "newMaxExpiration",
type: "uint256",
},
],
name: "setMaxExpiration",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",

@@ -562,15 +510,2 @@ name: "newSigner",

{
inputs: [
{
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],

@@ -616,3 +551,3 @@ name: "unpause",

const _bytecode =
"0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50600060019054906101000a900460ff16806200006f575060008054906101000a900460ff16155b620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a89062000189565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000102576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b620001367f21a84654d2a87e5c684188a165b80161325273bcc7a8f6b38504b24a6d6dae6a60001b6200015f60201b60201c565b8015620001585760008060016101000a81548160ff0219169083151502179055505b506200020b565b50565b600062000171602e83620001ab565b91506200017e82620001bc565b604082019050919050565b60006020820190508181036000830152620001a48162000162565b9050919050565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60805160601c6157176200023f6000396000818161098101528181610a1001528181610d1c0152610dab01526157176000f3fe6080604052600436106101665760003560e01c80635c975abb116100d1578063a217fddf1161008a578063e18c726011610064578063e18c7260146104df578063e198bc3a1461050a578063f2fde38b14610533578063f72c0d8b1461055c57610166565b8063a217fddf14610462578063d547741f1461048d578063e17ad931146104b657610166565b80635c975abb146103785780636c19e783146103a3578063715018a6146103cc5780638456cb59146103e35780638da5cb5b146103fa57806391d148541461042557610166565b806336568abe1161012357806336568abe1461028d5780633659cfe6146102b65780633f4ba83a146102df57806348e66156146102f65780634f1ef2861461031f57806355cad18a1461033b57610166565b806301ffc9a71461016b5780630676695b146101a857806306bfcec6146101d1578063248a9ca3146101fc57806325bee3e9146102395780632f2ff15d14610264575b600080fd5b34801561017757600080fd5b50610192600480360381019061018d9190614569565b610587565b60405161019f9190614acf565b60405180910390f35b3480156101b457600080fd5b506101cf60048036038101906101ca9190614592565b610601565b005b3480156101dd57600080fd5b506101e66107eb565b6040516101f39190614b4a565b60405180910390f35b34801561020857600080fd5b50610223600480360381019061021e9190614504565b6108ac565b6040516102309190614aea565b60405180910390f35b34801561024557600080fd5b5061024e6108cc565b60405161025b9190614dea565b60405180910390f35b34801561027057600080fd5b5061028b6004803603810190610286919061452d565b6108d3565b005b34801561029957600080fd5b506102b460048036038101906102af919061452d565b6108fc565b005b3480156102c257600080fd5b506102dd60048036038101906102d89190614350565b61097f565b005b3480156102eb57600080fd5b506102f4610b2e565b005b34801561030257600080fd5b5061031d60048036038101906103189190614504565b610d17565b005b61033960048036038101906103349190614379565b610d1a565b005b34801561034757600080fd5b50610362600480360381019061035d91906143cd565b610e57565b60405161036f9190614acf565b60405180910390f35b34801561038457600080fd5b5061038d610f6a565b60405161039a9190614acf565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c59190614350565b610f81565b005b3480156103d857600080fd5b506103e16111a5565b005b3480156103ef57600080fd5b506103f861122d565b005b34801561040657600080fd5b5061040f611416565b60405161041c9190614ab4565b60405180910390f35b34801561043157600080fd5b5061044c6004803603810190610447919061452d565b611441565b6040516104599190614acf565b60405180910390f35b34801561046e57600080fd5b506104776114ac565b6040516104849190614aea565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af919061452d565b6114b3565b005b3480156104c257600080fd5b506104dd60048036038101906104d891906144c8565b6114dc565b005b3480156104eb57600080fd5b506104f4611a07565b6040516105019190614ab4565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c9190614421565b611a2e565b005b34801561053f57600080fd5b5061055a60048036038101906105559190614350565b6121ce565b005b34801561056857600080fd5b506105716122c6565b60405161057e9190614aea565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105fa57506105f9826122cd565b5b9050919050565b61062d7f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b6106597f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b6106857fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b6106b17f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b6106c56000801b6106c0612337565b611441565b610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb90614c0a565b60405180910390fd5b6107307f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b61075c7fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b6107887f3d6a0db88000e5f9ab36187c98b7e6c357b7fa0931361ffe63ffae1499a42f0560001b610d17565b6107b47fad27041f621cff54cb76219dae47e12542def610e1a72d9cf4db63c389b4311560001b610d17565b6107e07fc90129f6a41912e9a7556b6826cd04cfefa1e69c9dd7c9f3f1a9db2c15d683c160001b610d17565b806101918190555050565b60606108197f411dd99aa0a28f2148e60ce48e0605b04300115cc5b9309ac86c22db78a2e80b60001b610d17565b6108457fba08e59bc630da98329078be5536116010b0146c8daecba7d2194e979ea3e20560001b610d17565b6108717f7dbb88ae717513b77f3e4e738066d8ababec3f33161a6286f381e306287d8c9060001b610d17565b6040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b600060656000838152602001908152602001600020600101549050919050565b6101915481565b6108dc826108ac565b6108ed816108e8612337565b61233f565b6108f783836123dc565b505050565b610904612337565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096890614dca565b60405180910390fd5b61097b82826124bd565b5050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590614c6a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610a4d61259f565b73ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90614caa565b60405180910390fd5b610aac816125f6565b610b2b81600067ffffffffffffffff811115610af1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610b235781602001600182028036833780820191505090505b506000612728565b50565b610b5a7f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b610b867f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b610bb27fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b610bde7f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b610bf26000801b610bed612337565b611441565b610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890614c0a565b60405180910390fd5b610c5d7f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b610c897fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b610cb57fbe782a13b4bebb144a7181914277338b7b5b6be7a5d769d4abf98991327c669760001b610d17565b610ce17f9f4cf952e4b7ec7fb527accef1a2a6e26d2a9236bd0befa02a3b6345be61dce660001b610d17565b610d0d7f82d2d2793721d603f8383193fd2bbedeb78cb6cc42460f961e49ccd2ba9cf22060001b610d17565b610d156128f9565b565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da090614c6a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610de861259f565b73ffffffffffffffffffffffffffffffffffffffff1614610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590614caa565b60405180910390fd5b610e47826125f6565b610e5382826001612728565b5050565b6000610e857ff84759c77e8fb3424e1d6c5602e274d5f90261c7df83b7be4421f3911581ca2760001b610d17565b610eb17f7dfcf7d59f0ac8640e4675d795b36c7a9cb1d56ccf3c59357350a0d0a9c98a2060001b610d17565b610edd7f9274d30d0ecefafcefe88183422ac2ee8dd00c5f4dda8f64ce4e1b3b087f648360001b610d17565b61019360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083604051602001610f309190614a3d565b60405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900460ff16905092915050565b6000609760009054906101000a900460ff16905090565b610fad7f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b610fd97f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b6110057fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b6110317f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b6110456000801b611040612337565b611441565b611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90614c0a565b60405180910390fd5b6110b07f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b6110dc7fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b6111087f1149d442f83f33c71278f66227a7cd24ee748736895e3ac4efbcab26f4a283a960001b610d17565b6111347fe2ff68f6499e3a54c1a53213f7e47173097a186fc462cfe4a91affceefef453d60001b610d17565b6111607f1b6039e1bd2d85f6581bad17512fdef3b0d236c8b500329c0e688d8fc349647d60001b610d17565b8061019560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111ad612337565b73ffffffffffffffffffffffffffffffffffffffff166111cb611416565b73ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890614d2a565b60405180910390fd5b61122b600061299b565b565b6112597f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b6112857f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b6112b17fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b6112dd7f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b6112f16000801b6112ec612337565b611441565b611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790614c0a565b60405180910390fd5b61135c7f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b6113887fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b6113b47fa64bc959162209394861166da279d9edb8805490c12512e94163c875c98dcf7e60001b610d17565b6113e07f5fe67d264535dbb8d55da12e6f19d79d0bbc80252d1d84057e8a4a908f4a3b0860001b610d17565b61140c7ff5d38b513c9599a5f913a6c3e265297b8c0925d97331e48a54c69a09cf5ace9160001b610d17565b611414612a63565b565b600061015f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6114bc826108ac565b6114cd816114c8612337565b61233f565b6114d783836124bd565b505050565b600060019054906101000a900460ff1680611502575060008054906101000a900460ff16155b611541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153890614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015611591576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6115bd7f6b31e24753748e1ca3998c11c6270e57e72648f07f93e4224f0605c76cff180660001b610d17565b6115e97ffcc4229b2d0de34691be69c6a9cfc6488d3607a33d4b3336ba13daf7fe74844760001b610d17565b6116157f3e17eb34e13d67f1cbfaff75dba902a88832585b8f2ca51c9d8d6a3292c508f660001b610d17565b61161d612b06565b6116497f356c72d5d2a550829f4f5590aaf597d29d83a6c5909e7f01d8f6203076383f2e60001b610d17565b6116757fcfa10483384ad19ef27b2231a7e8e7c62cd577e3a565c98ae5736e112aa212e160001b610d17565b61167d612bef565b6116a97fe797cb00fde069b5205bba60fb0b1676304be9c6a1727bce2b229a7129b3eb9760001b610d17565b6116d57faaec2704c2798a75d0425b6bcfbf30c36ed8b48ac800e744497a4fba1a24406160001b610d17565b6116dd612cd8565b6117097fc0cf0f698ba62b4f6fb31bfdccef78b7c6c5c15c747e9e58266361be05547ccb60001b610d17565b6117357f680004ec897c216aeb0a5d59f2726247d228b7dfcebc87130641d8cab1ffca9660001b610d17565b61173d612dc9565b6117697ff23fb4677ca2d4f77e0700a55bc18ccb2a63a4d732165657c81504d020316a7660001b610d17565b6117957f81c27b8e3ca7f0b87c26eea6bc51c137a1ce88befbf8d6a5d888a9e36013ae7b60001b610d17565b61179d612eaa565b6117c97fb7f7f0d0ba752f4c228c4de883169f4e35db22e4a1aadf3ce30a6db4ab3b9df960001b610d17565b6117f57f671a6906f181d2ca7679dd02437419bc7ef252eb08bf670814412ffd2c571a8b60001b610d17565b6118026000801b33612f93565b61182e7fd596695bef9f67bb6fd28bc92e5b725de750dde364a6f95ff4c1bbbdac426e2560001b610d17565b61185a7f0d2200ccad838d0f54845d06f3a7276c2f6d42c5c46e0c9a67789eaffdf452e460001b610d17565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610192819055506118ae7f522020718d0c022177a673a04b763b0c647eb89e55ef2c330ac3b80f2bd86d9460001b610d17565b6118da7f6a72b42b82a467ec2b9b3b5b916915f30225a6c7c0ca9ed19837bb93fe75d44960001b610d17565b6118e76101925433612f93565b6119137f1c2de96b0473b26e211b572c6ce016715baea6ffd695e81c1cd611f6b51aeffb60001b610d17565b61193f7f8b998a1cf6f70c7e7b7ddfc8bd6ee64ba59c783e05d10dcae5c783235e4f4b0b60001b610d17565b8261019560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119ad7f09657e3aaf27a0a0703661bb3e1af4c91af87e274f9e30690740ab7dd386544860001b610d17565b6119d97f0afa16104504d08c560349a552b67dd9ea1b7d8f650da422dc28c092df588b4a60001b610d17565b81610191819055508015611a025760008060016101000a81548160ff0219169083151502179055505b505050565b61019560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a36610f6a565b15611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90614cca565b60405180910390fd5b611aa27f6581fbeb2823ae175cd2d84f10a0d649241cb22e5ecf4f1e19f20d7d12cf00c060001b610d17565b611ace7f5e44e8400c1b7504e8f87f895448e60284f1375566f7189747b896798b4067e560001b610d17565b611afa7f5190902b34e6329d13a7500dbf677dad0a111b3f331b0c1d98995016132f890f60001b610d17565b611b0e6000801b611b09612337565b611441565b61200957611b3e7f6fef7dc66bd01554c6e66899f34de50e14308b10c9b5ca2a03cecd512b2ad21b60001b610d17565b611b6a7f1a3a908b158eac631fd8f23d3d09f74adffbc57641b427c724e1949f47963daa60001b610d17565b611b967fd3e1de1452b4d2247b007574f44cadeba7bd9ec5d381c6b692a738bb8a9e5b7360001b610d17565b611bc27f1fcc1fbc6dcbcd1599e048572de54b35e1d390ad9bc837b422a62c4c508bbd1f60001b610d17565b61019154611bd98342612fa190919063ffffffff16565b10611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1090614d4a565b60405180910390fd5b611c457f7215bc3c157ac69e24d528e475140631545b7d29b2fa8f747406b6c5c81120df60001b610d17565b611c717f34365a8dc4700309874db8c22b30e16f81398f93fae0d2e58c1e1e699fed687c60001b610d17565b611c9d7fb4cd505605a9ea62c31202ca40371bfe3a824d81ea02603d7f0ebd05c6e2dbb360001b610d17565b611cc97f26dd0320353562d3402ef0f4f5e568b32ea4cab841eccd3d54a493b25c2de2da60001b610d17565b610194600082604051602001611cdf9190614a26565b60405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900460ff1615611d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4890614bea565b60405180910390fd5b611d7d7f63bbb50f4f854049a30582c471ac465564ded0b3f2949eb7e615ede6fb66ee3260001b610d17565b611da97fd88f94639819e0d99c8d9a5b4f426dbc1958fa31570c0b80181ba1234fc4d89560001b610d17565b611dd57f4999ce9eb8f2a8f201e50db4c6adcb042704adb4db27a231dea751c06e83e19860001b610d17565b6000611e0c86868686604051602001611df194939291906149dc565b60405160208183030381529060405280519060200120612fb7565b9050611e3a7f2e67ba92bedb114a18d15f1fd738e6d85e91e13acf8697ff7b60995cab9fa38b60001b610d17565b611e667f3d53adb1f85c16e3354a5e5596c71a49b0ac0835492501f550ab1c1636fe70cb60001b610d17565b611e927fd92d9f9b562b6c45471027aa8f356cfba1f93e07884bd3524e4baac0b32430cc60001b610d17565b61019560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ed6828461306b565b73ffffffffffffffffffffffffffffffffffffffff1614611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614d6a565b60405180910390fd5b611f587fa0548306fcc133f1524987152517e315e3831db2e7c79b914b00169a6356e44160001b610d17565b611f847f492401921156e3c27c2993a1239f0020742489890e999fcb3759f560e9e9131d60001b610d17565b611fb07f9609ed54fcbea23113559871406412408a6ed93908fe810dcc041f26fc61f37360001b610d17565b6001610194600084604051602001611fc89190614a26565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff02191690831515021790555050612036565b6120357fa12c73535a5bdbbfeaf45bc344b9b6a5ea7e07273f73c76c74b0102e6f90181360001b610d17565b5b6120627f41bd55f55ca946222e51975eb3cb1f17627adca4beb283e1a5e7a00e418d11a660001b610d17565b61208e7f5f19512c7c1e6f976f04d10d72096960718852366e3386f5328a500e3da922ed60001b610d17565b8261019360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040516020016120e29190614a3d565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff0219169083151502179055506121497f5b8b689f8eebfed8b5a253c2e9077937a3897d079960cb0cd19be3bd0e9ad51360001b610d17565b6121757fe8de7d9491883a5166b98a5eed3e6c38f788adb100d5be340497a94e09985d8660001b610d17565b8473ffffffffffffffffffffffffffffffffffffffff167fe0db73124855f618948ae9654bf9fb29dbc4e9da043a0e3750e3635066fbe8148585426040516121bf93929190614b6c565b60405180910390a25050505050565b6121d6612337565b73ffffffffffffffffffffffffffffffffffffffff166121f4611416565b73ffffffffffffffffffffffffffffffffffffffff161461224a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224190614d2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b190614c4a565b60405180910390fd5b6122c38161299b565b50565b6101925481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6123498282611441565b6123d85761236e8173ffffffffffffffffffffffffffffffffffffffff1660146132c6565b61237c8360001c60206132c6565b60405160200161238d929190614a7a565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cf9190614b4a565b60405180910390fd5b5050565b6123e68282611441565b6124b95760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061245e612337565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6124c78282611441565b1561259b5760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612540612337565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006125cd7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6135c0565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6126227f62693a85ec33f35b1c04927699f69025c9086238cbaafe8046b8c6ca210db80a60001b610d17565b61264e7f225dd86f5923c649dabc77899f228cd34c3b63e2f13780019d831d2e00b8656160001b610d17565b61267a7f0d6e931a0509216195fde9ce36c569c7c5867b7b9d6d2a8f9e02f7352d3ec81c60001b610d17565b6126a67f36f593ae3a7dc804ef84f6d2a48371e520de4fdda06901e9db8613a35aa7d1df60001b610d17565b6126ba610192546126b5612337565b611441565b6126f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f090614c8a565b60405180910390fd5b6127257f30ad91c7e9eff0dffe6961be2e74333f89d855fe044fc38b7f35ac561d692eac60001b610d17565b50565b600061273261259f565b905061273d846135ca565b60008351118061274a5750815b1561275b576127598484613683565b505b60006127897f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b613767565b90508060000160009054906101000a900460ff166128f25760018160000160006101000a81548160ff02191690831515021790555061285585836040516024016127d39190614ab4565b6040516020818303038152906040527f3659cfe6000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613683565b5060008160000160006101000a81548160ff02191690831515021790555061287b61259f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146128e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128df90614c2a565b60405180910390fd5b6128f185613771565b5b5050505050565b612901610f6a565b612940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293790614bca565b60405180910390fd5b6000609760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612984612337565b6040516129919190614ab4565b60405180910390a1565b600061015f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508161015f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612a6b610f6a565b15612aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa290614cca565b60405180910390fd5b6001609760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612aef612337565b604051612afc9190614ab4565b60405180910390a1565b600060019054906101000a900460ff1680612b2c575060008054906101000a900460ff16155b612b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6290614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612bbb576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612bc36137c0565b612bcb613899565b8015612bec5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612c15575060008054906101000a900460ff16155b612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612ca4576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612cac6137c0565b612cb4613982565b8015612cd55760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612cfe575060008054906101000a900460ff16155b612d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3490614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612d8d576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612d956137c0565b612d9d613a76565b612da5613b4f565b8015612dc65760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612def575060008054906101000a900460ff16155b612e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2590614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612e7e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612e86613c28565b8015612ea75760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612ed0575060008054906101000a900460ff16155b612f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0690614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612f5f576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612f67613d09565b612f6f613de2565b8015612f905760008060016101000a81548160ff0219169083151502179055505b50565b612f9d82826123dc565b5050565b60008183612faf9190614f79565b905092915050565b6000612fe57fafbcacd8b6e734342baf1ecfa35c015f231573b733a748020fa1dfc6107f11f460001b610d17565b6130117fbc51574591dcdaefe213b29a4551ef05bd229055f3a9b7b830acc399b79a105d60001b610d17565b61303d7ff7e763453be5deb195da9cbdb021c3a788253ca9aaed28d80d59be285730d42f60001b610d17565b8160405160200161304e9190614a54565b604051602081830303815290604052805190602001209050919050565b60006130997fc9812d6f8e56f00c18c1ed9bc06783ed75f57b23a9c8c8d3e654a74b7193d87f60001b610d17565b6130c57ff9b7ae803854786cd4e04fe75c6944e44e287396efd3ec4f1a6832536555608460001b610d17565b6130f17f8b567df69542d196dcdd9c8a09354df89024cda137811ef6492a932715e669a360001b610d17565b600061311f7f35b85ebc800f4cb3817c03de2b05b87e36ff6efbe9ed5ef9ff498c4d1febc03e60001b610d17565b61314b7fe4019b121bda25f48624f21519d97c8bafe59c2e9ba532008ecd738207a9d6bc60001b610d17565b60006131797f096509bcec607264fabffee199361cc5585ed158d8c6110621e4e8eddb140b0360001b610d17565b6131a57f48a89806bb44c848e438a3387a4f244cde8ec3105e21838932db991059cb6e9c60001b610d17565b60006131d37f932225a7f00d0b95645bcc88b3e347f29ec2f9edc1e60f90c99e1cae4608f45960001b610d17565b6131ff7f4830cf6959297cdcb2a79afba2e278faf7e62bba52f9c52bbf7b5e47049cd9c760001b610d17565b61320885613ebb565b8093508194508295505050506132407f862c08a5de08e29873d5685fb92ec9db7dde95f542f32d28a69905011eabb3df60001b610d17565b61326c7f73cb2e1c2d85159ee1e430164b7a3aa51597309feea05bda6d18c78f8971536f60001b610d17565b6001868484846040516000815260200160405260405161328f9493929190614b05565b6020604051602081039080840390855afa1580156132b1573d6000803e3d6000fd5b50505060206040510351935050505092915050565b6060600060028360026132d99190614f1f565b6132e39190614ec9565b67ffffffffffffffff811115613322577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156133545781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106133b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061343c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261347c9190614f1f565b6134869190614ec9565b90505b6001811115613572577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106134ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b82828151811061352b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061356b9061507a565b9050613489565b50600084146135b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135ad90614baa565b60405180910390fd5b8091505092915050565b6000819050919050565b6135d38161419d565b613612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360990614d0a565b60405180910390fd5b8061363f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6135c0565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606061368e8361419d565b6136cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136c490614d8a565b60405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516136f59190614a26565b600060405180830381855af49150503d8060008114613730576040519150601f19603f3d011682016040523d82523d6000602084013e613735565b606091505b509150915061375d82826040518060600160405280602781526020016156bb602791396141b0565b9250505092915050565b6000819050919050565b61377a816135ca565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b600060019054906101000a900460ff16806137e6575060008054906101000a900460ff16155b613825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161381c90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613875576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156138965760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806138bf575060008054906101000a900460ff16155b6138fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138f590614cea565b60405180910390fd5b60008060019054906101000a900460ff16159050801561394e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61395e613959612337565b61299b565b801561397f5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806139a8575060008054906101000a900460ff16155b6139e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139de90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613a37576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6000609760006101000a81548160ff0219169083151502179055508015613a735760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613a9c575060008054906101000a900460ff16155b613adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ad290614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613b2b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613b4c5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613b75575060008054906101000a900460ff16155b613bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bab90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c04576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613c255760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613c4e575060008054906101000a900460ff16155b613c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c8490614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613cdd576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b600160c9819055508015613d065760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613d2f575060008054906101000a900460ff16155b613d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6590614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613dbe576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613ddf5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613e08575060008054906101000a900460ff16155b613e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e3e90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613e97576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613eb85760008060016101000a81548160ff0219169083151502179055505b50565b6000806000613eec7fdd325232e34a7e54d51c4d54525a16ac4bb014e8e3d286df4dec7e4d2c1aeccb60001b610d17565b613f187f482131af070c72286500554badbb6abc9a4a6ef41af69fd4eda1c1dfbe83d0f160001b610d17565b613f447fa627160b756031e5dd4ed9209705f218aa581f1eff5e4fd315ca01ad421ad95560001b610d17565b613f707f4adc00e5c1dba4d60da093adbc6c433cb8a4d2d2f960efc669ccce68fb48329b60001b610d17565b6041845114613fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fab90614daa565b60405180910390fd5b613fe07fd718c000a6e305fad09bdbc237ee1ba2a73d2ba660eba6c16ab04b0d6c3484b960001b610d17565b61400c7f2fdf67473ff0db87c0444b1d4ffcb71fd101533ef62af804d709c83827c8cf9760001b610d17565b6140387f333f9e85d801d3fb442cae2847d0181a37da0eeb99a9f0c3a6aeac3a786c1b7260001b610d17565b60006140667f328ef23080846bb47b4dd1d85f1c7413812d42ada03776f2ef5d91bded02cf1c60001b610d17565b6140927f16edce112748bd74ab0ad72512bb9b14ef12fb5f2510ee61257567145032fe9c60001b610d17565b60006140c07f3119ee43da98a54c9443457365897b818467ae96a797c077e61a34bc7d573c8f60001b610d17565b6140ec7fc1d1f960d48b864eb0e4cb1750a7c9f00f875c3e7b2cb15cbac1bb8419bc02e760001b610d17565b600061411a7f057c79aea4c886f669f74c073e68f1346445d771a3894cd107ac8f2ac702493860001b610d17565b6020870151925060408701519150606087015160001a905061415e7f4a515e87ea7435a41851acdadf7b9d5bb72c9677883cd0a51db888c32f25a7a960001b610d17565b61418a7fe3b532515df30ce7ecd35a741d29957268d7b6079e32fac045747978ea975c2f60001b610d17565b8083839550955095505050509193909250565b600080823b905060008111915050919050565b606083156141c057829050614210565b6000835111156141d35782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016142079190614b4a565b60405180910390fd5b9392505050565b600061422a61422584614e2a565b614e05565b90508281526020810184848401111561424257600080fd5b61424d848285615038565b509392505050565b600061426861426384614e5b565b614e05565b90508281526020810184848401111561428057600080fd5b61428b848285615038565b509392505050565b6000813590506142a281615647565b92915050565b6000813590506142b78161565e565b92915050565b6000813590506142cc81615675565b92915050565b6000813590506142e18161568c565b92915050565b600082601f8301126142f857600080fd5b8135614308848260208601614217565b91505092915050565b600082601f83011261432257600080fd5b8135614332848260208601614255565b91505092915050565b60008135905061434a816156a3565b92915050565b60006020828403121561436257600080fd5b600061437084828501614293565b91505092915050565b6000806040838503121561438c57600080fd5b600061439a85828601614293565b925050602083013567ffffffffffffffff8111156143b757600080fd5b6143c3858286016142e7565b9150509250929050565b600080604083850312156143e057600080fd5b60006143ee85828601614293565b925050602083013567ffffffffffffffff81111561440b57600080fd5b61441785828601614311565b9150509250929050565b600080600080600060a0868803121561443957600080fd5b600061444788828901614293565b955050602086013567ffffffffffffffff81111561446457600080fd5b61447088828901614311565b9450506040614481888289016142a8565b93505060606144928882890161433b565b925050608086013567ffffffffffffffff8111156144af57600080fd5b6144bb888289016142e7565b9150509295509295909350565b600080604083850312156144db57600080fd5b60006144e985828601614293565b92505060206144fa8582860161433b565b9150509250929050565b60006020828403121561451657600080fd5b6000614524848285016142bd565b91505092915050565b6000806040838503121561454057600080fd5b600061454e858286016142bd565b925050602061455f85828601614293565b9150509250929050565b60006020828403121561457b57600080fd5b6000614589848285016142d2565b91505092915050565b6000602082840312156145a457600080fd5b60006145b28482850161433b565b91505092915050565b6145c481614fad565b82525050565b6145db6145d682614fad565b6150d5565b82525050565b6145ea81614fbf565b82525050565b6146016145fc82614fbf565b6150e7565b82525050565b61461081614fcb565b82525050565b61462761462282614fcb565b6150f9565b82525050565b600061463882614e8c565b6146428185614ea2565b9350614652818560208601615047565b80840191505092915050565b600061466982614e97565b6146738185614ead565b9350614683818560208601615047565b61468c8161518f565b840191505092915050565b60006146a282614e97565b6146ac8185614ebe565b93506146bc818560208601615047565b80840191505092915050565b60006146d5602083614ead565b91506146e0826151ba565b602082019050919050565b60006146f8601483614ead565b9150614703826151e3565b602082019050919050565b600061471b601283614ead565b91506147268261520c565b602082019050919050565b600061473e601c83614ebe565b915061474982615235565b601c82019050919050565b6000614761601883614ead565b915061476c8261525e565b602082019050919050565b6000614784602f83614ead565b915061478f82615287565b604082019050919050565b60006147a7602683614ead565b91506147b2826152d6565b604082019050919050565b60006147ca602c83614ead565b91506147d582615325565b604082019050919050565b60006147ed601b83614ead565b91506147f882615374565b602082019050919050565b6000614810602c83614ead565b915061481b8261539d565b604082019050919050565b6000614833601083614ead565b915061483e826153ec565b602082019050919050565b6000614856602e83614ead565b915061486182615415565b604082019050919050565b6000614879602d83614ead565b915061488482615464565b604082019050919050565b600061489c602083614ead565b91506148a7826154b3565b602082019050919050565b60006148bf601583614ead565b91506148ca826154dc565b602082019050919050565b60006148e2601a83614ead565b91506148ed82615505565b602082019050919050565b6000614905602683614ead565b91506149108261552e565b604082019050919050565b6000614928601783614ebe565b91506149338261557d565b601782019050919050565b600061494b601883614ead565b9150614956826155a6565b602082019050919050565b600061496e601183614ebe565b9150614979826155cf565b601182019050919050565b6000614991602f83614ead565b915061499c826155f8565b604082019050919050565b6149b081615021565b82525050565b6149c76149c282615021565b615115565b82525050565b6149d68161502b565b82525050565b60006149e882876145ca565b6014820191506149f88286614697565b9150614a0482856145f0565b600182019150614a1482846149b6565b60208201915081905095945050505050565b6000614a32828461462d565b915081905092915050565b6000614a498284614697565b915081905092915050565b6000614a5f82614731565b9150614a6b8284614616565b60208201915081905092915050565b6000614a858261491b565b9150614a918285614697565b9150614a9c82614961565b9150614aa88284614697565b91508190509392505050565b6000602082019050614ac960008301846145bb565b92915050565b6000602082019050614ae460008301846145e1565b92915050565b6000602082019050614aff6000830184614607565b92915050565b6000608082019050614b1a6000830187614607565b614b2760208301866149cd565b614b346040830185614607565b614b416060830184614607565b95945050505050565b60006020820190508181036000830152614b64818461465e565b905092915050565b60006060820190508181036000830152614b86818661465e565b9050614b9560208301856145e1565b614ba260408301846149a7565b949350505050565b60006020820190508181036000830152614bc3816146c8565b9050919050565b60006020820190508181036000830152614be3816146eb565b9050919050565b60006020820190508181036000830152614c038161470e565b9050919050565b60006020820190508181036000830152614c2381614754565b9050919050565b60006020820190508181036000830152614c4381614777565b9050919050565b60006020820190508181036000830152614c638161479a565b9050919050565b60006020820190508181036000830152614c83816147bd565b9050919050565b60006020820190508181036000830152614ca3816147e0565b9050919050565b60006020820190508181036000830152614cc381614803565b9050919050565b60006020820190508181036000830152614ce381614826565b9050919050565b60006020820190508181036000830152614d0381614849565b9050919050565b60006020820190508181036000830152614d238161486c565b9050919050565b60006020820190508181036000830152614d438161488f565b9050919050565b60006020820190508181036000830152614d63816148b2565b9050919050565b60006020820190508181036000830152614d83816148d5565b9050919050565b60006020820190508181036000830152614da3816148f8565b9050919050565b60006020820190508181036000830152614dc38161493e565b9050919050565b60006020820190508181036000830152614de381614984565b9050919050565b6000602082019050614dff60008301846149a7565b92915050565b6000614e0f614e20565b9050614e1b82826150a4565b919050565b6000604051905090565b600067ffffffffffffffff821115614e4557614e44615160565b5b614e4e8261518f565b9050602081019050919050565b600067ffffffffffffffff821115614e7657614e75615160565b5b614e7f8261518f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614ed482615021565b9150614edf83615021565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614f1457614f13615131565b5b828201905092915050565b6000614f2a82615021565b9150614f3583615021565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614f6e57614f6d615131565b5b828202905092915050565b6000614f8482615021565b9150614f8f83615021565b925082821015614fa257614fa1615131565b5b828203905092915050565b6000614fb882615001565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561506557808201518184015260208101905061504a565b83811115615074576000848401525b50505050565b600061508582615021565b9150600082141561509957615098615131565b5b600182039050919050565b6150ad8261518f565b810181811067ffffffffffffffff821117156150cc576150cb615160565b5b80604052505050565b60006150e082615103565b9050919050565b60006150f28261511f565b9050919050565b6000819050919050565b600061510e826151ad565b9050919050565b6000819050919050565b600061512a826151a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160601b9050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f7369676e61747572652068617320757365640000000000000000000000000000600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f726571756972652061646d696e207065726d697373696f6e0000000000000000600082015250565b7f45524331393637557067726164653a207570677261646520627265616b73206660008201527f7572746865722075706772616465730000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f72657175697265207570677261646572207065726d697373696f6e0000000000600082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f7369676e61747572652068617320657870697265640000000000000000000000600082015250565b7f756e61626c6520746f20766572696679207369676e6174757265000000000000600082015250565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f696e76616c6964207369676e6174757265206c656e6774680000000000000000600082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b61565081614fad565b811461565b57600080fd5b50565b61566781614fbf565b811461567257600080fd5b50565b61567e81614fcb565b811461568957600080fd5b50565b61569581614fd5565b81146156a057600080fd5b50565b6156ac81615021565b81146156b757600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205d6a990ade1777b74fb8d27e99f22740145f61c5cb8d233d6669addc25dac94864736f6c63430008020033";
"0x60a06040523060601b60805234801561001757600080fd5b50600054610100900460ff1680610031575060005460ff16155b6100985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff161580156100c3576000805460ff1961ff0019909116610100171660011790555b80156100d5576000805461ff00191690555b5060805160601c611e026101096000396000818161050d0152818161054d0152818161060701526106470152611e026000f3fe60806040526004361061012a5760003560e01c80635c975abb116100ab578063d547741f1161006f578063d547741f14610319578063dd60d96514610339578063e17ad93114610359578063e18c726014610379578063f65903b9146103b2578063f72c0d8b146103d25761012a565b80635c975abb146102975780636c19e783146102af5780638456cb59146102cf57806391d14854146102e4578063a217fddf146103045761012a565b80632f2ff15d116100f25780632f2ff15d1461020f57806336568abe1461022f5780633659cfe61461024f5780633f4ba83a1461026f5780634f1ef286146102845761012a565b806301ffc9a71461012f5780630676695b1461016457806306bfcec614610186578063248a9ca3146101ba57806325bee3e9146101f8575b600080fd5b34801561013b57600080fd5b5061014f61014a366004611a5c565b6103e9565b60405190151581526020015b60405180910390f35b34801561017057600080fd5b5061018461017f366004611a19565b610422565b005b34801561019257600080fd5b5060408051808201825260058152640312e302e360dc1b6020820152905161015b9190611b8f565b3480156101c657600080fd5b506101ea6101d5366004611a19565b60009081526065602052604090206001015490565b60405190815260200161015b565b34801561020457600080fd5b506101ea61015f5481565b34801561021b57600080fd5b5061018461022a366004611a31565b610458565b34801561023b57600080fd5b5061018461024a366004611a31565b610484565b34801561025b57600080fd5b5061018461026a3660046118e4565b610502565b34801561027b57600080fd5b506101846105cb565b6101846102923660046118fe565b6105fc565b3480156102a357600080fd5b5060975460ff1661014f565b3480156102bb57600080fd5b506101846102ca3660046118e4565b6106b2565b3480156102db57600080fd5b506101846106fc565b3480156102f057600080fd5b5061014f6102ff366004611a31565b61072b565b34801561031057600080fd5b506101ea600081565b34801561032557600080fd5b50610184610334366004611a31565b610756565b34801561034557600080fd5b5061014f61035436600461194a565b61077c565b34801561036557600080fd5b506101846103743660046119f0565b6107da565b34801561038557600080fd5b506101635461039a906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156103be57600080fd5b506101846103cd36600461195c565b6108ce565b3480156103de57600080fd5b506101ea6101605481565b60006001600160e01b03198216637965db0b60e01b148061041a57506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b61042d6000336102ff565b6104525760405162461bcd60e51b815260040161044990611bc7565b60405180910390fd5b61015f55565b60008281526065602052604090206001015461047581335b610be6565b61047f8383610c4a565b505050565b6001600160a01b03811633146104f45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610449565b6104fe8282610cd0565b5050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561054b5760405162461bcd60e51b815260040161044990611bfe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661057d610d37565b6001600160a01b0316146105a35760405162461bcd60e51b815260040161044990611c4a565b6105ac81610d65565b604080516000808252602082019092526105c891839190610dbf565b50565b6105d66000336102ff565b6105f25760405162461bcd60e51b815260040161044990611bc7565b6105fa610f0a565b565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156106455760405162461bcd60e51b815260040161044990611bfe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610677610d37565b6001600160a01b03161461069d5760405162461bcd60e51b815260040161044990611c4a565b6106a682610d65565b6104fe82826001610dbf565b6106bd6000336102ff565b6106d95760405162461bcd60e51b815260040161044990611bc7565b61016380546001600160a01b0319166001600160a01b0392909216919091179055565b6107076000336102ff565b6107235760405162461bcd60e51b815260040161044990611bc7565b6105fa610f9d565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000828152606560205260409020600101546107728133610470565b61047f8383610cd0565b6001600160a01b0382166000908152610161602090815260408083209051909183916107aa91869101611afe565b60408051808303601f190181529181528151602092830120835290820192909252016000205460ff169392505050565b600054610100900460ff16806107f3575060005460ff16155b61080f5760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff1615801561083a576000805460ff1961ff0019909116610100171660011790555b610842611018565b61084a61109c565b610852611114565b61085a61117c565b6108656000336111e3565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361016081905561089690336111e3565b61016380546001600160a01b0319166001600160a01b03851617905561015f829055801561047f576000805461ff0019169055505050565b60975460ff16156109145760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610449565b61091f6000336102ff565b610b315761015f5461093142846111ed565b106109765760405162461bcd60e51b81526020600482015260156024820152741cda59db985d1d5c99481a185cc8195e1c1a5c9959605a1b6044820152606401610449565b61016260008260405160200161098c9190611afe565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff16156109f75760405162461bcd60e51b81526020600482015260126024820152711cda59db985d1d5c99481a185cc81d5cd95960721b6044820152606401610449565b6000610a7386868686604051602001610a139493929190611ab0565b60408051601f1981840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b610163549091506001600160a01b0316610a8d8284611200565b6001600160a01b031614610ae35760405162461bcd60e51b815260206004820152601a60248201527f756e61626c6520746f20766572696679207369676e61747572650000000000006044820152606401610449565b6001610162600084604051602001610afb9190611afe565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff1916911515919091179055505b6001600160a01b038516600090815261016160209081526040808320905186939192610b5f91899101611afe565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff021916908315150217905550846001600160a01b03167fa75afcecb86d16fdeb01f70715df8a51df373661d7f07e7c944fefcc07aa8704858542604051610bd793929190611ba2565b60405180910390a25050505050565b610bf0828261072b565b6104fe57610c08816001600160a01b0316601461127f565b610c1383602061127f565b604051602001610c24929190611b1a565b60408051601f198184030181529082905262461bcd60e51b825261044991600401611b8f565b610c54828261072b565b6104fe5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610c8c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610cda828261072b565b156104fe5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b610d73610160546102ff3390565b6105c85760405162461bcd60e51b815260206004820152601b60248201527f72657175697265207570677261646572207065726d697373696f6e00000000006044820152606401610449565b6000610dc9610d37565b9050610dd484611461565b600083511180610de15750815b15610df257610df08484611506565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16610f0357805460ff191660011781556040516001600160a01b0383166024820152610e7190869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052611506565b50805460ff19168155610e82610d37565b6001600160a01b0316826001600160a01b031614610efa5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610449565b610f03856115f1565b5050505050565b60975460ff16610f535760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610449565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60975460ff1615610fe35760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610449565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610f803390565b600054610100900460ff1680611031575060005460ff16155b61104d5760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611078576000805460ff1961ff0019909116610100171660011790555b611080611631565b6110886116a4565b80156105c8576000805461ff001916905550565b600054610100900460ff16806110b5575060005460ff16155b6110d15760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff161580156110fc576000805460ff1961ff0019909116610100171660011790555b611104611631565b61110c611631565b611088611631565b600054610100900460ff168061112d575060005460ff16155b6111495760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611174576000805460ff1961ff0019909116610100171660011790555b611088611722565b600054610100900460ff1680611195575060005460ff16155b6111b15760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611104576000805460ff1961ff00199091166101001716600117905561110c611631565b6104fe8282610c4a565b60006111f98284611d1b565b9392505050565b60008060008061120f8561179b565b6040805160008152602081018083528b905260ff8516918101919091526060810183905260808101829052929550909350915060019060a0016020604051602081039080840390855afa15801561126a573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b6060600061128e836002611cfc565b611299906002611ce4565b67ffffffffffffffff8111156112bf57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112e9576020820181803683370190505b509050600360fc1b8160008151811061131257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061134f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611373846002611cfc565b61137e906001611ce4565b90505b6001811115611412576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106113c057634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106113e457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361140b81611d62565b9050611381565b5083156111f95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610449565b803b6114c55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610449565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6115655760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610449565b600080846001600160a01b0316846040516115809190611afe565b600060405180830381855af49150503d80600081146115bb576040519150601f19603f3d011682016040523d82523d6000602084013e6115c0565b606091505b50915091506115e88282604051806060016040528060278152602001611da66027913961180d565b95945050505050565b6115fa81611461565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600054610100900460ff168061164a575060005460ff16155b6116665760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611088576000805460ff1961ff00199091166101001716600117905580156105c8576000805461ff001916905550565b600054610100900460ff16806116bd575060005460ff16155b6116d95760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611704576000805460ff1961ff0019909116610100171660011790555b6097805460ff1916905580156105c8576000805461ff001916905550565b600054610100900460ff168061173b575060005460ff16155b6117575760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611782576000805460ff1961ff0019909116610100171660011790555b600160c95580156105c8576000805461ff001916905550565b600080600083516041146117f15760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606401610449565b5050506020810151604082015160609092015160001a92909190565b6060831561181c5750816111f9565b82511561182c5782518084602001fd5b8160405162461bcd60e51b81526004016104499190611b8f565b80356001600160a01b038116811461041d57600080fd5b600082601f83011261186d578081fd5b813567ffffffffffffffff8082111561188857611888611d8f565b604051601f8301601f19908116603f011681019082821181831017156118b0576118b0611d8f565b816040528381528660208588010111156118c8578485fd5b8360208701602083013792830160200193909352509392505050565b6000602082840312156118f5578081fd5b6111f982611846565b60008060408385031215611910578081fd5b61191983611846565b9150602083013567ffffffffffffffff811115611934578182fd5b6119408582860161185d565b9150509250929050565b60008060408385031215611910578182fd5b600080600080600060a08688031215611973578081fd5b61197c86611846565b9450602086013567ffffffffffffffff80821115611998578283fd5b6119a489838a0161185d565b95506040880135915081151582146119ba578283fd5b90935060608701359250608087013590808211156119d6578283fd5b506119e38882890161185d565b9150509295509295909350565b60008060408385031215611a02578182fd5b611a0b83611846565b946020939093013593505050565b600060208284031215611a2a578081fd5b5035919050565b60008060408385031215611a43578182fd5b82359150611a5360208401611846565b90509250929050565b600060208284031215611a6d578081fd5b81356001600160e01b0319811681146111f9578182fd5b60008151808452611a9c816020860160208601611d32565b601f01601f19169290920160200192915050565b60006bffffffffffffffffffffffff198660601b1682528451611ada816014850160208901611d32565b93151560f81b91909301601481019190915260158101919091526035019392505050565b60008251611b10818460208701611d32565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351611b52816017850160208801611d32565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611b83816028840160208801611d32565b01602801949350505050565b6000602082526111f96020830184611a84565b600060608252611bb56060830186611a84565b93151560208301525060400152919050565b60208082526018908201527f726571756972652061646d696e207065726d697373696f6e0000000000000000604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008219821115611cf757611cf7611d79565b500190565b6000816000190483118215151615611d1657611d16611d79565b500290565b600082821015611d2d57611d2d611d79565b500390565b60005b83811015611d4d578181015183820152602001611d35565b83811115611d5c576000848401525b50505050565b600081611d7157611d71611d79565b506000190190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220709819f0139f9f48d08c53d533f742fd6c7cc9eb2c75932627e9d93154799b1464736f6c63430008020033";

@@ -619,0 +554,0 @@ export class AmethystRoleManagementImpl__factory extends ContractFactory {

@@ -28,21 +28,17 @@ /* Autogenerated file. Do not edit manually. */

"__AmethystRoleManagement_init(address,uint256)": FunctionFragment;
"c_0x843f28ea(bytes32)": FunctionFragment;
"getRoleAdmin(bytes32)": FunctionFragment;
"grantRole(bytes32,address)": FunctionFragment;
"hasAmethystRole(address,string)": FunctionFragment;
"hasRole(bytes32,address)": FunctionFragment;
"haveRole(address,string)": FunctionFragment;
"hostSigner()": FunctionFragment;
"implementationVersion()": FunctionFragment;
"maxExpiration()": FunctionFragment;
"owner()": FunctionFragment;
"pause()": FunctionFragment;
"paused()": FunctionFragment;
"renounceOwnership()": FunctionFragment;
"renounceRole(bytes32,address)": FunctionFragment;
"revokeRole(bytes32,address)": FunctionFragment;
"setAmethystRole(address,string,bool,uint256,bytes)": FunctionFragment;
"setMaxExpiration(uint256)": FunctionFragment;
"setRole(address,string,bool,uint256,bytes)": FunctionFragment;
"setSigner(address)": FunctionFragment;
"supportsInterface(bytes4)": FunctionFragment;
"transferOwnership(address)": FunctionFragment;
"unpause()": FunctionFragment;

@@ -66,6 +62,2 @@ "upgradeTo(address)": FunctionFragment;

encodeFunctionData(
functionFragment: "c_0x843f28ea",
values: [BytesLike]
): string;
encodeFunctionData(
functionFragment: "getRoleAdmin",

@@ -79,2 +71,6 @@ values: [BytesLike]

encodeFunctionData(
functionFragment: "hasAmethystRole",
values: [string, string]
): string;
encodeFunctionData(
functionFragment: "hasRole",

@@ -84,6 +80,2 @@ values: [BytesLike, string]

encodeFunctionData(
functionFragment: "haveRole",
values: [string, string]
): string;
encodeFunctionData(
functionFragment: "hostSigner",

@@ -100,10 +92,5 @@ values?: undefined

): string;
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
encodeFunctionData(functionFragment: "pause", values?: undefined): string;
encodeFunctionData(functionFragment: "paused", values?: undefined): string;
encodeFunctionData(
functionFragment: "renounceOwnership",
values?: undefined
): string;
encodeFunctionData(
functionFragment: "renounceRole",

@@ -117,9 +104,9 @@ values: [BytesLike, string]

encodeFunctionData(
functionFragment: "setAmethystRole",
values: [string, string, boolean, BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "setMaxExpiration",
values: [BigNumberish]
): string;
encodeFunctionData(
functionFragment: "setRole",
values: [string, string, boolean, BigNumberish, BytesLike]
): string;
encodeFunctionData(functionFragment: "setSigner", values: [string]): string;

@@ -130,6 +117,2 @@ encodeFunctionData(

): string;
encodeFunctionData(
functionFragment: "transferOwnership",
values: [string]
): string;
encodeFunctionData(functionFragment: "unpause", values?: undefined): string;

@@ -155,12 +138,11 @@ encodeFunctionData(functionFragment: "upgradeTo", values: [string]): string;

decodeFunctionResult(
functionFragment: "c_0x843f28ea",
functionFragment: "getRoleAdmin",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "getRoleAdmin",
functionFragment: "hasAmethystRole",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "grantRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "hasRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "haveRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "hostSigner", data: BytesLike): Result;

@@ -175,14 +157,13 @@ decodeFunctionResult(

): Result;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "pause", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "paused", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "renounceOwnership",
functionFragment: "renounceRole",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "renounceRole",
functionFragment: "setAmethystRole",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "revokeRole", data: BytesLike): Result;
decodeFunctionResult(

@@ -192,3 +173,2 @@ functionFragment: "setMaxExpiration",

): Result;
decodeFunctionResult(functionFragment: "setRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setSigner", data: BytesLike): Result;

@@ -199,6 +179,2 @@ decodeFunctionResult(

): Result;
decodeFunctionResult(
functionFragment: "transferOwnership",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;

@@ -214,3 +190,2 @@ decodeFunctionResult(functionFragment: "upgradeTo", data: BytesLike): Result;

"BeaconUpgraded(address)": EventFragment;
"OwnershipTransferred(address,address)": EventFragment;
"Paused(address)": EventFragment;

@@ -220,3 +195,3 @@ "RoleAdminChanged(bytes32,bytes32,bytes32)": EventFragment;

"RoleRevoked(bytes32,address,address)": EventFragment;
"SetRole(address,string,bool,uint256)": EventFragment;
"SetAmethystRole(address,string,bool,uint256)": EventFragment;
"Unpaused(address)": EventFragment;

@@ -228,3 +203,2 @@ "Upgraded(address)": EventFragment;

getEvent(nameOrSignatureOrTopic: "BeaconUpgraded"): EventFragment;
getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
getEvent(nameOrSignatureOrTopic: "Paused"): EventFragment;

@@ -234,3 +208,3 @@ getEvent(nameOrSignatureOrTopic: "RoleAdminChanged"): EventFragment;

getEvent(nameOrSignatureOrTopic: "RoleRevoked"): EventFragment;
getEvent(nameOrSignatureOrTopic: "SetRole"): EventFragment;
getEvent(nameOrSignatureOrTopic: "SetAmethystRole"): EventFragment;
getEvent(nameOrSignatureOrTopic: "Unpaused"): EventFragment;

@@ -246,6 +220,2 @@ getEvent(nameOrSignatureOrTopic: "Upgraded"): EventFragment;

export type OwnershipTransferredEvent = TypedEvent<
[string, string] & { previousOwner: string; newOwner: string }
>;
export type PausedEvent = TypedEvent<[string] & { account: string }>;

@@ -269,7 +239,7 @@

export type SetRoleEvent = TypedEvent<
export type SetAmethystRoleEvent = TypedEvent<
[string, string, boolean, BigNumber] & {
person: string;
role: string;
haveRole: boolean;
enable: boolean;
eventTime: BigNumber;

@@ -337,7 +307,2 @@ }

c_0x843f28ea(
c__0x843f28ea: BytesLike,
overrides?: CallOverrides
): Promise<[void]>;
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<[string]>;

@@ -351,2 +316,8 @@

hasAmethystRole(
person: string,
role: string,
overrides?: CallOverrides
): Promise<[boolean]>;
hasRole(

@@ -358,8 +329,2 @@ role: BytesLike,

haveRole(
person: string,
role: string,
overrides?: CallOverrides
): Promise<[boolean]>;
hostSigner(overrides?: CallOverrides): Promise<[string]>;

@@ -371,4 +336,2 @@

owner(overrides?: CallOverrides): Promise<[string]>;
pause(

@@ -380,6 +343,2 @@ overrides?: Overrides & { from?: string | Promise<string> }

renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
renounceRole(

@@ -397,11 +356,6 @@ role: BytesLike,

setMaxExpiration(
expiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setRole(
setAmethystRole(
person: string,
role: string,
isHaveRole: boolean,
enable: boolean,
timestamp: BigNumberish,

@@ -412,2 +366,7 @@ signature: BytesLike,

setMaxExpiration(
newMaxExpiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setSigner(

@@ -423,7 +382,2 @@ newSigner: string,

transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
unpause(

@@ -455,7 +409,2 @@ overrides?: Overrides & { from?: string | Promise<string> }

c_0x843f28ea(
c__0x843f28ea: BytesLike,
overrides?: CallOverrides
): Promise<void>;
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<string>;

@@ -469,2 +418,8 @@

hasAmethystRole(
person: string,
role: string,
overrides?: CallOverrides
): Promise<boolean>;
hasRole(

@@ -476,8 +431,2 @@ role: BytesLike,

haveRole(
person: string,
role: string,
overrides?: CallOverrides
): Promise<boolean>;
hostSigner(overrides?: CallOverrides): Promise<string>;

@@ -489,4 +438,2 @@

owner(overrides?: CallOverrides): Promise<string>;
pause(

@@ -498,6 +445,2 @@ overrides?: Overrides & { from?: string | Promise<string> }

renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
renounceRole(

@@ -515,11 +458,6 @@ role: BytesLike,

setMaxExpiration(
expiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setRole(
setAmethystRole(
person: string,
role: string,
isHaveRole: boolean,
enable: boolean,
timestamp: BigNumberish,

@@ -530,2 +468,7 @@ signature: BytesLike,

setMaxExpiration(
newMaxExpiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setSigner(

@@ -541,7 +484,2 @@ newSigner: string,

transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
unpause(

@@ -573,7 +511,2 @@ overrides?: Overrides & { from?: string | Promise<string> }

c_0x843f28ea(
c__0x843f28ea: BytesLike,
overrides?: CallOverrides
): Promise<void>;
getRoleAdmin(role: BytesLike, overrides?: CallOverrides): Promise<string>;

@@ -587,2 +520,8 @@

hasAmethystRole(
person: string,
role: string,
overrides?: CallOverrides
): Promise<boolean>;
hasRole(

@@ -594,8 +533,2 @@ role: BytesLike,

haveRole(
person: string,
role: string,
overrides?: CallOverrides
): Promise<boolean>;
hostSigner(overrides?: CallOverrides): Promise<string>;

@@ -607,4 +540,2 @@

owner(overrides?: CallOverrides): Promise<string>;
pause(overrides?: CallOverrides): Promise<void>;

@@ -614,4 +545,2 @@

renounceOwnership(overrides?: CallOverrides): Promise<void>;
renounceRole(

@@ -629,11 +558,6 @@ role: BytesLike,

setMaxExpiration(
expiration: BigNumberish,
overrides?: CallOverrides
): Promise<void>;
setRole(
setAmethystRole(
person: string,
role: string,
isHaveRole: boolean,
enable: boolean,
timestamp: BigNumberish,

@@ -644,2 +568,7 @@ signature: BytesLike,

setMaxExpiration(
newMaxExpiration: BigNumberish,
overrides?: CallOverrides
): Promise<void>;
setSigner(newSigner: string, overrides?: CallOverrides): Promise<void>;

@@ -652,7 +581,2 @@

transferOwnership(
newOwner: string,
overrides?: CallOverrides
): Promise<void>;
unpause(overrides?: CallOverrides): Promise<void>;

@@ -697,18 +621,2 @@

"OwnershipTransferred(address,address)"(
previousOwner?: string | null,
newOwner?: string | null
): TypedEventFilter<
[string, string],
{ previousOwner: string; newOwner: string }
>;
OwnershipTransferred(
previousOwner?: string | null,
newOwner?: string | null
): TypedEventFilter<
[string, string],
{ previousOwner: string; newOwner: string }
>;
"Paused(address)"(

@@ -774,20 +682,20 @@ account?: null

"SetRole(address,string,bool,uint256)"(
"SetAmethystRole(address,string,bool,uint256)"(
person?: string | null,
role?: null,
haveRole?: null,
enable?: null,
eventTime?: null
): TypedEventFilter<
[string, string, boolean, BigNumber],
{ person: string; role: string; haveRole: boolean; eventTime: BigNumber }
{ person: string; role: string; enable: boolean; eventTime: BigNumber }
>;
SetRole(
SetAmethystRole(
person?: string | null,
role?: null,
haveRole?: null,
enable?: null,
eventTime?: null
): TypedEventFilter<
[string, string, boolean, BigNumber],
{ person: string; role: string; haveRole: boolean; eventTime: BigNumber }
{ person: string; role: string; enable: boolean; eventTime: BigNumber }
>;

@@ -821,7 +729,2 @@

c_0x843f28ea(
c__0x843f28ea: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
getRoleAdmin(

@@ -838,2 +741,8 @@ role: BytesLike,

hasAmethystRole(
person: string,
role: string,
overrides?: CallOverrides
): Promise<BigNumber>;
hasRole(

@@ -845,8 +754,2 @@ role: BytesLike,

haveRole(
person: string,
role: string,
overrides?: CallOverrides
): Promise<BigNumber>;
hostSigner(overrides?: CallOverrides): Promise<BigNumber>;

@@ -858,4 +761,2 @@

owner(overrides?: CallOverrides): Promise<BigNumber>;
pause(

@@ -867,6 +768,2 @@ overrides?: Overrides & { from?: string | Promise<string> }

renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
renounceRole(

@@ -884,11 +781,6 @@ role: BytesLike,

setMaxExpiration(
expiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setRole(
setAmethystRole(
person: string,
role: string,
isHaveRole: boolean,
enable: boolean,
timestamp: BigNumberish,

@@ -899,2 +791,7 @@ signature: BytesLike,

setMaxExpiration(
newMaxExpiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setSigner(

@@ -910,7 +807,2 @@ newSigner: string,

transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
unpause(

@@ -945,7 +837,2 @@ overrides?: Overrides & { from?: string | Promise<string> }

c_0x843f28ea(
c__0x843f28ea: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
getRoleAdmin(

@@ -962,2 +849,8 @@ role: BytesLike,

hasAmethystRole(
person: string,
role: string,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
hasRole(

@@ -969,8 +862,2 @@ role: BytesLike,

haveRole(
person: string,
role: string,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
hostSigner(overrides?: CallOverrides): Promise<PopulatedTransaction>;

@@ -984,4 +871,2 @@

owner(overrides?: CallOverrides): Promise<PopulatedTransaction>;
pause(

@@ -993,6 +878,2 @@ overrides?: Overrides & { from?: string | Promise<string> }

renounceOwnership(
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
renounceRole(

@@ -1010,11 +891,6 @@ role: BytesLike,

setMaxExpiration(
expiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setRole(
setAmethystRole(
person: string,
role: string,
isHaveRole: boolean,
enable: boolean,
timestamp: BigNumberish,

@@ -1025,2 +901,7 @@ signature: BytesLike,

setMaxExpiration(
newMaxExpiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setSigner(

@@ -1036,7 +917,2 @@ newSigner: string,

transferOwnership(
newOwner: string,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
unpause(

@@ -1043,0 +919,0 @@ overrides?: Overrides & { from?: string | Promise<string> }

@@ -125,15 +125,2 @@ /* Autogenerated file. Do not edit manually. */

{
internalType: "bytes32",
name: "c__0xca78f748",
type: "bytes32",
},
],
name: "c_0xca78f748",
outputs: [],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "uint256",

@@ -357,3 +344,3 @@ name: "tokenId",

const _bytecode =
"0x608060405234801561001057600080fd5b5061243e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a22cb46511610066578063a22cb4651461025b578063b88d4fde14610277578063c87b56dd14610293578063e985e9c5146102c3576100ea565b806370a08231146101f15780637fdebd701461022157806395d89b411461023d576100ea565b8063095ea7b3116100c8578063095ea7b31461016d57806323b872dd1461018957806342842e0e146101a55780636352211e146101c1576100ea565b806301ffc9a7146100ef57806306fdde031461011f578063081812fc1461013d575b600080fd5b610109600480360381019061010491906116f7565b6102f3565b6040516101169190611a71565b60405180910390f35b6101276103d5565b6040516101349190611a8c565b60405180910390f35b61015760048036038101906101529190611749565b610467565b6040516101649190611a0a565b60405180910390f35b61018760048036038101906101829190611692565b6104ec565b005b6101a3600480360381019061019e919061158c565b610604565b005b6101bf60048036038101906101ba919061158c565b610664565b005b6101db60048036038101906101d69190611749565b610684565b6040516101e89190611a0a565b60405180910390f35b61020b60048036038101906102069190611527565b610736565b6040516102189190611c2e565b60405180910390f35b61023b600480360381019061023691906116ce565b6107ee565b005b6102456107f1565b6040516102529190611a8c565b60405180910390f35b61027560048036038101906102709190611656565b610883565b005b610291600480360381019061028c91906115db565b610a04565b005b6102ad60048036038101906102a89190611749565b610a66565b6040516102ba9190611a8c565b60405180910390f35b6102dd60048036038101906102d89190611550565b610b0d565b6040516102ea9190611a71565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103be57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103ce57506103cd82610ba1565b5b9050919050565b6060606580546103e490611e5d565b80601f016020809104026020016040519081016040528092919081815260200182805461041090611e5d565b801561045d5780601f106104325761010080835404028352916020019161045d565b820191906000526020600020905b81548152906001019060200180831161044057829003601f168201915b5050505050905090565b600061047282610c0b565b6104b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a890611b8e565b60405180910390fd5b6069600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104f782610684565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055f90611bee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610587610c77565b73ffffffffffffffffffffffffffffffffffffffff1614806105b657506105b5816105b0610c77565b610b0d565b5b6105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec90611b2e565b60405180910390fd5b6105ff8383610c7f565b505050565b61061561060f610c77565b82610d38565b610654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064b90611c0e565b60405180910390fd5b61065f838383610e16565b505050565b61067f83838360405180602001604052806000815250610a04565b505050565b6000806067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561072d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072490611b6e565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e90611b4e565b60405180910390fd5b606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b50565b60606066805461080090611e5d565b80601f016020809104026020016040519081016040528092919081815260200182805461082c90611e5d565b80156108795780601f1061084e57610100808354040283529160200191610879565b820191906000526020600020905b81548152906001019060200180831161085c57829003601f168201915b5050505050905090565b61088b610c77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090611aee565b60405180910390fd5b80606a6000610906610c77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166109b3610c77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109f89190611a71565b60405180910390a35050565b610a15610a0f610c77565b83610d38565b610a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4b90611c0e565b60405180910390fd5b610a6084848484611072565b50505050565b6060610a7182610c0b565b610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790611bce565b60405180910390fd5b6000610aba6110ce565b90506000815111610ada5760405180602001604052806000815250610b05565b80610ae4846110e5565b604051602001610af59291906119e6565b6040516020818303038152906040525b915050919050565b6000606a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816069600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610cf283610684565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610d4382610c0b565b610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7990611b0e565b60405180910390fd5b6000610d8d83610684565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610dfc57508373ffffffffffffffffffffffffffffffffffffffff16610de484610467565b73ffffffffffffffffffffffffffffffffffffffff16145b80610e0d5750610e0c8185610b0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610e3682610684565b73ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8390611bae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390611ace565b60405180910390fd5b610f07838383611292565b610f12600082610c7f565b6001606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f629190611d69565b925050819055506001606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fb99190611ce2565b92505081905550816067600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61107d848484610e16565b61108984848484611297565b6110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90611aae565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060600082141561112d576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061128d565b600082905060005b6000821461115f57808061114890611ec0565b915050600a826111589190611d38565b9150611135565b60008167ffffffffffffffff8111156111a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156111d35781602001600182028036833780820191505090505b5090505b60008514611286576001826111ec9190611d69565b9150600a856111fb9190611f09565b60306112079190611ce2565b60f81b818381518110611243577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561127f9190611d38565b94506111d7565b8093505050505b919050565b505050565b60006112b88473ffffffffffffffffffffffffffffffffffffffff1661142e565b15611421578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026112e1610c77565b8786866040518563ffffffff1660e01b81526004016113039493929190611a25565b602060405180830381600087803b15801561131d57600080fd5b505af192505050801561134e57506040513d601f19601f8201168201806040525081019061134b9190611720565b60015b6113d1573d806000811461137e576040519150601f19603f3d011682016040523d82523d6000602084013e611383565b606091505b506000815114156113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090611aae565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611426565b600190505b949350505050565b600080823b905060008111915050919050565b600061145461144f84611c6e565b611c49565b90508281526020810184848401111561146c57600080fd5b611477848285611e1b565b509392505050565b60008135905061148e81612395565b92915050565b6000813590506114a3816123ac565b92915050565b6000813590506114b8816123c3565b92915050565b6000813590506114cd816123da565b92915050565b6000815190506114e2816123da565b92915050565b600082601f8301126114f957600080fd5b8135611509848260208601611441565b91505092915050565b600081359050611521816123f1565b92915050565b60006020828403121561153957600080fd5b60006115478482850161147f565b91505092915050565b6000806040838503121561156357600080fd5b60006115718582860161147f565b92505060206115828582860161147f565b9150509250929050565b6000806000606084860312156115a157600080fd5b60006115af8682870161147f565b93505060206115c08682870161147f565b92505060406115d186828701611512565b9150509250925092565b600080600080608085870312156115f157600080fd5b60006115ff8782880161147f565b94505060206116108782880161147f565b935050604061162187828801611512565b925050606085013567ffffffffffffffff81111561163e57600080fd5b61164a878288016114e8565b91505092959194509250565b6000806040838503121561166957600080fd5b60006116778582860161147f565b925050602061168885828601611494565b9150509250929050565b600080604083850312156116a557600080fd5b60006116b38582860161147f565b92505060206116c485828601611512565b9150509250929050565b6000602082840312156116e057600080fd5b60006116ee848285016114a9565b91505092915050565b60006020828403121561170957600080fd5b6000611717848285016114be565b91505092915050565b60006020828403121561173257600080fd5b6000611740848285016114d3565b91505092915050565b60006020828403121561175b57600080fd5b600061176984828501611512565b91505092915050565b61177b81611d9d565b82525050565b61178a81611daf565b82525050565b600061179b82611c9f565b6117a58185611cb5565b93506117b5818560208601611e2a565b6117be81611ff6565b840191505092915050565b60006117d482611caa565b6117de8185611cc6565b93506117ee818560208601611e2a565b6117f781611ff6565b840191505092915050565b600061180d82611caa565b6118178185611cd7565b9350611827818560208601611e2a565b80840191505092915050565b6000611840603283611cc6565b915061184b82612007565b604082019050919050565b6000611863602483611cc6565b915061186e82612056565b604082019050919050565b6000611886601983611cc6565b9150611891826120a5565b602082019050919050565b60006118a9602c83611cc6565b91506118b4826120ce565b604082019050919050565b60006118cc603883611cc6565b91506118d78261211d565b604082019050919050565b60006118ef602a83611cc6565b91506118fa8261216c565b604082019050919050565b6000611912602983611cc6565b915061191d826121bb565b604082019050919050565b6000611935602c83611cc6565b91506119408261220a565b604082019050919050565b6000611958602983611cc6565b915061196382612259565b604082019050919050565b600061197b602f83611cc6565b9150611986826122a8565b604082019050919050565b600061199e602183611cc6565b91506119a9826122f7565b604082019050919050565b60006119c1603183611cc6565b91506119cc82612346565b604082019050919050565b6119e081611e11565b82525050565b60006119f28285611802565b91506119fe8284611802565b91508190509392505050565b6000602082019050611a1f6000830184611772565b92915050565b6000608082019050611a3a6000830187611772565b611a476020830186611772565b611a5460408301856119d7565b8181036060830152611a668184611790565b905095945050505050565b6000602082019050611a866000830184611781565b92915050565b60006020820190508181036000830152611aa681846117c9565b905092915050565b60006020820190508181036000830152611ac781611833565b9050919050565b60006020820190508181036000830152611ae781611856565b9050919050565b60006020820190508181036000830152611b0781611879565b9050919050565b60006020820190508181036000830152611b278161189c565b9050919050565b60006020820190508181036000830152611b47816118bf565b9050919050565b60006020820190508181036000830152611b67816118e2565b9050919050565b60006020820190508181036000830152611b8781611905565b9050919050565b60006020820190508181036000830152611ba781611928565b9050919050565b60006020820190508181036000830152611bc78161194b565b9050919050565b60006020820190508181036000830152611be78161196e565b9050919050565b60006020820190508181036000830152611c0781611991565b9050919050565b60006020820190508181036000830152611c27816119b4565b9050919050565b6000602082019050611c4360008301846119d7565b92915050565b6000611c53611c64565b9050611c5f8282611e8f565b919050565b6000604051905090565b600067ffffffffffffffff821115611c8957611c88611fc7565b5b611c9282611ff6565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000611ced82611e11565b9150611cf883611e11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d2d57611d2c611f3a565b5b828201905092915050565b6000611d4382611e11565b9150611d4e83611e11565b925082611d5e57611d5d611f69565b5b828204905092915050565b6000611d7482611e11565b9150611d7f83611e11565b925082821015611d9257611d91611f3a565b5b828203905092915050565b6000611da882611df1565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611e48578082015181840152602081019050611e2d565b83811115611e57576000848401525b50505050565b60006002820490506001821680611e7557607f821691505b60208210811415611e8957611e88611f98565b5b50919050565b611e9882611ff6565b810181811067ffffffffffffffff82111715611eb757611eb6611fc7565b5b80604052505050565b6000611ecb82611e11565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611efe57611efd611f3a565b5b600182019050919050565b6000611f1482611e11565b9150611f1f83611e11565b925082611f2f57611f2e611f69565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61239e81611d9d565b81146123a957600080fd5b50565b6123b581611daf565b81146123c057600080fd5b50565b6123cc81611dbb565b81146123d757600080fd5b50565b6123e381611dc5565b81146123ee57600080fd5b50565b6123fa81611e11565b811461240557600080fd5b5056fea26469706673582212203e72f6dbd8821b32c9781db896e366c4aa7b2352d8225b4dddc4d8071ac119af64736f6c63430008020033";
"0x608060405234801561001057600080fd5b50611247806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610f3f565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190611027565b61012461011f366004610f77565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610f16565b6103a8565b005b61014f61015f366004610dcc565b6104be565b61014f610172366004610dcc565b6104ef565b610124610185366004610f77565b61050a565b61019d610198366004610d80565b610581565b6040519081526020016100f3565b610104610608565b61014f6101c1366004610edc565b610617565b61014f6101d4366004610e07565b6106e9565b6101046101e7366004610f77565b610721565b6100e76101fa366004610d9a565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606065805461028b9061114c565b80601f01602080910402602001604051908101604052809291908181526020018280546102b79061114c565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b031661038c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b60006103b38261050a565b9050806001600160a01b0316836001600160a01b031614156104215760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610383565b336001600160a01b038216148061043d575061043d81336101fa565b6104af5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610383565b6104b98383610809565b505050565b6104c83382610877565b6104e45760405162461bcd60e51b81526004016103839061108c565b6104b983838361096e565b6104b9838383604051806020016040528060008152506106e9565b6000818152606760205260408120546001600160a01b0316806102745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610383565b60006001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610383565b506001600160a01b031660009081526068602052604090205490565b60606066805461028b9061114c565b6001600160a01b0382163314156106705760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610383565b336000818152606a602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516106dd911515815260200190565b60405180910390a35050565b6106f33383610877565b61070f5760405162461bcd60e51b81526004016103839061108c565b61071b84848484610b0e565b50505050565b6000818152606760205260409020546060906001600160a01b03166107a05760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610383565b60006107b760408051602081019091526000815290565b905060008151116107d75760405180602001604052806000815250610802565b806107e184610b41565b6040516020016107f2929190610fbb565b6040516020818303038152906040525b9392505050565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061083e8261050a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606760205260408120546001600160a01b03166108f05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610383565b60006108fb8361050a565b9050806001600160a01b0316846001600160a01b031614806109365750836001600160a01b031661092b8461030e565b6001600160a01b0316145b8061096657506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166109818261050a565b6001600160a01b0316146109e95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610383565b6001600160a01b038216610a4b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610383565b610a56600082610809565b6001600160a01b0383166000908152606860205260408120805460019290610a7f908490611109565b90915550506001600160a01b0382166000908152606860205260408120805460019290610aad9084906110dd565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610b1984848461096e565b610b2584848484610c5c565b61071b5760405162461bcd60e51b81526004016103839061103a565b606081610b6657506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610b905780610b7a81611187565b9150610b899050600a836110f5565b9150610b6a565b60008167ffffffffffffffff811115610bb957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610be3576020820181803683370190505b5090505b841561096657610bf8600183611109565b9150610c05600a866111a2565b610c109060306110dd565b60f81b818381518110610c3357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610c55600a866110f5565b9450610be7565b60006001600160a01b0384163b15610d5e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ca0903390899088908890600401610fea565b602060405180830381600087803b158015610cba57600080fd5b505af1925050508015610cea575060408051601f3d908101601f19168201909252610ce791810190610f5b565b60015b610d44573d808015610d18576040519150601f19603f3d011682016040523d82523d6000602084013e610d1d565b606091505b508051610d3c5760405162461bcd60e51b81526004016103839061103a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610966565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610d91578081fd5b61080282610d69565b60008060408385031215610dac578081fd5b610db583610d69565b9150610dc360208401610d69565b90509250929050565b600080600060608486031215610de0578081fd5b610de984610d69565b9250610df760208501610d69565b9150604084013590509250925092565b60008060008060808587031215610e1c578081fd5b610e2585610d69565b9350610e3360208601610d69565b925060408501359150606085013567ffffffffffffffff80821115610e56578283fd5b818701915087601f830112610e69578283fd5b813581811115610e7b57610e7b6111e2565b604051601f8201601f19908116603f01168101908382118183101715610ea357610ea36111e2565b816040528281528a6020848701011115610ebb578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610eee578182fd5b610ef783610d69565b915060208301358015158114610f0b578182fd5b809150509250929050565b60008060408385031215610f28578182fd5b610f3183610d69565b946020939093013593505050565b600060208284031215610f50578081fd5b8135610802816111f8565b600060208284031215610f6c578081fd5b8151610802816111f8565b600060208284031215610f88578081fd5b5035919050565b60008151808452610fa7816020860160208601611120565b601f01601f19169290920160200192915050565b60008351610fcd818460208801611120565b835190830190610fe1818360208801611120565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061101d90830184610f8f565b9695505050505050565b6000602082526108026020830184610f8f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156110f0576110f06111b6565b500190565b600082611104576111046111cc565b500490565b60008282101561111b5761111b6111b6565b500390565b60005b8381101561113b578181015183820152602001611123565b8381111561071b5750506000910152565b60028104600182168061116057607f821691505b6020821081141561118157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561119b5761119b6111b6565b5060010190565b6000826111b1576111b16111cc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461120e57600080fd5b5056fea26469706673582212207a9b6deeaf6cb6357688b264fc5a849c3768f0e4d5ecfedb90a9f9c3575d0d5464736f6c63430008020033";

@@ -360,0 +347,0 @@ export class ERC721Impl__factory extends ContractFactory {

@@ -26,3 +26,2 @@ /* Autogenerated file. Do not edit manually. */

"balanceOf(address)": FunctionFragment;
"c_0xca78f748(bytes32)": FunctionFragment;
"getApproved(uint256)": FunctionFragment;

@@ -46,6 +45,2 @@ "isApprovedForAll(address,address)": FunctionFragment;

encodeFunctionData(
functionFragment: "c_0xca78f748",
values: [BytesLike]
): string;
encodeFunctionData(
functionFragment: "getApproved",

@@ -88,6 +83,2 @@ values: [BigNumberish]

decodeFunctionResult(
functionFragment: "c_0xca78f748",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "getApproved",

@@ -204,7 +195,2 @@ data: BytesLike

c_0xca78f748(
c__0xca78f748: BytesLike,
overrides?: CallOverrides
): Promise<[void]>;
getApproved(

@@ -277,7 +263,2 @@ tokenId: BigNumberish,

c_0xca78f748(
c__0xca78f748: BytesLike,
overrides?: CallOverrides
): Promise<void>;
getApproved(

@@ -344,7 +325,2 @@ tokenId: BigNumberish,

c_0xca78f748(
c__0xca78f748: BytesLike,
overrides?: CallOverrides
): Promise<void>;
getApproved(

@@ -468,7 +444,2 @@ tokenId: BigNumberish,

c_0xca78f748(
c__0xca78f748: BytesLike,
overrides?: CallOverrides
): Promise<BigNumber>;
getApproved(

@@ -545,7 +516,2 @@ tokenId: BigNumberish,

c_0xca78f748(
c__0xca78f748: BytesLike,
overrides?: CallOverrides
): Promise<PopulatedTransaction>;
getApproved(

@@ -552,0 +518,0 @@ tokenId: BigNumberish,

@@ -346,3 +346,3 @@ /* Autogenerated file. Do not edit manually. */

const _bytecode =
"0x608060405234801561001057600080fd5b506123a5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610224578063b88d4fde14610240578063c87b56dd1461025c578063e985e9c51461028c576100cf565b80636352211e146101a657806370a08231146101d657806395d89b4114610206576100cf565b806301ffc9a7146100d457806306fdde0314610104578063081812fc14610122578063095ea7b31461015257806323b872dd1461016e57806342842e0e1461018a575b600080fd5b6100ee60048036038101906100e9919061167f565b6102bc565b6040516100fb91906119f9565b60405180910390f35b61010c61039e565b6040516101199190611a14565b60405180910390f35b61013c600480360381019061013791906116d1565b610430565b6040516101499190611992565b60405180910390f35b61016c60048036038101906101679190611643565b6104b5565b005b6101886004803603810190610183919061153d565b6105cd565b005b6101a4600480360381019061019f919061153d565b61062d565b005b6101c060048036038101906101bb91906116d1565b61064d565b6040516101cd9190611992565b60405180910390f35b6101f060048036038101906101eb91906114d8565b6106ff565b6040516101fd9190611bb6565b60405180910390f35b61020e6107b7565b60405161021b9190611a14565b60405180910390f35b61023e60048036038101906102399190611607565b610849565b005b61025a6004803603810190610255919061158c565b6109ca565b005b610276600480360381019061027191906116d1565b610a2c565b6040516102839190611a14565b60405180910390f35b6102a660048036038101906102a19190611501565b610ad3565b6040516102b391906119f9565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610397575061039682610b67565b5b9050919050565b6060606580546103ad90611ddb565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990611ddb565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050905090565b600061043b82610bd1565b61047a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047190611b16565b60405180910390fd5b6069600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104c08261064d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052890611b76565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610550610c3d565b73ffffffffffffffffffffffffffffffffffffffff16148061057f575061057e81610579610c3d565b610ad3565b5b6105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b590611ab6565b60405180910390fd5b6105c88383610c45565b505050565b6105de6105d8610c3d565b82610cfe565b61061d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061490611b96565b60405180910390fd5b610628838383610ddc565b505050565b610648838383604051806020016040528060008152506109ca565b505050565b6000806067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ed90611af6565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076790611ad6565b60405180910390fd5b606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060606680546107c690611ddb565b80601f01602080910402602001604051908101604052809291908181526020018280546107f290611ddb565b801561083f5780601f106108145761010080835404028352916020019161083f565b820191906000526020600020905b81548152906001019060200180831161082257829003601f168201915b5050505050905090565b610851610c3d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b690611a76565b60405180910390fd5b80606a60006108cc610c3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610979610c3d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109be91906119f9565b60405180910390a35050565b6109db6109d5610c3d565b83610cfe565b610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1190611b96565b60405180910390fd5b610a2684848484611038565b50505050565b6060610a3782610bd1565b610a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6d90611b56565b60405180910390fd5b6000610a80611094565b90506000815111610aa05760405180602001604052806000815250610acb565b80610aaa846110ab565b604051602001610abb92919061196e565b6040516020818303038152906040525b915050919050565b6000606a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816069600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610cb88361064d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610d0982610bd1565b610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90611a96565b60405180910390fd5b6000610d538361064d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610dc257508373ffffffffffffffffffffffffffffffffffffffff16610daa84610430565b73ffffffffffffffffffffffffffffffffffffffff16145b80610dd35750610dd28185610ad3565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610dfc8261064d565b73ffffffffffffffffffffffffffffffffffffffff1614610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990611b36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990611a56565b60405180910390fd5b610ecd838383611258565b610ed8600082610c45565b6001606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f289190611cf1565b925050819055506001606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f7f9190611c6a565b92505081905550816067600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611043848484610ddc565b61104f8484848461125d565b61108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590611a36565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060008214156110f3576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611253565b600082905060005b6000821461112557808061110e90611e3e565b915050600a8261111e9190611cc0565b91506110fb565b60008167ffffffffffffffff811115611167577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156111995781602001600182028036833780820191505090505b5090505b6000851461124c576001826111b29190611cf1565b9150600a856111c19190611e87565b60306111cd9190611c6a565b60f81b818381518110611209577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856112459190611cc0565b945061119d565b8093505050505b919050565b505050565b600061127e8473ffffffffffffffffffffffffffffffffffffffff166113f4565b156113e7578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026112a7610c3d565b8786866040518563ffffffff1660e01b81526004016112c994939291906119ad565b602060405180830381600087803b1580156112e357600080fd5b505af192505050801561131457506040513d601f19601f8201168201806040525081019061131191906116a8565b60015b611397573d8060008114611344576040519150601f19603f3d011682016040523d82523d6000602084013e611349565b606091505b5060008151141561138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138690611a36565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506113ec565b600190505b949350505050565b600080823b905060008111915050919050565b600061141a61141584611bf6565b611bd1565b90508281526020810184848401111561143257600080fd5b61143d848285611d99565b509392505050565b60008135905061145481612313565b92915050565b6000813590506114698161232a565b92915050565b60008135905061147e81612341565b92915050565b60008151905061149381612341565b92915050565b600082601f8301126114aa57600080fd5b81356114ba848260208601611407565b91505092915050565b6000813590506114d281612358565b92915050565b6000602082840312156114ea57600080fd5b60006114f884828501611445565b91505092915050565b6000806040838503121561151457600080fd5b600061152285828601611445565b925050602061153385828601611445565b9150509250929050565b60008060006060848603121561155257600080fd5b600061156086828701611445565b935050602061157186828701611445565b9250506040611582868287016114c3565b9150509250925092565b600080600080608085870312156115a257600080fd5b60006115b087828801611445565b94505060206115c187828801611445565b93505060406115d2878288016114c3565b925050606085013567ffffffffffffffff8111156115ef57600080fd5b6115fb87828801611499565b91505092959194509250565b6000806040838503121561161a57600080fd5b600061162885828601611445565b92505060206116398582860161145a565b9150509250929050565b6000806040838503121561165657600080fd5b600061166485828601611445565b9250506020611675858286016114c3565b9150509250929050565b60006020828403121561169157600080fd5b600061169f8482850161146f565b91505092915050565b6000602082840312156116ba57600080fd5b60006116c884828501611484565b91505092915050565b6000602082840312156116e357600080fd5b60006116f1848285016114c3565b91505092915050565b61170381611d25565b82525050565b61171281611d37565b82525050565b600061172382611c27565b61172d8185611c3d565b935061173d818560208601611da8565b61174681611f74565b840191505092915050565b600061175c82611c32565b6117668185611c4e565b9350611776818560208601611da8565b61177f81611f74565b840191505092915050565b600061179582611c32565b61179f8185611c5f565b93506117af818560208601611da8565b80840191505092915050565b60006117c8603283611c4e565b91506117d382611f85565b604082019050919050565b60006117eb602483611c4e565b91506117f682611fd4565b604082019050919050565b600061180e601983611c4e565b915061181982612023565b602082019050919050565b6000611831602c83611c4e565b915061183c8261204c565b604082019050919050565b6000611854603883611c4e565b915061185f8261209b565b604082019050919050565b6000611877602a83611c4e565b9150611882826120ea565b604082019050919050565b600061189a602983611c4e565b91506118a582612139565b604082019050919050565b60006118bd602c83611c4e565b91506118c882612188565b604082019050919050565b60006118e0602983611c4e565b91506118eb826121d7565b604082019050919050565b6000611903602f83611c4e565b915061190e82612226565b604082019050919050565b6000611926602183611c4e565b915061193182612275565b604082019050919050565b6000611949603183611c4e565b9150611954826122c4565b604082019050919050565b61196881611d8f565b82525050565b600061197a828561178a565b9150611986828461178a565b91508190509392505050565b60006020820190506119a760008301846116fa565b92915050565b60006080820190506119c260008301876116fa565b6119cf60208301866116fa565b6119dc604083018561195f565b81810360608301526119ee8184611718565b905095945050505050565b6000602082019050611a0e6000830184611709565b92915050565b60006020820190508181036000830152611a2e8184611751565b905092915050565b60006020820190508181036000830152611a4f816117bb565b9050919050565b60006020820190508181036000830152611a6f816117de565b9050919050565b60006020820190508181036000830152611a8f81611801565b9050919050565b60006020820190508181036000830152611aaf81611824565b9050919050565b60006020820190508181036000830152611acf81611847565b9050919050565b60006020820190508181036000830152611aef8161186a565b9050919050565b60006020820190508181036000830152611b0f8161188d565b9050919050565b60006020820190508181036000830152611b2f816118b0565b9050919050565b60006020820190508181036000830152611b4f816118d3565b9050919050565b60006020820190508181036000830152611b6f816118f6565b9050919050565b60006020820190508181036000830152611b8f81611919565b9050919050565b60006020820190508181036000830152611baf8161193c565b9050919050565b6000602082019050611bcb600083018461195f565b92915050565b6000611bdb611bec565b9050611be78282611e0d565b919050565b6000604051905090565b600067ffffffffffffffff821115611c1157611c10611f45565b5b611c1a82611f74565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000611c7582611d8f565b9150611c8083611d8f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611cb557611cb4611eb8565b5b828201905092915050565b6000611ccb82611d8f565b9150611cd683611d8f565b925082611ce657611ce5611ee7565b5b828204905092915050565b6000611cfc82611d8f565b9150611d0783611d8f565b925082821015611d1a57611d19611eb8565b5b828203905092915050565b6000611d3082611d6f565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611dc6578082015181840152602081019050611dab565b83811115611dd5576000848401525b50505050565b60006002820490506001821680611df357607f821691505b60208210811415611e0757611e06611f16565b5b50919050565b611e1682611f74565b810181811067ffffffffffffffff82111715611e3557611e34611f45565b5b80604052505050565b6000611e4982611d8f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611e7c57611e7b611eb8565b5b600182019050919050565b6000611e9282611d8f565b9150611e9d83611d8f565b925082611ead57611eac611ee7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61231c81611d25565b811461232757600080fd5b50565b61233381611d37565b811461233e57600080fd5b50565b61234a81611d43565b811461235557600080fd5b50565b61236181611d8f565b811461236c57600080fd5b5056fea26469706673582212202a85b89943708e8d6cb1119ee08ed779c134015796cc53714b91766d16833ca664736f6c63430008020033";
"0x608060405234801561001057600080fd5b50611247806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610f3f565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190611027565b61012461011f366004610f77565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610f16565b6103a8565b005b61014f61015f366004610dcc565b6104be565b61014f610172366004610dcc565b6104ef565b610124610185366004610f77565b61050a565b61019d610198366004610d80565b610581565b6040519081526020016100f3565b610104610608565b61014f6101c1366004610edc565b610617565b61014f6101d4366004610e07565b6106e9565b6101046101e7366004610f77565b610721565b6100e76101fa366004610d9a565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606065805461028b9061114c565b80601f01602080910402602001604051908101604052809291908181526020018280546102b79061114c565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b031661038c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b60006103b38261050a565b9050806001600160a01b0316836001600160a01b031614156104215760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610383565b336001600160a01b038216148061043d575061043d81336101fa565b6104af5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610383565b6104b98383610809565b505050565b6104c83382610877565b6104e45760405162461bcd60e51b81526004016103839061108c565b6104b983838361096e565b6104b9838383604051806020016040528060008152506106e9565b6000818152606760205260408120546001600160a01b0316806102745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610383565b60006001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610383565b506001600160a01b031660009081526068602052604090205490565b60606066805461028b9061114c565b6001600160a01b0382163314156106705760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610383565b336000818152606a602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516106dd911515815260200190565b60405180910390a35050565b6106f33383610877565b61070f5760405162461bcd60e51b81526004016103839061108c565b61071b84848484610b0e565b50505050565b6000818152606760205260409020546060906001600160a01b03166107a05760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610383565b60006107b760408051602081019091526000815290565b905060008151116107d75760405180602001604052806000815250610802565b806107e184610b41565b6040516020016107f2929190610fbb565b6040516020818303038152906040525b9392505050565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061083e8261050a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606760205260408120546001600160a01b03166108f05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610383565b60006108fb8361050a565b9050806001600160a01b0316846001600160a01b031614806109365750836001600160a01b031661092b8461030e565b6001600160a01b0316145b8061096657506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166109818261050a565b6001600160a01b0316146109e95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610383565b6001600160a01b038216610a4b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610383565b610a56600082610809565b6001600160a01b0383166000908152606860205260408120805460019290610a7f908490611109565b90915550506001600160a01b0382166000908152606860205260408120805460019290610aad9084906110dd565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610b1984848461096e565b610b2584848484610c5c565b61071b5760405162461bcd60e51b81526004016103839061103a565b606081610b6657506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610b905780610b7a81611187565b9150610b899050600a836110f5565b9150610b6a565b60008167ffffffffffffffff811115610bb957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610be3576020820181803683370190505b5090505b841561096657610bf8600183611109565b9150610c05600a866111a2565b610c109060306110dd565b60f81b818381518110610c3357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610c55600a866110f5565b9450610be7565b60006001600160a01b0384163b15610d5e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ca0903390899088908890600401610fea565b602060405180830381600087803b158015610cba57600080fd5b505af1925050508015610cea575060408051601f3d908101601f19168201909252610ce791810190610f5b565b60015b610d44573d808015610d18576040519150601f19603f3d011682016040523d82523d6000602084013e610d1d565b606091505b508051610d3c5760405162461bcd60e51b81526004016103839061103a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610966565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610d91578081fd5b61080282610d69565b60008060408385031215610dac578081fd5b610db583610d69565b9150610dc360208401610d69565b90509250929050565b600080600060608486031215610de0578081fd5b610de984610d69565b9250610df760208501610d69565b9150604084013590509250925092565b60008060008060808587031215610e1c578081fd5b610e2585610d69565b9350610e3360208601610d69565b925060408501359150606085013567ffffffffffffffff80821115610e56578283fd5b818701915087601f830112610e69578283fd5b813581811115610e7b57610e7b6111e2565b604051601f8201601f19908116603f01168101908382118183101715610ea357610ea36111e2565b816040528281528a6020848701011115610ebb578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610eee578182fd5b610ef783610d69565b915060208301358015158114610f0b578182fd5b809150509250929050565b60008060408385031215610f28578182fd5b610f3183610d69565b946020939093013593505050565b600060208284031215610f50578081fd5b8135610802816111f8565b600060208284031215610f6c578081fd5b8151610802816111f8565b600060208284031215610f88578081fd5b5035919050565b60008151808452610fa7816020860160208601611120565b601f01601f19169290920160200192915050565b60008351610fcd818460208801611120565b835190830190610fe1818360208801611120565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061101d90830184610f8f565b9695505050505050565b6000602082526108026020830184610f8f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156110f0576110f06111b6565b500190565b600082611104576111046111cc565b500490565b60008282101561111b5761111b6111b6565b500390565b60005b8381101561113b578181015183820152602001611123565b8381111561071b5750506000910152565b60028104600182168061116057607f821691505b6020821081141561118157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561119b5761119b6111b6565b5060010190565b6000826111b1576111b16111cc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461120e57600080fd5b5056fea26469706673582212206fcb253d818546054737de2e33568fa2b258b78d0b7f3c16a61df3022ecf285d64736f6c63430008020033";

@@ -349,0 +349,0 @@ export class ERC721Upgradeable__factory extends ContractFactory {

@@ -14,3 +14,3 @@ import { Signer, ContractFactory, Overrides } from "ethers";

connect(signer: Signer): AmethystRoleManagementImpl__factory;
static readonly bytecode = "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50600060019054906101000a900460ff16806200006f575060008054906101000a900460ff16155b620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a89062000189565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000102576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b620001367f21a84654d2a87e5c684188a165b80161325273bcc7a8f6b38504b24a6d6dae6a60001b6200015f60201b60201c565b8015620001585760008060016101000a81548160ff0219169083151502179055505b506200020b565b50565b600062000171602e83620001ab565b91506200017e82620001bc565b604082019050919050565b60006020820190508181036000830152620001a48162000162565b9050919050565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60805160601c6157176200023f6000396000818161098101528181610a1001528181610d1c0152610dab01526157176000f3fe6080604052600436106101665760003560e01c80635c975abb116100d1578063a217fddf1161008a578063e18c726011610064578063e18c7260146104df578063e198bc3a1461050a578063f2fde38b14610533578063f72c0d8b1461055c57610166565b8063a217fddf14610462578063d547741f1461048d578063e17ad931146104b657610166565b80635c975abb146103785780636c19e783146103a3578063715018a6146103cc5780638456cb59146103e35780638da5cb5b146103fa57806391d148541461042557610166565b806336568abe1161012357806336568abe1461028d5780633659cfe6146102b65780633f4ba83a146102df57806348e66156146102f65780634f1ef2861461031f57806355cad18a1461033b57610166565b806301ffc9a71461016b5780630676695b146101a857806306bfcec6146101d1578063248a9ca3146101fc57806325bee3e9146102395780632f2ff15d14610264575b600080fd5b34801561017757600080fd5b50610192600480360381019061018d9190614569565b610587565b60405161019f9190614acf565b60405180910390f35b3480156101b457600080fd5b506101cf60048036038101906101ca9190614592565b610601565b005b3480156101dd57600080fd5b506101e66107eb565b6040516101f39190614b4a565b60405180910390f35b34801561020857600080fd5b50610223600480360381019061021e9190614504565b6108ac565b6040516102309190614aea565b60405180910390f35b34801561024557600080fd5b5061024e6108cc565b60405161025b9190614dea565b60405180910390f35b34801561027057600080fd5b5061028b6004803603810190610286919061452d565b6108d3565b005b34801561029957600080fd5b506102b460048036038101906102af919061452d565b6108fc565b005b3480156102c257600080fd5b506102dd60048036038101906102d89190614350565b61097f565b005b3480156102eb57600080fd5b506102f4610b2e565b005b34801561030257600080fd5b5061031d60048036038101906103189190614504565b610d17565b005b61033960048036038101906103349190614379565b610d1a565b005b34801561034757600080fd5b50610362600480360381019061035d91906143cd565b610e57565b60405161036f9190614acf565b60405180910390f35b34801561038457600080fd5b5061038d610f6a565b60405161039a9190614acf565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c59190614350565b610f81565b005b3480156103d857600080fd5b506103e16111a5565b005b3480156103ef57600080fd5b506103f861122d565b005b34801561040657600080fd5b5061040f611416565b60405161041c9190614ab4565b60405180910390f35b34801561043157600080fd5b5061044c6004803603810190610447919061452d565b611441565b6040516104599190614acf565b60405180910390f35b34801561046e57600080fd5b506104776114ac565b6040516104849190614aea565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af919061452d565b6114b3565b005b3480156104c257600080fd5b506104dd60048036038101906104d891906144c8565b6114dc565b005b3480156104eb57600080fd5b506104f4611a07565b6040516105019190614ab4565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c9190614421565b611a2e565b005b34801561053f57600080fd5b5061055a60048036038101906105559190614350565b6121ce565b005b34801561056857600080fd5b506105716122c6565b60405161057e9190614aea565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105fa57506105f9826122cd565b5b9050919050565b61062d7f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b6106597f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b6106857fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b6106b17f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b6106c56000801b6106c0612337565b611441565b610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb90614c0a565b60405180910390fd5b6107307f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b61075c7fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b6107887f3d6a0db88000e5f9ab36187c98b7e6c357b7fa0931361ffe63ffae1499a42f0560001b610d17565b6107b47fad27041f621cff54cb76219dae47e12542def610e1a72d9cf4db63c389b4311560001b610d17565b6107e07fc90129f6a41912e9a7556b6826cd04cfefa1e69c9dd7c9f3f1a9db2c15d683c160001b610d17565b806101918190555050565b60606108197f411dd99aa0a28f2148e60ce48e0605b04300115cc5b9309ac86c22db78a2e80b60001b610d17565b6108457fba08e59bc630da98329078be5536116010b0146c8daecba7d2194e979ea3e20560001b610d17565b6108717f7dbb88ae717513b77f3e4e738066d8ababec3f33161a6286f381e306287d8c9060001b610d17565b6040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b600060656000838152602001908152602001600020600101549050919050565b6101915481565b6108dc826108ac565b6108ed816108e8612337565b61233f565b6108f783836123dc565b505050565b610904612337565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096890614dca565b60405180910390fd5b61097b82826124bd565b5050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590614c6a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610a4d61259f565b73ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90614caa565b60405180910390fd5b610aac816125f6565b610b2b81600067ffffffffffffffff811115610af1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610b235781602001600182028036833780820191505090505b506000612728565b50565b610b5a7f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b610b867f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b610bb27fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b610bde7f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b610bf26000801b610bed612337565b611441565b610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890614c0a565b60405180910390fd5b610c5d7f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b610c897fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b610cb57fbe782a13b4bebb144a7181914277338b7b5b6be7a5d769d4abf98991327c669760001b610d17565b610ce17f9f4cf952e4b7ec7fb527accef1a2a6e26d2a9236bd0befa02a3b6345be61dce660001b610d17565b610d0d7f82d2d2793721d603f8383193fd2bbedeb78cb6cc42460f961e49ccd2ba9cf22060001b610d17565b610d156128f9565b565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da090614c6a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610de861259f565b73ffffffffffffffffffffffffffffffffffffffff1614610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590614caa565b60405180910390fd5b610e47826125f6565b610e5382826001612728565b5050565b6000610e857ff84759c77e8fb3424e1d6c5602e274d5f90261c7df83b7be4421f3911581ca2760001b610d17565b610eb17f7dfcf7d59f0ac8640e4675d795b36c7a9cb1d56ccf3c59357350a0d0a9c98a2060001b610d17565b610edd7f9274d30d0ecefafcefe88183422ac2ee8dd00c5f4dda8f64ce4e1b3b087f648360001b610d17565b61019360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083604051602001610f309190614a3d565b60405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900460ff16905092915050565b6000609760009054906101000a900460ff16905090565b610fad7f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b610fd97f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b6110057fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b6110317f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b6110456000801b611040612337565b611441565b611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90614c0a565b60405180910390fd5b6110b07f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b6110dc7fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b6111087f1149d442f83f33c71278f66227a7cd24ee748736895e3ac4efbcab26f4a283a960001b610d17565b6111347fe2ff68f6499e3a54c1a53213f7e47173097a186fc462cfe4a91affceefef453d60001b610d17565b6111607f1b6039e1bd2d85f6581bad17512fdef3b0d236c8b500329c0e688d8fc349647d60001b610d17565b8061019560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111ad612337565b73ffffffffffffffffffffffffffffffffffffffff166111cb611416565b73ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890614d2a565b60405180910390fd5b61122b600061299b565b565b6112597f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b6112857f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b6112b17fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b6112dd7f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b6112f16000801b6112ec612337565b611441565b611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790614c0a565b60405180910390fd5b61135c7f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b6113887fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b6113b47fa64bc959162209394861166da279d9edb8805490c12512e94163c875c98dcf7e60001b610d17565b6113e07f5fe67d264535dbb8d55da12e6f19d79d0bbc80252d1d84057e8a4a908f4a3b0860001b610d17565b61140c7ff5d38b513c9599a5f913a6c3e265297b8c0925d97331e48a54c69a09cf5ace9160001b610d17565b611414612a63565b565b600061015f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6114bc826108ac565b6114cd816114c8612337565b61233f565b6114d783836124bd565b505050565b600060019054906101000a900460ff1680611502575060008054906101000a900460ff16155b611541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153890614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015611591576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6115bd7f6b31e24753748e1ca3998c11c6270e57e72648f07f93e4224f0605c76cff180660001b610d17565b6115e97ffcc4229b2d0de34691be69c6a9cfc6488d3607a33d4b3336ba13daf7fe74844760001b610d17565b6116157f3e17eb34e13d67f1cbfaff75dba902a88832585b8f2ca51c9d8d6a3292c508f660001b610d17565b61161d612b06565b6116497f356c72d5d2a550829f4f5590aaf597d29d83a6c5909e7f01d8f6203076383f2e60001b610d17565b6116757fcfa10483384ad19ef27b2231a7e8e7c62cd577e3a565c98ae5736e112aa212e160001b610d17565b61167d612bef565b6116a97fe797cb00fde069b5205bba60fb0b1676304be9c6a1727bce2b229a7129b3eb9760001b610d17565b6116d57faaec2704c2798a75d0425b6bcfbf30c36ed8b48ac800e744497a4fba1a24406160001b610d17565b6116dd612cd8565b6117097fc0cf0f698ba62b4f6fb31bfdccef78b7c6c5c15c747e9e58266361be05547ccb60001b610d17565b6117357f680004ec897c216aeb0a5d59f2726247d228b7dfcebc87130641d8cab1ffca9660001b610d17565b61173d612dc9565b6117697ff23fb4677ca2d4f77e0700a55bc18ccb2a63a4d732165657c81504d020316a7660001b610d17565b6117957f81c27b8e3ca7f0b87c26eea6bc51c137a1ce88befbf8d6a5d888a9e36013ae7b60001b610d17565b61179d612eaa565b6117c97fb7f7f0d0ba752f4c228c4de883169f4e35db22e4a1aadf3ce30a6db4ab3b9df960001b610d17565b6117f57f671a6906f181d2ca7679dd02437419bc7ef252eb08bf670814412ffd2c571a8b60001b610d17565b6118026000801b33612f93565b61182e7fd596695bef9f67bb6fd28bc92e5b725de750dde364a6f95ff4c1bbbdac426e2560001b610d17565b61185a7f0d2200ccad838d0f54845d06f3a7276c2f6d42c5c46e0c9a67789eaffdf452e460001b610d17565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610192819055506118ae7f522020718d0c022177a673a04b763b0c647eb89e55ef2c330ac3b80f2bd86d9460001b610d17565b6118da7f6a72b42b82a467ec2b9b3b5b916915f30225a6c7c0ca9ed19837bb93fe75d44960001b610d17565b6118e76101925433612f93565b6119137f1c2de96b0473b26e211b572c6ce016715baea6ffd695e81c1cd611f6b51aeffb60001b610d17565b61193f7f8b998a1cf6f70c7e7b7ddfc8bd6ee64ba59c783e05d10dcae5c783235e4f4b0b60001b610d17565b8261019560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119ad7f09657e3aaf27a0a0703661bb3e1af4c91af87e274f9e30690740ab7dd386544860001b610d17565b6119d97f0afa16104504d08c560349a552b67dd9ea1b7d8f650da422dc28c092df588b4a60001b610d17565b81610191819055508015611a025760008060016101000a81548160ff0219169083151502179055505b505050565b61019560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a36610f6a565b15611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90614cca565b60405180910390fd5b611aa27f6581fbeb2823ae175cd2d84f10a0d649241cb22e5ecf4f1e19f20d7d12cf00c060001b610d17565b611ace7f5e44e8400c1b7504e8f87f895448e60284f1375566f7189747b896798b4067e560001b610d17565b611afa7f5190902b34e6329d13a7500dbf677dad0a111b3f331b0c1d98995016132f890f60001b610d17565b611b0e6000801b611b09612337565b611441565b61200957611b3e7f6fef7dc66bd01554c6e66899f34de50e14308b10c9b5ca2a03cecd512b2ad21b60001b610d17565b611b6a7f1a3a908b158eac631fd8f23d3d09f74adffbc57641b427c724e1949f47963daa60001b610d17565b611b967fd3e1de1452b4d2247b007574f44cadeba7bd9ec5d381c6b692a738bb8a9e5b7360001b610d17565b611bc27f1fcc1fbc6dcbcd1599e048572de54b35e1d390ad9bc837b422a62c4c508bbd1f60001b610d17565b61019154611bd98342612fa190919063ffffffff16565b10611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1090614d4a565b60405180910390fd5b611c457f7215bc3c157ac69e24d528e475140631545b7d29b2fa8f747406b6c5c81120df60001b610d17565b611c717f34365a8dc4700309874db8c22b30e16f81398f93fae0d2e58c1e1e699fed687c60001b610d17565b611c9d7fb4cd505605a9ea62c31202ca40371bfe3a824d81ea02603d7f0ebd05c6e2dbb360001b610d17565b611cc97f26dd0320353562d3402ef0f4f5e568b32ea4cab841eccd3d54a493b25c2de2da60001b610d17565b610194600082604051602001611cdf9190614a26565b60405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900460ff1615611d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4890614bea565b60405180910390fd5b611d7d7f63bbb50f4f854049a30582c471ac465564ded0b3f2949eb7e615ede6fb66ee3260001b610d17565b611da97fd88f94639819e0d99c8d9a5b4f426dbc1958fa31570c0b80181ba1234fc4d89560001b610d17565b611dd57f4999ce9eb8f2a8f201e50db4c6adcb042704adb4db27a231dea751c06e83e19860001b610d17565b6000611e0c86868686604051602001611df194939291906149dc565b60405160208183030381529060405280519060200120612fb7565b9050611e3a7f2e67ba92bedb114a18d15f1fd738e6d85e91e13acf8697ff7b60995cab9fa38b60001b610d17565b611e667f3d53adb1f85c16e3354a5e5596c71a49b0ac0835492501f550ab1c1636fe70cb60001b610d17565b611e927fd92d9f9b562b6c45471027aa8f356cfba1f93e07884bd3524e4baac0b32430cc60001b610d17565b61019560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ed6828461306b565b73ffffffffffffffffffffffffffffffffffffffff1614611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614d6a565b60405180910390fd5b611f587fa0548306fcc133f1524987152517e315e3831db2e7c79b914b00169a6356e44160001b610d17565b611f847f492401921156e3c27c2993a1239f0020742489890e999fcb3759f560e9e9131d60001b610d17565b611fb07f9609ed54fcbea23113559871406412408a6ed93908fe810dcc041f26fc61f37360001b610d17565b6001610194600084604051602001611fc89190614a26565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff02191690831515021790555050612036565b6120357fa12c73535a5bdbbfeaf45bc344b9b6a5ea7e07273f73c76c74b0102e6f90181360001b610d17565b5b6120627f41bd55f55ca946222e51975eb3cb1f17627adca4beb283e1a5e7a00e418d11a660001b610d17565b61208e7f5f19512c7c1e6f976f04d10d72096960718852366e3386f5328a500e3da922ed60001b610d17565b8261019360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040516020016120e29190614a3d565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff0219169083151502179055506121497f5b8b689f8eebfed8b5a253c2e9077937a3897d079960cb0cd19be3bd0e9ad51360001b610d17565b6121757fe8de7d9491883a5166b98a5eed3e6c38f788adb100d5be340497a94e09985d8660001b610d17565b8473ffffffffffffffffffffffffffffffffffffffff167fe0db73124855f618948ae9654bf9fb29dbc4e9da043a0e3750e3635066fbe8148585426040516121bf93929190614b6c565b60405180910390a25050505050565b6121d6612337565b73ffffffffffffffffffffffffffffffffffffffff166121f4611416565b73ffffffffffffffffffffffffffffffffffffffff161461224a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224190614d2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b190614c4a565b60405180910390fd5b6122c38161299b565b50565b6101925481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6123498282611441565b6123d85761236e8173ffffffffffffffffffffffffffffffffffffffff1660146132c6565b61237c8360001c60206132c6565b60405160200161238d929190614a7a565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cf9190614b4a565b60405180910390fd5b5050565b6123e68282611441565b6124b95760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061245e612337565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6124c78282611441565b1561259b5760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612540612337565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006125cd7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6135c0565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6126227f62693a85ec33f35b1c04927699f69025c9086238cbaafe8046b8c6ca210db80a60001b610d17565b61264e7f225dd86f5923c649dabc77899f228cd34c3b63e2f13780019d831d2e00b8656160001b610d17565b61267a7f0d6e931a0509216195fde9ce36c569c7c5867b7b9d6d2a8f9e02f7352d3ec81c60001b610d17565b6126a67f36f593ae3a7dc804ef84f6d2a48371e520de4fdda06901e9db8613a35aa7d1df60001b610d17565b6126ba610192546126b5612337565b611441565b6126f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f090614c8a565b60405180910390fd5b6127257f30ad91c7e9eff0dffe6961be2e74333f89d855fe044fc38b7f35ac561d692eac60001b610d17565b50565b600061273261259f565b905061273d846135ca565b60008351118061274a5750815b1561275b576127598484613683565b505b60006127897f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b613767565b90508060000160009054906101000a900460ff166128f25760018160000160006101000a81548160ff02191690831515021790555061285585836040516024016127d39190614ab4565b6040516020818303038152906040527f3659cfe6000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613683565b5060008160000160006101000a81548160ff02191690831515021790555061287b61259f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146128e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128df90614c2a565b60405180910390fd5b6128f185613771565b5b5050505050565b612901610f6a565b612940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293790614bca565b60405180910390fd5b6000609760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612984612337565b6040516129919190614ab4565b60405180910390a1565b600061015f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508161015f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612a6b610f6a565b15612aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa290614cca565b60405180910390fd5b6001609760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612aef612337565b604051612afc9190614ab4565b60405180910390a1565b600060019054906101000a900460ff1680612b2c575060008054906101000a900460ff16155b612b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6290614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612bbb576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612bc36137c0565b612bcb613899565b8015612bec5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612c15575060008054906101000a900460ff16155b612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612ca4576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612cac6137c0565b612cb4613982565b8015612cd55760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612cfe575060008054906101000a900460ff16155b612d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3490614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612d8d576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612d956137c0565b612d9d613a76565b612da5613b4f565b8015612dc65760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612def575060008054906101000a900460ff16155b612e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2590614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612e7e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612e86613c28565b8015612ea75760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612ed0575060008054906101000a900460ff16155b612f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0690614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612f5f576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612f67613d09565b612f6f613de2565b8015612f905760008060016101000a81548160ff0219169083151502179055505b50565b612f9d82826123dc565b5050565b60008183612faf9190614f79565b905092915050565b6000612fe57fafbcacd8b6e734342baf1ecfa35c015f231573b733a748020fa1dfc6107f11f460001b610d17565b6130117fbc51574591dcdaefe213b29a4551ef05bd229055f3a9b7b830acc399b79a105d60001b610d17565b61303d7ff7e763453be5deb195da9cbdb021c3a788253ca9aaed28d80d59be285730d42f60001b610d17565b8160405160200161304e9190614a54565b604051602081830303815290604052805190602001209050919050565b60006130997fc9812d6f8e56f00c18c1ed9bc06783ed75f57b23a9c8c8d3e654a74b7193d87f60001b610d17565b6130c57ff9b7ae803854786cd4e04fe75c6944e44e287396efd3ec4f1a6832536555608460001b610d17565b6130f17f8b567df69542d196dcdd9c8a09354df89024cda137811ef6492a932715e669a360001b610d17565b600061311f7f35b85ebc800f4cb3817c03de2b05b87e36ff6efbe9ed5ef9ff498c4d1febc03e60001b610d17565b61314b7fe4019b121bda25f48624f21519d97c8bafe59c2e9ba532008ecd738207a9d6bc60001b610d17565b60006131797f096509bcec607264fabffee199361cc5585ed158d8c6110621e4e8eddb140b0360001b610d17565b6131a57f48a89806bb44c848e438a3387a4f244cde8ec3105e21838932db991059cb6e9c60001b610d17565b60006131d37f932225a7f00d0b95645bcc88b3e347f29ec2f9edc1e60f90c99e1cae4608f45960001b610d17565b6131ff7f4830cf6959297cdcb2a79afba2e278faf7e62bba52f9c52bbf7b5e47049cd9c760001b610d17565b61320885613ebb565b8093508194508295505050506132407f862c08a5de08e29873d5685fb92ec9db7dde95f542f32d28a69905011eabb3df60001b610d17565b61326c7f73cb2e1c2d85159ee1e430164b7a3aa51597309feea05bda6d18c78f8971536f60001b610d17565b6001868484846040516000815260200160405260405161328f9493929190614b05565b6020604051602081039080840390855afa1580156132b1573d6000803e3d6000fd5b50505060206040510351935050505092915050565b6060600060028360026132d99190614f1f565b6132e39190614ec9565b67ffffffffffffffff811115613322577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156133545781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106133b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061343c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261347c9190614f1f565b6134869190614ec9565b90505b6001811115613572577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106134ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b82828151811061352b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061356b9061507a565b9050613489565b50600084146135b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135ad90614baa565b60405180910390fd5b8091505092915050565b6000819050919050565b6135d38161419d565b613612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360990614d0a565b60405180910390fd5b8061363f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6135c0565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606061368e8361419d565b6136cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136c490614d8a565b60405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516136f59190614a26565b600060405180830381855af49150503d8060008114613730576040519150601f19603f3d011682016040523d82523d6000602084013e613735565b606091505b509150915061375d82826040518060600160405280602781526020016156bb602791396141b0565b9250505092915050565b6000819050919050565b61377a816135ca565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b600060019054906101000a900460ff16806137e6575060008054906101000a900460ff16155b613825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161381c90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613875576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156138965760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806138bf575060008054906101000a900460ff16155b6138fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138f590614cea565b60405180910390fd5b60008060019054906101000a900460ff16159050801561394e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61395e613959612337565b61299b565b801561397f5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806139a8575060008054906101000a900460ff16155b6139e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139de90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613a37576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6000609760006101000a81548160ff0219169083151502179055508015613a735760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613a9c575060008054906101000a900460ff16155b613adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ad290614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613b2b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613b4c5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613b75575060008054906101000a900460ff16155b613bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bab90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c04576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613c255760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613c4e575060008054906101000a900460ff16155b613c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c8490614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613cdd576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b600160c9819055508015613d065760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613d2f575060008054906101000a900460ff16155b613d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6590614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613dbe576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613ddf5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613e08575060008054906101000a900460ff16155b613e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e3e90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613e97576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613eb85760008060016101000a81548160ff0219169083151502179055505b50565b6000806000613eec7fdd325232e34a7e54d51c4d54525a16ac4bb014e8e3d286df4dec7e4d2c1aeccb60001b610d17565b613f187f482131af070c72286500554badbb6abc9a4a6ef41af69fd4eda1c1dfbe83d0f160001b610d17565b613f447fa627160b756031e5dd4ed9209705f218aa581f1eff5e4fd315ca01ad421ad95560001b610d17565b613f707f4adc00e5c1dba4d60da093adbc6c433cb8a4d2d2f960efc669ccce68fb48329b60001b610d17565b6041845114613fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fab90614daa565b60405180910390fd5b613fe07fd718c000a6e305fad09bdbc237ee1ba2a73d2ba660eba6c16ab04b0d6c3484b960001b610d17565b61400c7f2fdf67473ff0db87c0444b1d4ffcb71fd101533ef62af804d709c83827c8cf9760001b610d17565b6140387f333f9e85d801d3fb442cae2847d0181a37da0eeb99a9f0c3a6aeac3a786c1b7260001b610d17565b60006140667f328ef23080846bb47b4dd1d85f1c7413812d42ada03776f2ef5d91bded02cf1c60001b610d17565b6140927f16edce112748bd74ab0ad72512bb9b14ef12fb5f2510ee61257567145032fe9c60001b610d17565b60006140c07f3119ee43da98a54c9443457365897b818467ae96a797c077e61a34bc7d573c8f60001b610d17565b6140ec7fc1d1f960d48b864eb0e4cb1750a7c9f00f875c3e7b2cb15cbac1bb8419bc02e760001b610d17565b600061411a7f057c79aea4c886f669f74c073e68f1346445d771a3894cd107ac8f2ac702493860001b610d17565b6020870151925060408701519150606087015160001a905061415e7f4a515e87ea7435a41851acdadf7b9d5bb72c9677883cd0a51db888c32f25a7a960001b610d17565b61418a7fe3b532515df30ce7ecd35a741d29957268d7b6079e32fac045747978ea975c2f60001b610d17565b8083839550955095505050509193909250565b600080823b905060008111915050919050565b606083156141c057829050614210565b6000835111156141d35782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016142079190614b4a565b60405180910390fd5b9392505050565b600061422a61422584614e2a565b614e05565b90508281526020810184848401111561424257600080fd5b61424d848285615038565b509392505050565b600061426861426384614e5b565b614e05565b90508281526020810184848401111561428057600080fd5b61428b848285615038565b509392505050565b6000813590506142a281615647565b92915050565b6000813590506142b78161565e565b92915050565b6000813590506142cc81615675565b92915050565b6000813590506142e18161568c565b92915050565b600082601f8301126142f857600080fd5b8135614308848260208601614217565b91505092915050565b600082601f83011261432257600080fd5b8135614332848260208601614255565b91505092915050565b60008135905061434a816156a3565b92915050565b60006020828403121561436257600080fd5b600061437084828501614293565b91505092915050565b6000806040838503121561438c57600080fd5b600061439a85828601614293565b925050602083013567ffffffffffffffff8111156143b757600080fd5b6143c3858286016142e7565b9150509250929050565b600080604083850312156143e057600080fd5b60006143ee85828601614293565b925050602083013567ffffffffffffffff81111561440b57600080fd5b61441785828601614311565b9150509250929050565b600080600080600060a0868803121561443957600080fd5b600061444788828901614293565b955050602086013567ffffffffffffffff81111561446457600080fd5b61447088828901614311565b9450506040614481888289016142a8565b93505060606144928882890161433b565b925050608086013567ffffffffffffffff8111156144af57600080fd5b6144bb888289016142e7565b9150509295509295909350565b600080604083850312156144db57600080fd5b60006144e985828601614293565b92505060206144fa8582860161433b565b9150509250929050565b60006020828403121561451657600080fd5b6000614524848285016142bd565b91505092915050565b6000806040838503121561454057600080fd5b600061454e858286016142bd565b925050602061455f85828601614293565b9150509250929050565b60006020828403121561457b57600080fd5b6000614589848285016142d2565b91505092915050565b6000602082840312156145a457600080fd5b60006145b28482850161433b565b91505092915050565b6145c481614fad565b82525050565b6145db6145d682614fad565b6150d5565b82525050565b6145ea81614fbf565b82525050565b6146016145fc82614fbf565b6150e7565b82525050565b61461081614fcb565b82525050565b61462761462282614fcb565b6150f9565b82525050565b600061463882614e8c565b6146428185614ea2565b9350614652818560208601615047565b80840191505092915050565b600061466982614e97565b6146738185614ead565b9350614683818560208601615047565b61468c8161518f565b840191505092915050565b60006146a282614e97565b6146ac8185614ebe565b93506146bc818560208601615047565b80840191505092915050565b60006146d5602083614ead565b91506146e0826151ba565b602082019050919050565b60006146f8601483614ead565b9150614703826151e3565b602082019050919050565b600061471b601283614ead565b91506147268261520c565b602082019050919050565b600061473e601c83614ebe565b915061474982615235565b601c82019050919050565b6000614761601883614ead565b915061476c8261525e565b602082019050919050565b6000614784602f83614ead565b915061478f82615287565b604082019050919050565b60006147a7602683614ead565b91506147b2826152d6565b604082019050919050565b60006147ca602c83614ead565b91506147d582615325565b604082019050919050565b60006147ed601b83614ead565b91506147f882615374565b602082019050919050565b6000614810602c83614ead565b915061481b8261539d565b604082019050919050565b6000614833601083614ead565b915061483e826153ec565b602082019050919050565b6000614856602e83614ead565b915061486182615415565b604082019050919050565b6000614879602d83614ead565b915061488482615464565b604082019050919050565b600061489c602083614ead565b91506148a7826154b3565b602082019050919050565b60006148bf601583614ead565b91506148ca826154dc565b602082019050919050565b60006148e2601a83614ead565b91506148ed82615505565b602082019050919050565b6000614905602683614ead565b91506149108261552e565b604082019050919050565b6000614928601783614ebe565b91506149338261557d565b601782019050919050565b600061494b601883614ead565b9150614956826155a6565b602082019050919050565b600061496e601183614ebe565b9150614979826155cf565b601182019050919050565b6000614991602f83614ead565b915061499c826155f8565b604082019050919050565b6149b081615021565b82525050565b6149c76149c282615021565b615115565b82525050565b6149d68161502b565b82525050565b60006149e882876145ca565b6014820191506149f88286614697565b9150614a0482856145f0565b600182019150614a1482846149b6565b60208201915081905095945050505050565b6000614a32828461462d565b915081905092915050565b6000614a498284614697565b915081905092915050565b6000614a5f82614731565b9150614a6b8284614616565b60208201915081905092915050565b6000614a858261491b565b9150614a918285614697565b9150614a9c82614961565b9150614aa88284614697565b91508190509392505050565b6000602082019050614ac960008301846145bb565b92915050565b6000602082019050614ae460008301846145e1565b92915050565b6000602082019050614aff6000830184614607565b92915050565b6000608082019050614b1a6000830187614607565b614b2760208301866149cd565b614b346040830185614607565b614b416060830184614607565b95945050505050565b60006020820190508181036000830152614b64818461465e565b905092915050565b60006060820190508181036000830152614b86818661465e565b9050614b9560208301856145e1565b614ba260408301846149a7565b949350505050565b60006020820190508181036000830152614bc3816146c8565b9050919050565b60006020820190508181036000830152614be3816146eb565b9050919050565b60006020820190508181036000830152614c038161470e565b9050919050565b60006020820190508181036000830152614c2381614754565b9050919050565b60006020820190508181036000830152614c4381614777565b9050919050565b60006020820190508181036000830152614c638161479a565b9050919050565b60006020820190508181036000830152614c83816147bd565b9050919050565b60006020820190508181036000830152614ca3816147e0565b9050919050565b60006020820190508181036000830152614cc381614803565b9050919050565b60006020820190508181036000830152614ce381614826565b9050919050565b60006020820190508181036000830152614d0381614849565b9050919050565b60006020820190508181036000830152614d238161486c565b9050919050565b60006020820190508181036000830152614d438161488f565b9050919050565b60006020820190508181036000830152614d63816148b2565b9050919050565b60006020820190508181036000830152614d83816148d5565b9050919050565b60006020820190508181036000830152614da3816148f8565b9050919050565b60006020820190508181036000830152614dc38161493e565b9050919050565b60006020820190508181036000830152614de381614984565b9050919050565b6000602082019050614dff60008301846149a7565b92915050565b6000614e0f614e20565b9050614e1b82826150a4565b919050565b6000604051905090565b600067ffffffffffffffff821115614e4557614e44615160565b5b614e4e8261518f565b9050602081019050919050565b600067ffffffffffffffff821115614e7657614e75615160565b5b614e7f8261518f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614ed482615021565b9150614edf83615021565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614f1457614f13615131565b5b828201905092915050565b6000614f2a82615021565b9150614f3583615021565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614f6e57614f6d615131565b5b828202905092915050565b6000614f8482615021565b9150614f8f83615021565b925082821015614fa257614fa1615131565b5b828203905092915050565b6000614fb882615001565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561506557808201518184015260208101905061504a565b83811115615074576000848401525b50505050565b600061508582615021565b9150600082141561509957615098615131565b5b600182039050919050565b6150ad8261518f565b810181811067ffffffffffffffff821117156150cc576150cb615160565b5b80604052505050565b60006150e082615103565b9050919050565b60006150f28261511f565b9050919050565b6000819050919050565b600061510e826151ad565b9050919050565b6000819050919050565b600061512a826151a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160601b9050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f7369676e61747572652068617320757365640000000000000000000000000000600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f726571756972652061646d696e207065726d697373696f6e0000000000000000600082015250565b7f45524331393637557067726164653a207570677261646520627265616b73206660008201527f7572746865722075706772616465730000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f72657175697265207570677261646572207065726d697373696f6e0000000000600082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f7369676e61747572652068617320657870697265640000000000000000000000600082015250565b7f756e61626c6520746f20766572696679207369676e6174757265000000000000600082015250565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f696e76616c6964207369676e6174757265206c656e6774680000000000000000600082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b61565081614fad565b811461565b57600080fd5b50565b61566781614fbf565b811461567257600080fd5b50565b61567e81614fcb565b811461568957600080fd5b50565b61569581614fd5565b81146156a057600080fd5b50565b6156ac81615021565b81146156b757600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205d6a990ade1777b74fb8d27e99f22740145f61c5cb8d233d6669addc25dac94864736f6c63430008020033";
static readonly bytecode = "0x60a06040523060601b60805234801561001757600080fd5b50600054610100900460ff1680610031575060005460ff16155b6100985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff161580156100c3576000805460ff1961ff0019909116610100171660011790555b80156100d5576000805461ff00191690555b5060805160601c611e026101096000396000818161050d0152818161054d0152818161060701526106470152611e026000f3fe60806040526004361061012a5760003560e01c80635c975abb116100ab578063d547741f1161006f578063d547741f14610319578063dd60d96514610339578063e17ad93114610359578063e18c726014610379578063f65903b9146103b2578063f72c0d8b146103d25761012a565b80635c975abb146102975780636c19e783146102af5780638456cb59146102cf57806391d14854146102e4578063a217fddf146103045761012a565b80632f2ff15d116100f25780632f2ff15d1461020f57806336568abe1461022f5780633659cfe61461024f5780633f4ba83a1461026f5780634f1ef286146102845761012a565b806301ffc9a71461012f5780630676695b1461016457806306bfcec614610186578063248a9ca3146101ba57806325bee3e9146101f8575b600080fd5b34801561013b57600080fd5b5061014f61014a366004611a5c565b6103e9565b60405190151581526020015b60405180910390f35b34801561017057600080fd5b5061018461017f366004611a19565b610422565b005b34801561019257600080fd5b5060408051808201825260058152640312e302e360dc1b6020820152905161015b9190611b8f565b3480156101c657600080fd5b506101ea6101d5366004611a19565b60009081526065602052604090206001015490565b60405190815260200161015b565b34801561020457600080fd5b506101ea61015f5481565b34801561021b57600080fd5b5061018461022a366004611a31565b610458565b34801561023b57600080fd5b5061018461024a366004611a31565b610484565b34801561025b57600080fd5b5061018461026a3660046118e4565b610502565b34801561027b57600080fd5b506101846105cb565b6101846102923660046118fe565b6105fc565b3480156102a357600080fd5b5060975460ff1661014f565b3480156102bb57600080fd5b506101846102ca3660046118e4565b6106b2565b3480156102db57600080fd5b506101846106fc565b3480156102f057600080fd5b5061014f6102ff366004611a31565b61072b565b34801561031057600080fd5b506101ea600081565b34801561032557600080fd5b50610184610334366004611a31565b610756565b34801561034557600080fd5b5061014f61035436600461194a565b61077c565b34801561036557600080fd5b506101846103743660046119f0565b6107da565b34801561038557600080fd5b506101635461039a906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156103be57600080fd5b506101846103cd36600461195c565b6108ce565b3480156103de57600080fd5b506101ea6101605481565b60006001600160e01b03198216637965db0b60e01b148061041a57506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b61042d6000336102ff565b6104525760405162461bcd60e51b815260040161044990611bc7565b60405180910390fd5b61015f55565b60008281526065602052604090206001015461047581335b610be6565b61047f8383610c4a565b505050565b6001600160a01b03811633146104f45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610449565b6104fe8282610cd0565b5050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561054b5760405162461bcd60e51b815260040161044990611bfe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661057d610d37565b6001600160a01b0316146105a35760405162461bcd60e51b815260040161044990611c4a565b6105ac81610d65565b604080516000808252602082019092526105c891839190610dbf565b50565b6105d66000336102ff565b6105f25760405162461bcd60e51b815260040161044990611bc7565b6105fa610f0a565b565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156106455760405162461bcd60e51b815260040161044990611bfe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610677610d37565b6001600160a01b03161461069d5760405162461bcd60e51b815260040161044990611c4a565b6106a682610d65565b6104fe82826001610dbf565b6106bd6000336102ff565b6106d95760405162461bcd60e51b815260040161044990611bc7565b61016380546001600160a01b0319166001600160a01b0392909216919091179055565b6107076000336102ff565b6107235760405162461bcd60e51b815260040161044990611bc7565b6105fa610f9d565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000828152606560205260409020600101546107728133610470565b61047f8383610cd0565b6001600160a01b0382166000908152610161602090815260408083209051909183916107aa91869101611afe565b60408051808303601f190181529181528151602092830120835290820192909252016000205460ff169392505050565b600054610100900460ff16806107f3575060005460ff16155b61080f5760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff1615801561083a576000805460ff1961ff0019909116610100171660011790555b610842611018565b61084a61109c565b610852611114565b61085a61117c565b6108656000336111e3565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361016081905561089690336111e3565b61016380546001600160a01b0319166001600160a01b03851617905561015f829055801561047f576000805461ff0019169055505050565b60975460ff16156109145760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610449565b61091f6000336102ff565b610b315761015f5461093142846111ed565b106109765760405162461bcd60e51b81526020600482015260156024820152741cda59db985d1d5c99481a185cc8195e1c1a5c9959605a1b6044820152606401610449565b61016260008260405160200161098c9190611afe565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff16156109f75760405162461bcd60e51b81526020600482015260126024820152711cda59db985d1d5c99481a185cc81d5cd95960721b6044820152606401610449565b6000610a7386868686604051602001610a139493929190611ab0565b60408051601f1981840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b610163549091506001600160a01b0316610a8d8284611200565b6001600160a01b031614610ae35760405162461bcd60e51b815260206004820152601a60248201527f756e61626c6520746f20766572696679207369676e61747572650000000000006044820152606401610449565b6001610162600084604051602001610afb9190611afe565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff1916911515919091179055505b6001600160a01b038516600090815261016160209081526040808320905186939192610b5f91899101611afe565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff021916908315150217905550846001600160a01b03167fa75afcecb86d16fdeb01f70715df8a51df373661d7f07e7c944fefcc07aa8704858542604051610bd793929190611ba2565b60405180910390a25050505050565b610bf0828261072b565b6104fe57610c08816001600160a01b0316601461127f565b610c1383602061127f565b604051602001610c24929190611b1a565b60408051601f198184030181529082905262461bcd60e51b825261044991600401611b8f565b610c54828261072b565b6104fe5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610c8c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610cda828261072b565b156104fe5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b610d73610160546102ff3390565b6105c85760405162461bcd60e51b815260206004820152601b60248201527f72657175697265207570677261646572207065726d697373696f6e00000000006044820152606401610449565b6000610dc9610d37565b9050610dd484611461565b600083511180610de15750815b15610df257610df08484611506565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16610f0357805460ff191660011781556040516001600160a01b0383166024820152610e7190869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052611506565b50805460ff19168155610e82610d37565b6001600160a01b0316826001600160a01b031614610efa5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610449565b610f03856115f1565b5050505050565b60975460ff16610f535760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610449565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60975460ff1615610fe35760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610449565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610f803390565b600054610100900460ff1680611031575060005460ff16155b61104d5760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611078576000805460ff1961ff0019909116610100171660011790555b611080611631565b6110886116a4565b80156105c8576000805461ff001916905550565b600054610100900460ff16806110b5575060005460ff16155b6110d15760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff161580156110fc576000805460ff1961ff0019909116610100171660011790555b611104611631565b61110c611631565b611088611631565b600054610100900460ff168061112d575060005460ff16155b6111495760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611174576000805460ff1961ff0019909116610100171660011790555b611088611722565b600054610100900460ff1680611195575060005460ff16155b6111b15760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611104576000805460ff1961ff00199091166101001716600117905561110c611631565b6104fe8282610c4a565b60006111f98284611d1b565b9392505050565b60008060008061120f8561179b565b6040805160008152602081018083528b905260ff8516918101919091526060810183905260808101829052929550909350915060019060a0016020604051602081039080840390855afa15801561126a573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b6060600061128e836002611cfc565b611299906002611ce4565b67ffffffffffffffff8111156112bf57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112e9576020820181803683370190505b509050600360fc1b8160008151811061131257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061134f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611373846002611cfc565b61137e906001611ce4565b90505b6001811115611412576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106113c057634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106113e457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361140b81611d62565b9050611381565b5083156111f95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610449565b803b6114c55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610449565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6115655760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610449565b600080846001600160a01b0316846040516115809190611afe565b600060405180830381855af49150503d80600081146115bb576040519150601f19603f3d011682016040523d82523d6000602084013e6115c0565b606091505b50915091506115e88282604051806060016040528060278152602001611da66027913961180d565b95945050505050565b6115fa81611461565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600054610100900460ff168061164a575060005460ff16155b6116665760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611088576000805460ff1961ff00199091166101001716600117905580156105c8576000805461ff001916905550565b600054610100900460ff16806116bd575060005460ff16155b6116d95760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611704576000805460ff1961ff0019909116610100171660011790555b6097805460ff1916905580156105c8576000805461ff001916905550565b600054610100900460ff168061173b575060005460ff16155b6117575760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611782576000805460ff1961ff0019909116610100171660011790555b600160c95580156105c8576000805461ff001916905550565b600080600083516041146117f15760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606401610449565b5050506020810151604082015160609092015160001a92909190565b6060831561181c5750816111f9565b82511561182c5782518084602001fd5b8160405162461bcd60e51b81526004016104499190611b8f565b80356001600160a01b038116811461041d57600080fd5b600082601f83011261186d578081fd5b813567ffffffffffffffff8082111561188857611888611d8f565b604051601f8301601f19908116603f011681019082821181831017156118b0576118b0611d8f565b816040528381528660208588010111156118c8578485fd5b8360208701602083013792830160200193909352509392505050565b6000602082840312156118f5578081fd5b6111f982611846565b60008060408385031215611910578081fd5b61191983611846565b9150602083013567ffffffffffffffff811115611934578182fd5b6119408582860161185d565b9150509250929050565b60008060408385031215611910578182fd5b600080600080600060a08688031215611973578081fd5b61197c86611846565b9450602086013567ffffffffffffffff80821115611998578283fd5b6119a489838a0161185d565b95506040880135915081151582146119ba578283fd5b90935060608701359250608087013590808211156119d6578283fd5b506119e38882890161185d565b9150509295509295909350565b60008060408385031215611a02578182fd5b611a0b83611846565b946020939093013593505050565b600060208284031215611a2a578081fd5b5035919050565b60008060408385031215611a43578182fd5b82359150611a5360208401611846565b90509250929050565b600060208284031215611a6d578081fd5b81356001600160e01b0319811681146111f9578182fd5b60008151808452611a9c816020860160208601611d32565b601f01601f19169290920160200192915050565b60006bffffffffffffffffffffffff198660601b1682528451611ada816014850160208901611d32565b93151560f81b91909301601481019190915260158101919091526035019392505050565b60008251611b10818460208701611d32565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351611b52816017850160208801611d32565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611b83816028840160208801611d32565b01602801949350505050565b6000602082526111f96020830184611a84565b600060608252611bb56060830186611a84565b93151560208301525060400152919050565b60208082526018908201527f726571756972652061646d696e207065726d697373696f6e0000000000000000604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008219821115611cf757611cf7611d79565b500190565b6000816000190483118215151615611d1657611d16611d79565b500290565b600082821015611d2d57611d2d611d79565b500390565b60005b83811015611d4d578181015183820152602001611d35565b83811115611d5c576000848401525b50505050565b600081611d7157611d71611d79565b506000190190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220709819f0139f9f48d08c53d533f742fd6c7cc9eb2c75932627e9d93154799b1464736f6c63430008020033";
static readonly abi: ({

@@ -17,0 +17,0 @@ inputs: never[];

@@ -47,21 +47,2 @@ "use strict";

{
indexed: true,
internalType: "address",
name: "previousOwner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "OwnershipTransferred",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,

@@ -169,3 +150,3 @@ internalType: "address",

internalType: "bool",
name: "haveRole",
name: "enable",
type: "bool",

@@ -180,3 +161,3 @@ },

],
name: "SetRole",
name: "SetAmethystRole",
type: "event",

@@ -258,15 +239,2 @@ },

internalType: "bytes32",
name: "c__0x843f28ea",
type: "bytes32",
},
],
name: "c_0x843f28ea",
outputs: [],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "bytes32",
name: "role",

@@ -308,13 +276,13 @@ type: "bytes32",

{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "account",
name: "person",
type: "address",
},
{
internalType: "string",
name: "role",
type: "string",
},
],
name: "hasRole",
name: "hasAmethystRole",
outputs: [

@@ -333,13 +301,13 @@ {

{
internalType: "bytes32",
name: "role",
type: "bytes32",
},
{
internalType: "address",
name: "person",
name: "account",
type: "address",
},
{
internalType: "string",
name: "role",
type: "string",
},
],
name: "haveRole",
name: "hasRole",
outputs: [

@@ -396,15 +364,2 @@ {

inputs: [],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "pause",

@@ -429,9 +384,2 @@ outputs: [],

{
inputs: [],
name: "renounceOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [

@@ -475,15 +423,2 @@ {

{
internalType: "uint256",
name: "expiration",
type: "uint256",
},
],
name: "setMaxExpiration",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",

@@ -500,3 +435,3 @@ name: "person",

internalType: "bool",
name: "isHaveRole",
name: "enable",
type: "bool",

@@ -515,3 +450,3 @@ },

],
name: "setRole",
name: "setAmethystRole",
outputs: [],

@@ -524,2 +459,15 @@ stateMutability: "nonpayable",

{
internalType: "uint256",
name: "newMaxExpiration",
type: "uint256",
},
],
name: "setMaxExpiration",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",

@@ -555,15 +503,2 @@ name: "newSigner",

{
inputs: [
{
internalType: "address",
name: "newOwner",
type: "address",
},
],
name: "transferOwnership",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],

@@ -607,3 +542,3 @@ name: "unpause",

];
const _bytecode = "0x60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004757600080fd5b50600060019054906101000a900460ff16806200006f575060008054906101000a900460ff16155b620000b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000a89062000189565b60405180910390fd5b60008060019054906101000a900460ff16159050801562000102576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b620001367f21a84654d2a87e5c684188a165b80161325273bcc7a8f6b38504b24a6d6dae6a60001b6200015f60201b60201c565b8015620001585760008060016101000a81548160ff0219169083151502179055505b506200020b565b50565b600062000171602e83620001ab565b91506200017e82620001bc565b604082019050919050565b60006020820190508181036000830152620001a48162000162565b9050919050565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60805160601c6157176200023f6000396000818161098101528181610a1001528181610d1c0152610dab01526157176000f3fe6080604052600436106101665760003560e01c80635c975abb116100d1578063a217fddf1161008a578063e18c726011610064578063e18c7260146104df578063e198bc3a1461050a578063f2fde38b14610533578063f72c0d8b1461055c57610166565b8063a217fddf14610462578063d547741f1461048d578063e17ad931146104b657610166565b80635c975abb146103785780636c19e783146103a3578063715018a6146103cc5780638456cb59146103e35780638da5cb5b146103fa57806391d148541461042557610166565b806336568abe1161012357806336568abe1461028d5780633659cfe6146102b65780633f4ba83a146102df57806348e66156146102f65780634f1ef2861461031f57806355cad18a1461033b57610166565b806301ffc9a71461016b5780630676695b146101a857806306bfcec6146101d1578063248a9ca3146101fc57806325bee3e9146102395780632f2ff15d14610264575b600080fd5b34801561017757600080fd5b50610192600480360381019061018d9190614569565b610587565b60405161019f9190614acf565b60405180910390f35b3480156101b457600080fd5b506101cf60048036038101906101ca9190614592565b610601565b005b3480156101dd57600080fd5b506101e66107eb565b6040516101f39190614b4a565b60405180910390f35b34801561020857600080fd5b50610223600480360381019061021e9190614504565b6108ac565b6040516102309190614aea565b60405180910390f35b34801561024557600080fd5b5061024e6108cc565b60405161025b9190614dea565b60405180910390f35b34801561027057600080fd5b5061028b6004803603810190610286919061452d565b6108d3565b005b34801561029957600080fd5b506102b460048036038101906102af919061452d565b6108fc565b005b3480156102c257600080fd5b506102dd60048036038101906102d89190614350565b61097f565b005b3480156102eb57600080fd5b506102f4610b2e565b005b34801561030257600080fd5b5061031d60048036038101906103189190614504565b610d17565b005b61033960048036038101906103349190614379565b610d1a565b005b34801561034757600080fd5b50610362600480360381019061035d91906143cd565b610e57565b60405161036f9190614acf565b60405180910390f35b34801561038457600080fd5b5061038d610f6a565b60405161039a9190614acf565b60405180910390f35b3480156103af57600080fd5b506103ca60048036038101906103c59190614350565b610f81565b005b3480156103d857600080fd5b506103e16111a5565b005b3480156103ef57600080fd5b506103f861122d565b005b34801561040657600080fd5b5061040f611416565b60405161041c9190614ab4565b60405180910390f35b34801561043157600080fd5b5061044c6004803603810190610447919061452d565b611441565b6040516104599190614acf565b60405180910390f35b34801561046e57600080fd5b506104776114ac565b6040516104849190614aea565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af919061452d565b6114b3565b005b3480156104c257600080fd5b506104dd60048036038101906104d891906144c8565b6114dc565b005b3480156104eb57600080fd5b506104f4611a07565b6040516105019190614ab4565b60405180910390f35b34801561051657600080fd5b50610531600480360381019061052c9190614421565b611a2e565b005b34801561053f57600080fd5b5061055a60048036038101906105559190614350565b6121ce565b005b34801561056857600080fd5b506105716122c6565b60405161057e9190614aea565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105fa57506105f9826122cd565b5b9050919050565b61062d7f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b6106597f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b6106857fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b6106b17f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b6106c56000801b6106c0612337565b611441565b610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb90614c0a565b60405180910390fd5b6107307f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b61075c7fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b6107887f3d6a0db88000e5f9ab36187c98b7e6c357b7fa0931361ffe63ffae1499a42f0560001b610d17565b6107b47fad27041f621cff54cb76219dae47e12542def610e1a72d9cf4db63c389b4311560001b610d17565b6107e07fc90129f6a41912e9a7556b6826cd04cfefa1e69c9dd7c9f3f1a9db2c15d683c160001b610d17565b806101918190555050565b60606108197f411dd99aa0a28f2148e60ce48e0605b04300115cc5b9309ac86c22db78a2e80b60001b610d17565b6108457fba08e59bc630da98329078be5536116010b0146c8daecba7d2194e979ea3e20560001b610d17565b6108717f7dbb88ae717513b77f3e4e738066d8ababec3f33161a6286f381e306287d8c9060001b610d17565b6040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b600060656000838152602001908152602001600020600101549050919050565b6101915481565b6108dc826108ac565b6108ed816108e8612337565b61233f565b6108f783836123dc565b505050565b610904612337565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610971576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096890614dca565b60405180910390fd5b61097b82826124bd565b5050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590614c6a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610a4d61259f565b73ffffffffffffffffffffffffffffffffffffffff1614610aa3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9a90614caa565b60405180910390fd5b610aac816125f6565b610b2b81600067ffffffffffffffff811115610af1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610b235781602001600182028036833780820191505090505b506000612728565b50565b610b5a7f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b610b867f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b610bb27fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b610bde7f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b610bf26000801b610bed612337565b611441565b610c31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2890614c0a565b60405180910390fd5b610c5d7f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b610c897fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b610cb57fbe782a13b4bebb144a7181914277338b7b5b6be7a5d769d4abf98991327c669760001b610d17565b610ce17f9f4cf952e4b7ec7fb527accef1a2a6e26d2a9236bd0befa02a3b6345be61dce660001b610d17565b610d0d7f82d2d2793721d603f8383193fd2bbedeb78cb6cc42460f961e49ccd2ba9cf22060001b610d17565b610d156128f9565b565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161415610da9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da090614c6a565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610de861259f565b73ffffffffffffffffffffffffffffffffffffffff1614610e3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3590614caa565b60405180910390fd5b610e47826125f6565b610e5382826001612728565b5050565b6000610e857ff84759c77e8fb3424e1d6c5602e274d5f90261c7df83b7be4421f3911581ca2760001b610d17565b610eb17f7dfcf7d59f0ac8640e4675d795b36c7a9cb1d56ccf3c59357350a0d0a9c98a2060001b610d17565b610edd7f9274d30d0ecefafcefe88183422ac2ee8dd00c5f4dda8f64ce4e1b3b087f648360001b610d17565b61019360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083604051602001610f309190614a3d565b60405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900460ff16905092915050565b6000609760009054906101000a900460ff16905090565b610fad7f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b610fd97f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b6110057fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b6110317f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b6110456000801b611040612337565b611441565b611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90614c0a565b60405180910390fd5b6110b07f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b6110dc7fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b6111087f1149d442f83f33c71278f66227a7cd24ee748736895e3ac4efbcab26f4a283a960001b610d17565b6111347fe2ff68f6499e3a54c1a53213f7e47173097a186fc462cfe4a91affceefef453d60001b610d17565b6111607f1b6039e1bd2d85f6581bad17512fdef3b0d236c8b500329c0e688d8fc349647d60001b610d17565b8061019560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111ad612337565b73ffffffffffffffffffffffffffffffffffffffff166111cb611416565b73ffffffffffffffffffffffffffffffffffffffff1614611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890614d2a565b60405180910390fd5b61122b600061299b565b565b6112597f4b01b4c98745444768d669ea9224010e5eb4e947bb5107c763b953f060a1835760001b610d17565b6112857f12507d6c1daffe5a505d3c18feddb59705402964577671768514fcfa28045c3a60001b610d17565b6112b17fb6d832047f6808ff6c53cdfb152e807fdffd9aea759eb3ef255da6d12f4e712860001b610d17565b6112dd7f0bb002070d936478031fcdff7111b2134c88df76fbe298b525025e352bbb96a260001b610d17565b6112f16000801b6112ec612337565b611441565b611330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132790614c0a565b60405180910390fd5b61135c7f1272ddbda9ff76e1694a203e776b76a8fad832df5c3118c4587fd20d0bec9ac360001b610d17565b6113887fe83dbb6844c896489cd2772021f7029dc426440def6922d10b2efec74295840960001b610d17565b6113b47fa64bc959162209394861166da279d9edb8805490c12512e94163c875c98dcf7e60001b610d17565b6113e07f5fe67d264535dbb8d55da12e6f19d79d0bbc80252d1d84057e8a4a908f4a3b0860001b610d17565b61140c7ff5d38b513c9599a5f913a6c3e265297b8c0925d97331e48a54c69a09cf5ace9160001b610d17565b611414612a63565b565b600061015f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6114bc826108ac565b6114cd816114c8612337565b61233f565b6114d783836124bd565b505050565b600060019054906101000a900460ff1680611502575060008054906101000a900460ff16155b611541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153890614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015611591576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6115bd7f6b31e24753748e1ca3998c11c6270e57e72648f07f93e4224f0605c76cff180660001b610d17565b6115e97ffcc4229b2d0de34691be69c6a9cfc6488d3607a33d4b3336ba13daf7fe74844760001b610d17565b6116157f3e17eb34e13d67f1cbfaff75dba902a88832585b8f2ca51c9d8d6a3292c508f660001b610d17565b61161d612b06565b6116497f356c72d5d2a550829f4f5590aaf597d29d83a6c5909e7f01d8f6203076383f2e60001b610d17565b6116757fcfa10483384ad19ef27b2231a7e8e7c62cd577e3a565c98ae5736e112aa212e160001b610d17565b61167d612bef565b6116a97fe797cb00fde069b5205bba60fb0b1676304be9c6a1727bce2b229a7129b3eb9760001b610d17565b6116d57faaec2704c2798a75d0425b6bcfbf30c36ed8b48ac800e744497a4fba1a24406160001b610d17565b6116dd612cd8565b6117097fc0cf0f698ba62b4f6fb31bfdccef78b7c6c5c15c747e9e58266361be05547ccb60001b610d17565b6117357f680004ec897c216aeb0a5d59f2726247d228b7dfcebc87130641d8cab1ffca9660001b610d17565b61173d612dc9565b6117697ff23fb4677ca2d4f77e0700a55bc18ccb2a63a4d732165657c81504d020316a7660001b610d17565b6117957f81c27b8e3ca7f0b87c26eea6bc51c137a1ce88befbf8d6a5d888a9e36013ae7b60001b610d17565b61179d612eaa565b6117c97fb7f7f0d0ba752f4c228c4de883169f4e35db22e4a1aadf3ce30a6db4ab3b9df960001b610d17565b6117f57f671a6906f181d2ca7679dd02437419bc7ef252eb08bf670814412ffd2c571a8b60001b610d17565b6118026000801b33612f93565b61182e7fd596695bef9f67bb6fd28bc92e5b725de750dde364a6f95ff4c1bbbdac426e2560001b610d17565b61185a7f0d2200ccad838d0f54845d06f3a7276c2f6d42c5c46e0c9a67789eaffdf452e460001b610d17565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3610192819055506118ae7f522020718d0c022177a673a04b763b0c647eb89e55ef2c330ac3b80f2bd86d9460001b610d17565b6118da7f6a72b42b82a467ec2b9b3b5b916915f30225a6c7c0ca9ed19837bb93fe75d44960001b610d17565b6118e76101925433612f93565b6119137f1c2de96b0473b26e211b572c6ce016715baea6ffd695e81c1cd611f6b51aeffb60001b610d17565b61193f7f8b998a1cf6f70c7e7b7ddfc8bd6ee64ba59c783e05d10dcae5c783235e4f4b0b60001b610d17565b8261019560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506119ad7f09657e3aaf27a0a0703661bb3e1af4c91af87e274f9e30690740ab7dd386544860001b610d17565b6119d97f0afa16104504d08c560349a552b67dd9ea1b7d8f650da422dc28c092df588b4a60001b610d17565b81610191819055508015611a025760008060016101000a81548160ff0219169083151502179055505b505050565b61019560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a36610f6a565b15611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90614cca565b60405180910390fd5b611aa27f6581fbeb2823ae175cd2d84f10a0d649241cb22e5ecf4f1e19f20d7d12cf00c060001b610d17565b611ace7f5e44e8400c1b7504e8f87f895448e60284f1375566f7189747b896798b4067e560001b610d17565b611afa7f5190902b34e6329d13a7500dbf677dad0a111b3f331b0c1d98995016132f890f60001b610d17565b611b0e6000801b611b09612337565b611441565b61200957611b3e7f6fef7dc66bd01554c6e66899f34de50e14308b10c9b5ca2a03cecd512b2ad21b60001b610d17565b611b6a7f1a3a908b158eac631fd8f23d3d09f74adffbc57641b427c724e1949f47963daa60001b610d17565b611b967fd3e1de1452b4d2247b007574f44cadeba7bd9ec5d381c6b692a738bb8a9e5b7360001b610d17565b611bc27f1fcc1fbc6dcbcd1599e048572de54b35e1d390ad9bc837b422a62c4c508bbd1f60001b610d17565b61019154611bd98342612fa190919063ffffffff16565b10611c19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1090614d4a565b60405180910390fd5b611c457f7215bc3c157ac69e24d528e475140631545b7d29b2fa8f747406b6c5c81120df60001b610d17565b611c717f34365a8dc4700309874db8c22b30e16f81398f93fae0d2e58c1e1e699fed687c60001b610d17565b611c9d7fb4cd505605a9ea62c31202ca40371bfe3a824d81ea02603d7f0ebd05c6e2dbb360001b610d17565b611cc97f26dd0320353562d3402ef0f4f5e568b32ea4cab841eccd3d54a493b25c2de2da60001b610d17565b610194600082604051602001611cdf9190614a26565b60405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900460ff1615611d51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4890614bea565b60405180910390fd5b611d7d7f63bbb50f4f854049a30582c471ac465564ded0b3f2949eb7e615ede6fb66ee3260001b610d17565b611da97fd88f94639819e0d99c8d9a5b4f426dbc1958fa31570c0b80181ba1234fc4d89560001b610d17565b611dd57f4999ce9eb8f2a8f201e50db4c6adcb042704adb4db27a231dea751c06e83e19860001b610d17565b6000611e0c86868686604051602001611df194939291906149dc565b60405160208183030381529060405280519060200120612fb7565b9050611e3a7f2e67ba92bedb114a18d15f1fd738e6d85e91e13acf8697ff7b60995cab9fa38b60001b610d17565b611e667f3d53adb1f85c16e3354a5e5596c71a49b0ac0835492501f550ab1c1636fe70cb60001b610d17565b611e927fd92d9f9b562b6c45471027aa8f356cfba1f93e07884bd3524e4baac0b32430cc60001b610d17565b61019560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611ed6828461306b565b73ffffffffffffffffffffffffffffffffffffffff1614611f2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2390614d6a565b60405180910390fd5b611f587fa0548306fcc133f1524987152517e315e3831db2e7c79b914b00169a6356e44160001b610d17565b611f847f492401921156e3c27c2993a1239f0020742489890e999fcb3759f560e9e9131d60001b610d17565b611fb07f9609ed54fcbea23113559871406412408a6ed93908fe810dcc041f26fc61f37360001b610d17565b6001610194600084604051602001611fc89190614a26565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff02191690831515021790555050612036565b6120357fa12c73535a5bdbbfeaf45bc344b9b6a5ea7e07273f73c76c74b0102e6f90181360001b610d17565b5b6120627f41bd55f55ca946222e51975eb3cb1f17627adca4beb283e1a5e7a00e418d11a660001b610d17565b61208e7f5f19512c7c1e6f976f04d10d72096960718852366e3386f5328a500e3da922ed60001b610d17565b8261019360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000866040516020016120e29190614a3d565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff0219169083151502179055506121497f5b8b689f8eebfed8b5a253c2e9077937a3897d079960cb0cd19be3bd0e9ad51360001b610d17565b6121757fe8de7d9491883a5166b98a5eed3e6c38f788adb100d5be340497a94e09985d8660001b610d17565b8473ffffffffffffffffffffffffffffffffffffffff167fe0db73124855f618948ae9654bf9fb29dbc4e9da043a0e3750e3635066fbe8148585426040516121bf93929190614b6c565b60405180910390a25050505050565b6121d6612337565b73ffffffffffffffffffffffffffffffffffffffff166121f4611416565b73ffffffffffffffffffffffffffffffffffffffff161461224a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224190614d2a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156122ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b190614c4a565b60405180910390fd5b6122c38161299b565b50565b6101925481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6123498282611441565b6123d85761236e8173ffffffffffffffffffffffffffffffffffffffff1660146132c6565b61237c8360001c60206132c6565b60405160200161238d929190614a7a565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123cf9190614b4a565b60405180910390fd5b5050565b6123e68282611441565b6124b95760016065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061245e612337565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6124c78282611441565b1561259b5760006065600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612540612337565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006125cd7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6135c0565b60000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6126227f62693a85ec33f35b1c04927699f69025c9086238cbaafe8046b8c6ca210db80a60001b610d17565b61264e7f225dd86f5923c649dabc77899f228cd34c3b63e2f13780019d831d2e00b8656160001b610d17565b61267a7f0d6e931a0509216195fde9ce36c569c7c5867b7b9d6d2a8f9e02f7352d3ec81c60001b610d17565b6126a67f36f593ae3a7dc804ef84f6d2a48371e520de4fdda06901e9db8613a35aa7d1df60001b610d17565b6126ba610192546126b5612337565b611441565b6126f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f090614c8a565b60405180910390fd5b6127257f30ad91c7e9eff0dffe6961be2e74333f89d855fe044fc38b7f35ac561d692eac60001b610d17565b50565b600061273261259f565b905061273d846135ca565b60008351118061274a5750815b1561275b576127598484613683565b505b60006127897f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914360001b613767565b90508060000160009054906101000a900460ff166128f25760018160000160006101000a81548160ff02191690831515021790555061285585836040516024016127d39190614ab4565b6040516020818303038152906040527f3659cfe6000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613683565b5060008160000160006101000a81548160ff02191690831515021790555061287b61259f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146128e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128df90614c2a565b60405180910390fd5b6128f185613771565b5b5050505050565b612901610f6a565b612940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293790614bca565b60405180910390fd5b6000609760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612984612337565b6040516129919190614ab4565b60405180910390a1565b600061015f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508161015f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b612a6b610f6a565b15612aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa290614cca565b60405180910390fd5b6001609760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612aef612337565b604051612afc9190614ab4565b60405180910390a1565b600060019054906101000a900460ff1680612b2c575060008054906101000a900460ff16155b612b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6290614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612bbb576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612bc36137c0565b612bcb613899565b8015612bec5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612c15575060008054906101000a900460ff16155b612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612ca4576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612cac6137c0565b612cb4613982565b8015612cd55760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612cfe575060008054906101000a900460ff16155b612d3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3490614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612d8d576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612d956137c0565b612d9d613a76565b612da5613b4f565b8015612dc65760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612def575060008054906101000a900460ff16155b612e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2590614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612e7e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612e86613c28565b8015612ea75760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680612ed0575060008054906101000a900460ff16155b612f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0690614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015612f5f576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b612f67613d09565b612f6f613de2565b8015612f905760008060016101000a81548160ff0219169083151502179055505b50565b612f9d82826123dc565b5050565b60008183612faf9190614f79565b905092915050565b6000612fe57fafbcacd8b6e734342baf1ecfa35c015f231573b733a748020fa1dfc6107f11f460001b610d17565b6130117fbc51574591dcdaefe213b29a4551ef05bd229055f3a9b7b830acc399b79a105d60001b610d17565b61303d7ff7e763453be5deb195da9cbdb021c3a788253ca9aaed28d80d59be285730d42f60001b610d17565b8160405160200161304e9190614a54565b604051602081830303815290604052805190602001209050919050565b60006130997fc9812d6f8e56f00c18c1ed9bc06783ed75f57b23a9c8c8d3e654a74b7193d87f60001b610d17565b6130c57ff9b7ae803854786cd4e04fe75c6944e44e287396efd3ec4f1a6832536555608460001b610d17565b6130f17f8b567df69542d196dcdd9c8a09354df89024cda137811ef6492a932715e669a360001b610d17565b600061311f7f35b85ebc800f4cb3817c03de2b05b87e36ff6efbe9ed5ef9ff498c4d1febc03e60001b610d17565b61314b7fe4019b121bda25f48624f21519d97c8bafe59c2e9ba532008ecd738207a9d6bc60001b610d17565b60006131797f096509bcec607264fabffee199361cc5585ed158d8c6110621e4e8eddb140b0360001b610d17565b6131a57f48a89806bb44c848e438a3387a4f244cde8ec3105e21838932db991059cb6e9c60001b610d17565b60006131d37f932225a7f00d0b95645bcc88b3e347f29ec2f9edc1e60f90c99e1cae4608f45960001b610d17565b6131ff7f4830cf6959297cdcb2a79afba2e278faf7e62bba52f9c52bbf7b5e47049cd9c760001b610d17565b61320885613ebb565b8093508194508295505050506132407f862c08a5de08e29873d5685fb92ec9db7dde95f542f32d28a69905011eabb3df60001b610d17565b61326c7f73cb2e1c2d85159ee1e430164b7a3aa51597309feea05bda6d18c78f8971536f60001b610d17565b6001868484846040516000815260200160405260405161328f9493929190614b05565b6020604051602081039080840390855afa1580156132b1573d6000803e3d6000fd5b50505060206040510351935050505092915050565b6060600060028360026132d99190614f1f565b6132e39190614ec9565b67ffffffffffffffff811115613322577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156133545781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106133b2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061343c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261347c9190614f1f565b6134869190614ec9565b90505b6001811115613572577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106134ee577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b1a60f81b82828151811061352b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061356b9061507a565b9050613489565b50600084146135b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135ad90614baa565b60405180910390fd5b8091505092915050565b6000819050919050565b6135d38161419d565b613612576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161360990614d0a565b60405180910390fd5b8061363f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b6135c0565b60000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606061368e8361419d565b6136cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136c490614d8a565b60405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516136f59190614a26565b600060405180830381855af49150503d8060008114613730576040519150601f19603f3d011682016040523d82523d6000602084013e613735565b606091505b509150915061375d82826040518060600160405280602781526020016156bb602791396141b0565b9250505092915050565b6000819050919050565b61377a816135ca565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b600060019054906101000a900460ff16806137e6575060008054906101000a900460ff16155b613825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161381c90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613875576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b80156138965760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806138bf575060008054906101000a900460ff16155b6138fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138f590614cea565b60405180910390fd5b60008060019054906101000a900460ff16159050801561394e576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b61395e613959612337565b61299b565b801561397f5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff16806139a8575060008054906101000a900460ff16155b6139e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016139de90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613a37576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b6000609760006101000a81548160ff0219169083151502179055508015613a735760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613a9c575060008054906101000a900460ff16155b613adb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613ad290614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613b2b576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613b4c5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613b75575060008054906101000a900460ff16155b613bb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bab90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613c04576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613c255760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613c4e575060008054906101000a900460ff16155b613c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c8490614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613cdd576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b600160c9819055508015613d065760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613d2f575060008054906101000a900460ff16155b613d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613d6590614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613dbe576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613ddf5760008060016101000a81548160ff0219169083151502179055505b50565b600060019054906101000a900460ff1680613e08575060008054906101000a900460ff16155b613e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613e3e90614cea565b60405180910390fd5b60008060019054906101000a900460ff161590508015613e97576001600060016101000a81548160ff02191690831515021790555060016000806101000a81548160ff0219169083151502179055505b8015613eb85760008060016101000a81548160ff0219169083151502179055505b50565b6000806000613eec7fdd325232e34a7e54d51c4d54525a16ac4bb014e8e3d286df4dec7e4d2c1aeccb60001b610d17565b613f187f482131af070c72286500554badbb6abc9a4a6ef41af69fd4eda1c1dfbe83d0f160001b610d17565b613f447fa627160b756031e5dd4ed9209705f218aa581f1eff5e4fd315ca01ad421ad95560001b610d17565b613f707f4adc00e5c1dba4d60da093adbc6c433cb8a4d2d2f960efc669ccce68fb48329b60001b610d17565b6041845114613fb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613fab90614daa565b60405180910390fd5b613fe07fd718c000a6e305fad09bdbc237ee1ba2a73d2ba660eba6c16ab04b0d6c3484b960001b610d17565b61400c7f2fdf67473ff0db87c0444b1d4ffcb71fd101533ef62af804d709c83827c8cf9760001b610d17565b6140387f333f9e85d801d3fb442cae2847d0181a37da0eeb99a9f0c3a6aeac3a786c1b7260001b610d17565b60006140667f328ef23080846bb47b4dd1d85f1c7413812d42ada03776f2ef5d91bded02cf1c60001b610d17565b6140927f16edce112748bd74ab0ad72512bb9b14ef12fb5f2510ee61257567145032fe9c60001b610d17565b60006140c07f3119ee43da98a54c9443457365897b818467ae96a797c077e61a34bc7d573c8f60001b610d17565b6140ec7fc1d1f960d48b864eb0e4cb1750a7c9f00f875c3e7b2cb15cbac1bb8419bc02e760001b610d17565b600061411a7f057c79aea4c886f669f74c073e68f1346445d771a3894cd107ac8f2ac702493860001b610d17565b6020870151925060408701519150606087015160001a905061415e7f4a515e87ea7435a41851acdadf7b9d5bb72c9677883cd0a51db888c32f25a7a960001b610d17565b61418a7fe3b532515df30ce7ecd35a741d29957268d7b6079e32fac045747978ea975c2f60001b610d17565b8083839550955095505050509193909250565b600080823b905060008111915050919050565b606083156141c057829050614210565b6000835111156141d35782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016142079190614b4a565b60405180910390fd5b9392505050565b600061422a61422584614e2a565b614e05565b90508281526020810184848401111561424257600080fd5b61424d848285615038565b509392505050565b600061426861426384614e5b565b614e05565b90508281526020810184848401111561428057600080fd5b61428b848285615038565b509392505050565b6000813590506142a281615647565b92915050565b6000813590506142b78161565e565b92915050565b6000813590506142cc81615675565b92915050565b6000813590506142e18161568c565b92915050565b600082601f8301126142f857600080fd5b8135614308848260208601614217565b91505092915050565b600082601f83011261432257600080fd5b8135614332848260208601614255565b91505092915050565b60008135905061434a816156a3565b92915050565b60006020828403121561436257600080fd5b600061437084828501614293565b91505092915050565b6000806040838503121561438c57600080fd5b600061439a85828601614293565b925050602083013567ffffffffffffffff8111156143b757600080fd5b6143c3858286016142e7565b9150509250929050565b600080604083850312156143e057600080fd5b60006143ee85828601614293565b925050602083013567ffffffffffffffff81111561440b57600080fd5b61441785828601614311565b9150509250929050565b600080600080600060a0868803121561443957600080fd5b600061444788828901614293565b955050602086013567ffffffffffffffff81111561446457600080fd5b61447088828901614311565b9450506040614481888289016142a8565b93505060606144928882890161433b565b925050608086013567ffffffffffffffff8111156144af57600080fd5b6144bb888289016142e7565b9150509295509295909350565b600080604083850312156144db57600080fd5b60006144e985828601614293565b92505060206144fa8582860161433b565b9150509250929050565b60006020828403121561451657600080fd5b6000614524848285016142bd565b91505092915050565b6000806040838503121561454057600080fd5b600061454e858286016142bd565b925050602061455f85828601614293565b9150509250929050565b60006020828403121561457b57600080fd5b6000614589848285016142d2565b91505092915050565b6000602082840312156145a457600080fd5b60006145b28482850161433b565b91505092915050565b6145c481614fad565b82525050565b6145db6145d682614fad565b6150d5565b82525050565b6145ea81614fbf565b82525050565b6146016145fc82614fbf565b6150e7565b82525050565b61461081614fcb565b82525050565b61462761462282614fcb565b6150f9565b82525050565b600061463882614e8c565b6146428185614ea2565b9350614652818560208601615047565b80840191505092915050565b600061466982614e97565b6146738185614ead565b9350614683818560208601615047565b61468c8161518f565b840191505092915050565b60006146a282614e97565b6146ac8185614ebe565b93506146bc818560208601615047565b80840191505092915050565b60006146d5602083614ead565b91506146e0826151ba565b602082019050919050565b60006146f8601483614ead565b9150614703826151e3565b602082019050919050565b600061471b601283614ead565b91506147268261520c565b602082019050919050565b600061473e601c83614ebe565b915061474982615235565b601c82019050919050565b6000614761601883614ead565b915061476c8261525e565b602082019050919050565b6000614784602f83614ead565b915061478f82615287565b604082019050919050565b60006147a7602683614ead565b91506147b2826152d6565b604082019050919050565b60006147ca602c83614ead565b91506147d582615325565b604082019050919050565b60006147ed601b83614ead565b91506147f882615374565b602082019050919050565b6000614810602c83614ead565b915061481b8261539d565b604082019050919050565b6000614833601083614ead565b915061483e826153ec565b602082019050919050565b6000614856602e83614ead565b915061486182615415565b604082019050919050565b6000614879602d83614ead565b915061488482615464565b604082019050919050565b600061489c602083614ead565b91506148a7826154b3565b602082019050919050565b60006148bf601583614ead565b91506148ca826154dc565b602082019050919050565b60006148e2601a83614ead565b91506148ed82615505565b602082019050919050565b6000614905602683614ead565b91506149108261552e565b604082019050919050565b6000614928601783614ebe565b91506149338261557d565b601782019050919050565b600061494b601883614ead565b9150614956826155a6565b602082019050919050565b600061496e601183614ebe565b9150614979826155cf565b601182019050919050565b6000614991602f83614ead565b915061499c826155f8565b604082019050919050565b6149b081615021565b82525050565b6149c76149c282615021565b615115565b82525050565b6149d68161502b565b82525050565b60006149e882876145ca565b6014820191506149f88286614697565b9150614a0482856145f0565b600182019150614a1482846149b6565b60208201915081905095945050505050565b6000614a32828461462d565b915081905092915050565b6000614a498284614697565b915081905092915050565b6000614a5f82614731565b9150614a6b8284614616565b60208201915081905092915050565b6000614a858261491b565b9150614a918285614697565b9150614a9c82614961565b9150614aa88284614697565b91508190509392505050565b6000602082019050614ac960008301846145bb565b92915050565b6000602082019050614ae460008301846145e1565b92915050565b6000602082019050614aff6000830184614607565b92915050565b6000608082019050614b1a6000830187614607565b614b2760208301866149cd565b614b346040830185614607565b614b416060830184614607565b95945050505050565b60006020820190508181036000830152614b64818461465e565b905092915050565b60006060820190508181036000830152614b86818661465e565b9050614b9560208301856145e1565b614ba260408301846149a7565b949350505050565b60006020820190508181036000830152614bc3816146c8565b9050919050565b60006020820190508181036000830152614be3816146eb565b9050919050565b60006020820190508181036000830152614c038161470e565b9050919050565b60006020820190508181036000830152614c2381614754565b9050919050565b60006020820190508181036000830152614c4381614777565b9050919050565b60006020820190508181036000830152614c638161479a565b9050919050565b60006020820190508181036000830152614c83816147bd565b9050919050565b60006020820190508181036000830152614ca3816147e0565b9050919050565b60006020820190508181036000830152614cc381614803565b9050919050565b60006020820190508181036000830152614ce381614826565b9050919050565b60006020820190508181036000830152614d0381614849565b9050919050565b60006020820190508181036000830152614d238161486c565b9050919050565b60006020820190508181036000830152614d438161488f565b9050919050565b60006020820190508181036000830152614d63816148b2565b9050919050565b60006020820190508181036000830152614d83816148d5565b9050919050565b60006020820190508181036000830152614da3816148f8565b9050919050565b60006020820190508181036000830152614dc38161493e565b9050919050565b60006020820190508181036000830152614de381614984565b9050919050565b6000602082019050614dff60008301846149a7565b92915050565b6000614e0f614e20565b9050614e1b82826150a4565b919050565b6000604051905090565b600067ffffffffffffffff821115614e4557614e44615160565b5b614e4e8261518f565b9050602081019050919050565b600067ffffffffffffffff821115614e7657614e75615160565b5b614e7f8261518f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614ed482615021565b9150614edf83615021565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614f1457614f13615131565b5b828201905092915050565b6000614f2a82615021565b9150614f3583615021565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614f6e57614f6d615131565b5b828202905092915050565b6000614f8482615021565b9150614f8f83615021565b925082821015614fa257614fa1615131565b5b828203905092915050565b6000614fb882615001565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b8381101561506557808201518184015260208101905061504a565b83811115615074576000848401525b50505050565b600061508582615021565b9150600082141561509957615098615131565b5b600182039050919050565b6150ad8261518f565b810181811067ffffffffffffffff821117156150cc576150cb615160565b5b80604052505050565b60006150e082615103565b9050919050565b60006150f28261511f565b9050919050565b6000819050919050565b600061510e826151ad565b9050919050565b6000819050919050565b600061512a826151a0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160f81b9050919050565b60008160601b9050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f7369676e61747572652068617320757365640000000000000000000000000000600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f726571756972652061646d696e207065726d697373696f6e0000000000000000600082015250565b7f45524331393637557067726164653a207570677261646520627265616b73206660008201527f7572746865722075706772616465730000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f64656c656761746563616c6c0000000000000000000000000000000000000000602082015250565b7f72657175697265207570677261646572207065726d697373696f6e0000000000600082015250565b7f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060008201527f6163746976652070726f78790000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b7f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60008201527f6f74206120636f6e747261637400000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f7369676e61747572652068617320657870697265640000000000000000000000600082015250565b7f756e61626c6520746f20766572696679207369676e6174757265000000000000600082015250565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b7f696e76616c6964207369676e6174757265206c656e6774680000000000000000600082015250565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b61565081614fad565b811461565b57600080fd5b50565b61566781614fbf565b811461567257600080fd5b50565b61567e81614fcb565b811461568957600080fd5b50565b61569581614fd5565b81146156a057600080fd5b50565b6156ac81615021565b81146156b757600080fd5b5056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212205d6a990ade1777b74fb8d27e99f22740145f61c5cb8d233d6669addc25dac94864736f6c63430008020033";
const _bytecode = "0x60a06040523060601b60805234801561001757600080fd5b50600054610100900460ff1680610031575060005460ff16155b6100985760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff161580156100c3576000805460ff1961ff0019909116610100171660011790555b80156100d5576000805461ff00191690555b5060805160601c611e026101096000396000818161050d0152818161054d0152818161060701526106470152611e026000f3fe60806040526004361061012a5760003560e01c80635c975abb116100ab578063d547741f1161006f578063d547741f14610319578063dd60d96514610339578063e17ad93114610359578063e18c726014610379578063f65903b9146103b2578063f72c0d8b146103d25761012a565b80635c975abb146102975780636c19e783146102af5780638456cb59146102cf57806391d14854146102e4578063a217fddf146103045761012a565b80632f2ff15d116100f25780632f2ff15d1461020f57806336568abe1461022f5780633659cfe61461024f5780633f4ba83a1461026f5780634f1ef286146102845761012a565b806301ffc9a71461012f5780630676695b1461016457806306bfcec614610186578063248a9ca3146101ba57806325bee3e9146101f8575b600080fd5b34801561013b57600080fd5b5061014f61014a366004611a5c565b6103e9565b60405190151581526020015b60405180910390f35b34801561017057600080fd5b5061018461017f366004611a19565b610422565b005b34801561019257600080fd5b5060408051808201825260058152640312e302e360dc1b6020820152905161015b9190611b8f565b3480156101c657600080fd5b506101ea6101d5366004611a19565b60009081526065602052604090206001015490565b60405190815260200161015b565b34801561020457600080fd5b506101ea61015f5481565b34801561021b57600080fd5b5061018461022a366004611a31565b610458565b34801561023b57600080fd5b5061018461024a366004611a31565b610484565b34801561025b57600080fd5b5061018461026a3660046118e4565b610502565b34801561027b57600080fd5b506101846105cb565b6101846102923660046118fe565b6105fc565b3480156102a357600080fd5b5060975460ff1661014f565b3480156102bb57600080fd5b506101846102ca3660046118e4565b6106b2565b3480156102db57600080fd5b506101846106fc565b3480156102f057600080fd5b5061014f6102ff366004611a31565b61072b565b34801561031057600080fd5b506101ea600081565b34801561032557600080fd5b50610184610334366004611a31565b610756565b34801561034557600080fd5b5061014f61035436600461194a565b61077c565b34801561036557600080fd5b506101846103743660046119f0565b6107da565b34801561038557600080fd5b506101635461039a906001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b3480156103be57600080fd5b506101846103cd36600461195c565b6108ce565b3480156103de57600080fd5b506101ea6101605481565b60006001600160e01b03198216637965db0b60e01b148061041a57506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b61042d6000336102ff565b6104525760405162461bcd60e51b815260040161044990611bc7565b60405180910390fd5b61015f55565b60008281526065602052604090206001015461047581335b610be6565b61047f8383610c4a565b505050565b6001600160a01b03811633146104f45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610449565b6104fe8282610cd0565b5050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561054b5760405162461bcd60e51b815260040161044990611bfe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661057d610d37565b6001600160a01b0316146105a35760405162461bcd60e51b815260040161044990611c4a565b6105ac81610d65565b604080516000808252602082019092526105c891839190610dbf565b50565b6105d66000336102ff565b6105f25760405162461bcd60e51b815260040161044990611bc7565b6105fa610f0a565b565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156106455760405162461bcd60e51b815260040161044990611bfe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610677610d37565b6001600160a01b03161461069d5760405162461bcd60e51b815260040161044990611c4a565b6106a682610d65565b6104fe82826001610dbf565b6106bd6000336102ff565b6106d95760405162461bcd60e51b815260040161044990611bc7565b61016380546001600160a01b0319166001600160a01b0392909216919091179055565b6107076000336102ff565b6107235760405162461bcd60e51b815260040161044990611bc7565b6105fa610f9d565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000828152606560205260409020600101546107728133610470565b61047f8383610cd0565b6001600160a01b0382166000908152610161602090815260408083209051909183916107aa91869101611afe565b60408051808303601f190181529181528151602092830120835290820192909252016000205460ff169392505050565b600054610100900460ff16806107f3575060005460ff16155b61080f5760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff1615801561083a576000805460ff1961ff0019909116610100171660011790555b610842611018565b61084a61109c565b610852611114565b61085a61117c565b6108656000336111e3565b7f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e361016081905561089690336111e3565b61016380546001600160a01b0319166001600160a01b03851617905561015f829055801561047f576000805461ff0019169055505050565b60975460ff16156109145760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610449565b61091f6000336102ff565b610b315761015f5461093142846111ed565b106109765760405162461bcd60e51b81526020600482015260156024820152741cda59db985d1d5c99481a185cc8195e1c1a5c9959605a1b6044820152606401610449565b61016260008260405160200161098c9190611afe565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff16156109f75760405162461bcd60e51b81526020600482015260126024820152711cda59db985d1d5c99481a185cc81d5cd95960721b6044820152606401610449565b6000610a7386868686604051602001610a139493929190611ab0565b60408051601f1981840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b610163549091506001600160a01b0316610a8d8284611200565b6001600160a01b031614610ae35760405162461bcd60e51b815260206004820152601a60248201527f756e61626c6520746f20766572696679207369676e61747572650000000000006044820152606401610449565b6001610162600084604051602001610afb9190611afe565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff1916911515919091179055505b6001600160a01b038516600090815261016160209081526040808320905186939192610b5f91899101611afe565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548160ff021916908315150217905550846001600160a01b03167fa75afcecb86d16fdeb01f70715df8a51df373661d7f07e7c944fefcc07aa8704858542604051610bd793929190611ba2565b60405180910390a25050505050565b610bf0828261072b565b6104fe57610c08816001600160a01b0316601461127f565b610c1383602061127f565b604051602001610c24929190611b1a565b60408051601f198184030181529082905262461bcd60e51b825261044991600401611b8f565b610c54828261072b565b6104fe5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610c8c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610cda828261072b565b156104fe5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b610d73610160546102ff3390565b6105c85760405162461bcd60e51b815260206004820152601b60248201527f72657175697265207570677261646572207065726d697373696f6e00000000006044820152606401610449565b6000610dc9610d37565b9050610dd484611461565b600083511180610de15750815b15610df257610df08484611506565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16610f0357805460ff191660011781556040516001600160a01b0383166024820152610e7190869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052611506565b50805460ff19168155610e82610d37565b6001600160a01b0316826001600160a01b031614610efa5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610449565b610f03856115f1565b5050505050565b60975460ff16610f535760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610449565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60975460ff1615610fe35760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610449565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610f803390565b600054610100900460ff1680611031575060005460ff16155b61104d5760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611078576000805460ff1961ff0019909116610100171660011790555b611080611631565b6110886116a4565b80156105c8576000805461ff001916905550565b600054610100900460ff16806110b5575060005460ff16155b6110d15760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff161580156110fc576000805460ff1961ff0019909116610100171660011790555b611104611631565b61110c611631565b611088611631565b600054610100900460ff168061112d575060005460ff16155b6111495760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611174576000805460ff1961ff0019909116610100171660011790555b611088611722565b600054610100900460ff1680611195575060005460ff16155b6111b15760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611104576000805460ff1961ff00199091166101001716600117905561110c611631565b6104fe8282610c4a565b60006111f98284611d1b565b9392505050565b60008060008061120f8561179b565b6040805160008152602081018083528b905260ff8516918101919091526060810183905260808101829052929550909350915060019060a0016020604051602081039080840390855afa15801561126a573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b6060600061128e836002611cfc565b611299906002611ce4565b67ffffffffffffffff8111156112bf57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156112e9576020820181803683370190505b509050600360fc1b8160008151811061131257634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061134f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506000611373846002611cfc565b61137e906001611ce4565b90505b6001811115611412576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106113c057634e487b7160e01b600052603260045260246000fd5b1a60f81b8282815181106113e457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361140b81611d62565b9050611381565b5083156111f95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610449565b803b6114c55760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610449565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6115655760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610449565b600080846001600160a01b0316846040516115809190611afe565b600060405180830381855af49150503d80600081146115bb576040519150601f19603f3d011682016040523d82523d6000602084013e6115c0565b606091505b50915091506115e88282604051806060016040528060278152602001611da66027913961180d565b95945050505050565b6115fa81611461565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600054610100900460ff168061164a575060005460ff16155b6116665760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611088576000805460ff1961ff00199091166101001716600117905580156105c8576000805461ff001916905550565b600054610100900460ff16806116bd575060005460ff16155b6116d95760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611704576000805460ff1961ff0019909116610100171660011790555b6097805460ff1916905580156105c8576000805461ff001916905550565b600054610100900460ff168061173b575060005460ff16155b6117575760405162461bcd60e51b815260040161044990611c96565b600054610100900460ff16158015611782576000805460ff1961ff0019909116610100171660011790555b600160c95580156105c8576000805461ff001916905550565b600080600083516041146117f15760405162461bcd60e51b815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606401610449565b5050506020810151604082015160609092015160001a92909190565b6060831561181c5750816111f9565b82511561182c5782518084602001fd5b8160405162461bcd60e51b81526004016104499190611b8f565b80356001600160a01b038116811461041d57600080fd5b600082601f83011261186d578081fd5b813567ffffffffffffffff8082111561188857611888611d8f565b604051601f8301601f19908116603f011681019082821181831017156118b0576118b0611d8f565b816040528381528660208588010111156118c8578485fd5b8360208701602083013792830160200193909352509392505050565b6000602082840312156118f5578081fd5b6111f982611846565b60008060408385031215611910578081fd5b61191983611846565b9150602083013567ffffffffffffffff811115611934578182fd5b6119408582860161185d565b9150509250929050565b60008060408385031215611910578182fd5b600080600080600060a08688031215611973578081fd5b61197c86611846565b9450602086013567ffffffffffffffff80821115611998578283fd5b6119a489838a0161185d565b95506040880135915081151582146119ba578283fd5b90935060608701359250608087013590808211156119d6578283fd5b506119e38882890161185d565b9150509295509295909350565b60008060408385031215611a02578182fd5b611a0b83611846565b946020939093013593505050565b600060208284031215611a2a578081fd5b5035919050565b60008060408385031215611a43578182fd5b82359150611a5360208401611846565b90509250929050565b600060208284031215611a6d578081fd5b81356001600160e01b0319811681146111f9578182fd5b60008151808452611a9c816020860160208601611d32565b601f01601f19169290920160200192915050565b60006bffffffffffffffffffffffff198660601b1682528451611ada816014850160208901611d32565b93151560f81b91909301601481019190915260158101919091526035019392505050565b60008251611b10818460208701611d32565b9190910192915050565b60007f416363657373436f6e74726f6c3a206163636f756e742000000000000000000082528351611b52816017850160208801611d32565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611b83816028840160208801611d32565b01602801949350505050565b6000602082526111f96020830184611a84565b600060608252611bb56060830186611a84565b93151560208301525060400152919050565b60208082526018908201527f726571756972652061646d696e207065726d697373696f6e0000000000000000604082015260600190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008219821115611cf757611cf7611d79565b500190565b6000816000190483118215151615611d1657611d16611d79565b500290565b600082821015611d2d57611d2d611d79565b500390565b60005b83811015611d4d578181015183820152602001611d35565b83811115611d5c576000848401525b50505050565b600081611d7157611d71611d79565b506000190190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220709819f0139f9f48d08c53d533f742fd6c7cc9eb2c75932627e9d93154799b1464736f6c63430008020033";
class AmethystRoleManagementImpl__factory extends ethers_1.ContractFactory {

@@ -610,0 +545,0 @@ constructor(signer) {

@@ -14,3 +14,3 @@ import { Signer, ContractFactory, Overrides } from "ethers";

connect(signer: Signer): ERC721Impl__factory;
static readonly bytecode = "0x608060405234801561001057600080fd5b5061243e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a22cb46511610066578063a22cb4651461025b578063b88d4fde14610277578063c87b56dd14610293578063e985e9c5146102c3576100ea565b806370a08231146101f15780637fdebd701461022157806395d89b411461023d576100ea565b8063095ea7b3116100c8578063095ea7b31461016d57806323b872dd1461018957806342842e0e146101a55780636352211e146101c1576100ea565b806301ffc9a7146100ef57806306fdde031461011f578063081812fc1461013d575b600080fd5b610109600480360381019061010491906116f7565b6102f3565b6040516101169190611a71565b60405180910390f35b6101276103d5565b6040516101349190611a8c565b60405180910390f35b61015760048036038101906101529190611749565b610467565b6040516101649190611a0a565b60405180910390f35b61018760048036038101906101829190611692565b6104ec565b005b6101a3600480360381019061019e919061158c565b610604565b005b6101bf60048036038101906101ba919061158c565b610664565b005b6101db60048036038101906101d69190611749565b610684565b6040516101e89190611a0a565b60405180910390f35b61020b60048036038101906102069190611527565b610736565b6040516102189190611c2e565b60405180910390f35b61023b600480360381019061023691906116ce565b6107ee565b005b6102456107f1565b6040516102529190611a8c565b60405180910390f35b61027560048036038101906102709190611656565b610883565b005b610291600480360381019061028c91906115db565b610a04565b005b6102ad60048036038101906102a89190611749565b610a66565b6040516102ba9190611a8c565b60405180910390f35b6102dd60048036038101906102d89190611550565b610b0d565b6040516102ea9190611a71565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103be57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103ce57506103cd82610ba1565b5b9050919050565b6060606580546103e490611e5d565b80601f016020809104026020016040519081016040528092919081815260200182805461041090611e5d565b801561045d5780601f106104325761010080835404028352916020019161045d565b820191906000526020600020905b81548152906001019060200180831161044057829003601f168201915b5050505050905090565b600061047282610c0b565b6104b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a890611b8e565b60405180910390fd5b6069600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104f782610684565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055f90611bee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610587610c77565b73ffffffffffffffffffffffffffffffffffffffff1614806105b657506105b5816105b0610c77565b610b0d565b5b6105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec90611b2e565b60405180910390fd5b6105ff8383610c7f565b505050565b61061561060f610c77565b82610d38565b610654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064b90611c0e565b60405180910390fd5b61065f838383610e16565b505050565b61067f83838360405180602001604052806000815250610a04565b505050565b6000806067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561072d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072490611b6e565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e90611b4e565b60405180910390fd5b606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b50565b60606066805461080090611e5d565b80601f016020809104026020016040519081016040528092919081815260200182805461082c90611e5d565b80156108795780601f1061084e57610100808354040283529160200191610879565b820191906000526020600020905b81548152906001019060200180831161085c57829003601f168201915b5050505050905090565b61088b610c77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090611aee565b60405180910390fd5b80606a6000610906610c77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166109b3610c77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109f89190611a71565b60405180910390a35050565b610a15610a0f610c77565b83610d38565b610a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4b90611c0e565b60405180910390fd5b610a6084848484611072565b50505050565b6060610a7182610c0b565b610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790611bce565b60405180910390fd5b6000610aba6110ce565b90506000815111610ada5760405180602001604052806000815250610b05565b80610ae4846110e5565b604051602001610af59291906119e6565b6040516020818303038152906040525b915050919050565b6000606a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816069600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610cf283610684565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610d4382610c0b565b610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7990611b0e565b60405180910390fd5b6000610d8d83610684565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610dfc57508373ffffffffffffffffffffffffffffffffffffffff16610de484610467565b73ffffffffffffffffffffffffffffffffffffffff16145b80610e0d5750610e0c8185610b0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610e3682610684565b73ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8390611bae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390611ace565b60405180910390fd5b610f07838383611292565b610f12600082610c7f565b6001606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f629190611d69565b925050819055506001606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fb99190611ce2565b92505081905550816067600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61107d848484610e16565b61108984848484611297565b6110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90611aae565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060600082141561112d576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061128d565b600082905060005b6000821461115f57808061114890611ec0565b915050600a826111589190611d38565b9150611135565b60008167ffffffffffffffff8111156111a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156111d35781602001600182028036833780820191505090505b5090505b60008514611286576001826111ec9190611d69565b9150600a856111fb9190611f09565b60306112079190611ce2565b60f81b818381518110611243577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561127f9190611d38565b94506111d7565b8093505050505b919050565b505050565b60006112b88473ffffffffffffffffffffffffffffffffffffffff1661142e565b15611421578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026112e1610c77565b8786866040518563ffffffff1660e01b81526004016113039493929190611a25565b602060405180830381600087803b15801561131d57600080fd5b505af192505050801561134e57506040513d601f19601f8201168201806040525081019061134b9190611720565b60015b6113d1573d806000811461137e576040519150601f19603f3d011682016040523d82523d6000602084013e611383565b606091505b506000815114156113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090611aae565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611426565b600190505b949350505050565b600080823b905060008111915050919050565b600061145461144f84611c6e565b611c49565b90508281526020810184848401111561146c57600080fd5b611477848285611e1b565b509392505050565b60008135905061148e81612395565b92915050565b6000813590506114a3816123ac565b92915050565b6000813590506114b8816123c3565b92915050565b6000813590506114cd816123da565b92915050565b6000815190506114e2816123da565b92915050565b600082601f8301126114f957600080fd5b8135611509848260208601611441565b91505092915050565b600081359050611521816123f1565b92915050565b60006020828403121561153957600080fd5b60006115478482850161147f565b91505092915050565b6000806040838503121561156357600080fd5b60006115718582860161147f565b92505060206115828582860161147f565b9150509250929050565b6000806000606084860312156115a157600080fd5b60006115af8682870161147f565b93505060206115c08682870161147f565b92505060406115d186828701611512565b9150509250925092565b600080600080608085870312156115f157600080fd5b60006115ff8782880161147f565b94505060206116108782880161147f565b935050604061162187828801611512565b925050606085013567ffffffffffffffff81111561163e57600080fd5b61164a878288016114e8565b91505092959194509250565b6000806040838503121561166957600080fd5b60006116778582860161147f565b925050602061168885828601611494565b9150509250929050565b600080604083850312156116a557600080fd5b60006116b38582860161147f565b92505060206116c485828601611512565b9150509250929050565b6000602082840312156116e057600080fd5b60006116ee848285016114a9565b91505092915050565b60006020828403121561170957600080fd5b6000611717848285016114be565b91505092915050565b60006020828403121561173257600080fd5b6000611740848285016114d3565b91505092915050565b60006020828403121561175b57600080fd5b600061176984828501611512565b91505092915050565b61177b81611d9d565b82525050565b61178a81611daf565b82525050565b600061179b82611c9f565b6117a58185611cb5565b93506117b5818560208601611e2a565b6117be81611ff6565b840191505092915050565b60006117d482611caa565b6117de8185611cc6565b93506117ee818560208601611e2a565b6117f781611ff6565b840191505092915050565b600061180d82611caa565b6118178185611cd7565b9350611827818560208601611e2a565b80840191505092915050565b6000611840603283611cc6565b915061184b82612007565b604082019050919050565b6000611863602483611cc6565b915061186e82612056565b604082019050919050565b6000611886601983611cc6565b9150611891826120a5565b602082019050919050565b60006118a9602c83611cc6565b91506118b4826120ce565b604082019050919050565b60006118cc603883611cc6565b91506118d78261211d565b604082019050919050565b60006118ef602a83611cc6565b91506118fa8261216c565b604082019050919050565b6000611912602983611cc6565b915061191d826121bb565b604082019050919050565b6000611935602c83611cc6565b91506119408261220a565b604082019050919050565b6000611958602983611cc6565b915061196382612259565b604082019050919050565b600061197b602f83611cc6565b9150611986826122a8565b604082019050919050565b600061199e602183611cc6565b91506119a9826122f7565b604082019050919050565b60006119c1603183611cc6565b91506119cc82612346565b604082019050919050565b6119e081611e11565b82525050565b60006119f28285611802565b91506119fe8284611802565b91508190509392505050565b6000602082019050611a1f6000830184611772565b92915050565b6000608082019050611a3a6000830187611772565b611a476020830186611772565b611a5460408301856119d7565b8181036060830152611a668184611790565b905095945050505050565b6000602082019050611a866000830184611781565b92915050565b60006020820190508181036000830152611aa681846117c9565b905092915050565b60006020820190508181036000830152611ac781611833565b9050919050565b60006020820190508181036000830152611ae781611856565b9050919050565b60006020820190508181036000830152611b0781611879565b9050919050565b60006020820190508181036000830152611b278161189c565b9050919050565b60006020820190508181036000830152611b47816118bf565b9050919050565b60006020820190508181036000830152611b67816118e2565b9050919050565b60006020820190508181036000830152611b8781611905565b9050919050565b60006020820190508181036000830152611ba781611928565b9050919050565b60006020820190508181036000830152611bc78161194b565b9050919050565b60006020820190508181036000830152611be78161196e565b9050919050565b60006020820190508181036000830152611c0781611991565b9050919050565b60006020820190508181036000830152611c27816119b4565b9050919050565b6000602082019050611c4360008301846119d7565b92915050565b6000611c53611c64565b9050611c5f8282611e8f565b919050565b6000604051905090565b600067ffffffffffffffff821115611c8957611c88611fc7565b5b611c9282611ff6565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000611ced82611e11565b9150611cf883611e11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d2d57611d2c611f3a565b5b828201905092915050565b6000611d4382611e11565b9150611d4e83611e11565b925082611d5e57611d5d611f69565b5b828204905092915050565b6000611d7482611e11565b9150611d7f83611e11565b925082821015611d9257611d91611f3a565b5b828203905092915050565b6000611da882611df1565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611e48578082015181840152602081019050611e2d565b83811115611e57576000848401525b50505050565b60006002820490506001821680611e7557607f821691505b60208210811415611e8957611e88611f98565b5b50919050565b611e9882611ff6565b810181811067ffffffffffffffff82111715611eb757611eb6611fc7565b5b80604052505050565b6000611ecb82611e11565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611efe57611efd611f3a565b5b600182019050919050565b6000611f1482611e11565b9150611f1f83611e11565b925082611f2f57611f2e611f69565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61239e81611d9d565b81146123a957600080fd5b50565b6123b581611daf565b81146123c057600080fd5b50565b6123cc81611dbb565b81146123d757600080fd5b50565b6123e381611dc5565b81146123ee57600080fd5b50565b6123fa81611e11565b811461240557600080fd5b5056fea26469706673582212203e72f6dbd8821b32c9781db896e366c4aa7b2352d8225b4dddc4d8071ac119af64736f6c63430008020033";
static readonly bytecode = "0x608060405234801561001057600080fd5b50611247806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610f3f565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190611027565b61012461011f366004610f77565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610f16565b6103a8565b005b61014f61015f366004610dcc565b6104be565b61014f610172366004610dcc565b6104ef565b610124610185366004610f77565b61050a565b61019d610198366004610d80565b610581565b6040519081526020016100f3565b610104610608565b61014f6101c1366004610edc565b610617565b61014f6101d4366004610e07565b6106e9565b6101046101e7366004610f77565b610721565b6100e76101fa366004610d9a565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606065805461028b9061114c565b80601f01602080910402602001604051908101604052809291908181526020018280546102b79061114c565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b031661038c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b60006103b38261050a565b9050806001600160a01b0316836001600160a01b031614156104215760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610383565b336001600160a01b038216148061043d575061043d81336101fa565b6104af5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610383565b6104b98383610809565b505050565b6104c83382610877565b6104e45760405162461bcd60e51b81526004016103839061108c565b6104b983838361096e565b6104b9838383604051806020016040528060008152506106e9565b6000818152606760205260408120546001600160a01b0316806102745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610383565b60006001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610383565b506001600160a01b031660009081526068602052604090205490565b60606066805461028b9061114c565b6001600160a01b0382163314156106705760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610383565b336000818152606a602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516106dd911515815260200190565b60405180910390a35050565b6106f33383610877565b61070f5760405162461bcd60e51b81526004016103839061108c565b61071b84848484610b0e565b50505050565b6000818152606760205260409020546060906001600160a01b03166107a05760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610383565b60006107b760408051602081019091526000815290565b905060008151116107d75760405180602001604052806000815250610802565b806107e184610b41565b6040516020016107f2929190610fbb565b6040516020818303038152906040525b9392505050565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061083e8261050a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606760205260408120546001600160a01b03166108f05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610383565b60006108fb8361050a565b9050806001600160a01b0316846001600160a01b031614806109365750836001600160a01b031661092b8461030e565b6001600160a01b0316145b8061096657506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166109818261050a565b6001600160a01b0316146109e95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610383565b6001600160a01b038216610a4b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610383565b610a56600082610809565b6001600160a01b0383166000908152606860205260408120805460019290610a7f908490611109565b90915550506001600160a01b0382166000908152606860205260408120805460019290610aad9084906110dd565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610b1984848461096e565b610b2584848484610c5c565b61071b5760405162461bcd60e51b81526004016103839061103a565b606081610b6657506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610b905780610b7a81611187565b9150610b899050600a836110f5565b9150610b6a565b60008167ffffffffffffffff811115610bb957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610be3576020820181803683370190505b5090505b841561096657610bf8600183611109565b9150610c05600a866111a2565b610c109060306110dd565b60f81b818381518110610c3357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610c55600a866110f5565b9450610be7565b60006001600160a01b0384163b15610d5e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ca0903390899088908890600401610fea565b602060405180830381600087803b158015610cba57600080fd5b505af1925050508015610cea575060408051601f3d908101601f19168201909252610ce791810190610f5b565b60015b610d44573d808015610d18576040519150601f19603f3d011682016040523d82523d6000602084013e610d1d565b606091505b508051610d3c5760405162461bcd60e51b81526004016103839061103a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610966565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610d91578081fd5b61080282610d69565b60008060408385031215610dac578081fd5b610db583610d69565b9150610dc360208401610d69565b90509250929050565b600080600060608486031215610de0578081fd5b610de984610d69565b9250610df760208501610d69565b9150604084013590509250925092565b60008060008060808587031215610e1c578081fd5b610e2585610d69565b9350610e3360208601610d69565b925060408501359150606085013567ffffffffffffffff80821115610e56578283fd5b818701915087601f830112610e69578283fd5b813581811115610e7b57610e7b6111e2565b604051601f8201601f19908116603f01168101908382118183101715610ea357610ea36111e2565b816040528281528a6020848701011115610ebb578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610eee578182fd5b610ef783610d69565b915060208301358015158114610f0b578182fd5b809150509250929050565b60008060408385031215610f28578182fd5b610f3183610d69565b946020939093013593505050565b600060208284031215610f50578081fd5b8135610802816111f8565b600060208284031215610f6c578081fd5b8151610802816111f8565b600060208284031215610f88578081fd5b5035919050565b60008151808452610fa7816020860160208601611120565b601f01601f19169290920160200192915050565b60008351610fcd818460208801611120565b835190830190610fe1818360208801611120565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061101d90830184610f8f565b9695505050505050565b6000602082526108026020830184610f8f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156110f0576110f06111b6565b500190565b600082611104576111046111cc565b500490565b60008282101561111b5761111b6111b6565b500390565b60005b8381101561113b578181015183820152602001611123565b8381111561071b5750506000910152565b60028104600182168061116057607f821691505b6020821081141561118157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561119b5761119b6111b6565b5060010190565b6000826111b1576111b16111cc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461120e57600080fd5b5056fea26469706673582212207a9b6deeaf6cb6357688b264fc5a849c3768f0e4d5ecfedb90a9f9c3575d0d5464736f6c63430008020033";
static readonly abi: ({

@@ -17,0 +17,0 @@ anonymous: boolean;

@@ -121,15 +121,2 @@ "use strict";

{
internalType: "bytes32",
name: "c__0xca78f748",
type: "bytes32",
},
],
name: "c_0xca78f748",
outputs: [],
stateMutability: "pure",
type: "function",
},
{
inputs: [
{
internalType: "uint256",

@@ -351,3 +338,3 @@ name: "tokenId",

];
const _bytecode = "0x608060405234801561001057600080fd5b5061243e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c578063a22cb46511610066578063a22cb4651461025b578063b88d4fde14610277578063c87b56dd14610293578063e985e9c5146102c3576100ea565b806370a08231146101f15780637fdebd701461022157806395d89b411461023d576100ea565b8063095ea7b3116100c8578063095ea7b31461016d57806323b872dd1461018957806342842e0e146101a55780636352211e146101c1576100ea565b806301ffc9a7146100ef57806306fdde031461011f578063081812fc1461013d575b600080fd5b610109600480360381019061010491906116f7565b6102f3565b6040516101169190611a71565b60405180910390f35b6101276103d5565b6040516101349190611a8c565b60405180910390f35b61015760048036038101906101529190611749565b610467565b6040516101649190611a0a565b60405180910390f35b61018760048036038101906101829190611692565b6104ec565b005b6101a3600480360381019061019e919061158c565b610604565b005b6101bf60048036038101906101ba919061158c565b610664565b005b6101db60048036038101906101d69190611749565b610684565b6040516101e89190611a0a565b60405180910390f35b61020b60048036038101906102069190611527565b610736565b6040516102189190611c2e565b60405180910390f35b61023b600480360381019061023691906116ce565b6107ee565b005b6102456107f1565b6040516102529190611a8c565b60405180910390f35b61027560048036038101906102709190611656565b610883565b005b610291600480360381019061028c91906115db565b610a04565b005b6102ad60048036038101906102a89190611749565b610a66565b6040516102ba9190611a8c565b60405180910390f35b6102dd60048036038101906102d89190611550565b610b0d565b6040516102ea9190611a71565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103be57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806103ce57506103cd82610ba1565b5b9050919050565b6060606580546103e490611e5d565b80601f016020809104026020016040519081016040528092919081815260200182805461041090611e5d565b801561045d5780601f106104325761010080835404028352916020019161045d565b820191906000526020600020905b81548152906001019060200180831161044057829003601f168201915b5050505050905090565b600061047282610c0b565b6104b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a890611b8e565b60405180910390fd5b6069600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104f782610684565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055f90611bee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610587610c77565b73ffffffffffffffffffffffffffffffffffffffff1614806105b657506105b5816105b0610c77565b610b0d565b5b6105f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ec90611b2e565b60405180910390fd5b6105ff8383610c7f565b505050565b61061561060f610c77565b82610d38565b610654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064b90611c0e565b60405180910390fd5b61065f838383610e16565b505050565b61067f83838360405180602001604052806000815250610a04565b505050565b6000806067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561072d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072490611b6e565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156107a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079e90611b4e565b60405180910390fd5b606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b50565b60606066805461080090611e5d565b80601f016020809104026020016040519081016040528092919081815260200182805461082c90611e5d565b80156108795780601f1061084e57610100808354040283529160200191610879565b820191906000526020600020905b81548152906001019060200180831161085c57829003601f168201915b5050505050905090565b61088b610c77565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f090611aee565b60405180910390fd5b80606a6000610906610c77565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166109b3610c77565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109f89190611a71565b60405180910390a35050565b610a15610a0f610c77565b83610d38565b610a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4b90611c0e565b60405180910390fd5b610a6084848484611072565b50505050565b6060610a7182610c0b565b610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790611bce565b60405180910390fd5b6000610aba6110ce565b90506000815111610ada5760405180602001604052806000815250610b05565b80610ae4846110e5565b604051602001610af59291906119e6565b6040516020818303038152906040525b915050919050565b6000606a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816069600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610cf283610684565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610d4382610c0b565b610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7990611b0e565b60405180910390fd5b6000610d8d83610684565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610dfc57508373ffffffffffffffffffffffffffffffffffffffff16610de484610467565b73ffffffffffffffffffffffffffffffffffffffff16145b80610e0d5750610e0c8185610b0d565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610e3682610684565b73ffffffffffffffffffffffffffffffffffffffff1614610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8390611bae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610efc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef390611ace565b60405180910390fd5b610f07838383611292565b610f12600082610c7f565b6001606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f629190611d69565b925050819055506001606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610fb99190611ce2565b92505081905550816067600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b61107d848484610e16565b61108984848484611297565b6110c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bf90611aae565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b6060600082141561112d576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061128d565b600082905060005b6000821461115f57808061114890611ec0565b915050600a826111589190611d38565b9150611135565b60008167ffffffffffffffff8111156111a1577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156111d35781602001600182028036833780820191505090505b5090505b60008514611286576001826111ec9190611d69565b9150600a856111fb9190611f09565b60306112079190611ce2565b60f81b818381518110611243577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561127f9190611d38565b94506111d7565b8093505050505b919050565b505050565b60006112b88473ffffffffffffffffffffffffffffffffffffffff1661142e565b15611421578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026112e1610c77565b8786866040518563ffffffff1660e01b81526004016113039493929190611a25565b602060405180830381600087803b15801561131d57600080fd5b505af192505050801561134e57506040513d601f19601f8201168201806040525081019061134b9190611720565b60015b6113d1573d806000811461137e576040519150601f19603f3d011682016040523d82523d6000602084013e611383565b606091505b506000815114156113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090611aae565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611426565b600190505b949350505050565b600080823b905060008111915050919050565b600061145461144f84611c6e565b611c49565b90508281526020810184848401111561146c57600080fd5b611477848285611e1b565b509392505050565b60008135905061148e81612395565b92915050565b6000813590506114a3816123ac565b92915050565b6000813590506114b8816123c3565b92915050565b6000813590506114cd816123da565b92915050565b6000815190506114e2816123da565b92915050565b600082601f8301126114f957600080fd5b8135611509848260208601611441565b91505092915050565b600081359050611521816123f1565b92915050565b60006020828403121561153957600080fd5b60006115478482850161147f565b91505092915050565b6000806040838503121561156357600080fd5b60006115718582860161147f565b92505060206115828582860161147f565b9150509250929050565b6000806000606084860312156115a157600080fd5b60006115af8682870161147f565b93505060206115c08682870161147f565b92505060406115d186828701611512565b9150509250925092565b600080600080608085870312156115f157600080fd5b60006115ff8782880161147f565b94505060206116108782880161147f565b935050604061162187828801611512565b925050606085013567ffffffffffffffff81111561163e57600080fd5b61164a878288016114e8565b91505092959194509250565b6000806040838503121561166957600080fd5b60006116778582860161147f565b925050602061168885828601611494565b9150509250929050565b600080604083850312156116a557600080fd5b60006116b38582860161147f565b92505060206116c485828601611512565b9150509250929050565b6000602082840312156116e057600080fd5b60006116ee848285016114a9565b91505092915050565b60006020828403121561170957600080fd5b6000611717848285016114be565b91505092915050565b60006020828403121561173257600080fd5b6000611740848285016114d3565b91505092915050565b60006020828403121561175b57600080fd5b600061176984828501611512565b91505092915050565b61177b81611d9d565b82525050565b61178a81611daf565b82525050565b600061179b82611c9f565b6117a58185611cb5565b93506117b5818560208601611e2a565b6117be81611ff6565b840191505092915050565b60006117d482611caa565b6117de8185611cc6565b93506117ee818560208601611e2a565b6117f781611ff6565b840191505092915050565b600061180d82611caa565b6118178185611cd7565b9350611827818560208601611e2a565b80840191505092915050565b6000611840603283611cc6565b915061184b82612007565b604082019050919050565b6000611863602483611cc6565b915061186e82612056565b604082019050919050565b6000611886601983611cc6565b9150611891826120a5565b602082019050919050565b60006118a9602c83611cc6565b91506118b4826120ce565b604082019050919050565b60006118cc603883611cc6565b91506118d78261211d565b604082019050919050565b60006118ef602a83611cc6565b91506118fa8261216c565b604082019050919050565b6000611912602983611cc6565b915061191d826121bb565b604082019050919050565b6000611935602c83611cc6565b91506119408261220a565b604082019050919050565b6000611958602983611cc6565b915061196382612259565b604082019050919050565b600061197b602f83611cc6565b9150611986826122a8565b604082019050919050565b600061199e602183611cc6565b91506119a9826122f7565b604082019050919050565b60006119c1603183611cc6565b91506119cc82612346565b604082019050919050565b6119e081611e11565b82525050565b60006119f28285611802565b91506119fe8284611802565b91508190509392505050565b6000602082019050611a1f6000830184611772565b92915050565b6000608082019050611a3a6000830187611772565b611a476020830186611772565b611a5460408301856119d7565b8181036060830152611a668184611790565b905095945050505050565b6000602082019050611a866000830184611781565b92915050565b60006020820190508181036000830152611aa681846117c9565b905092915050565b60006020820190508181036000830152611ac781611833565b9050919050565b60006020820190508181036000830152611ae781611856565b9050919050565b60006020820190508181036000830152611b0781611879565b9050919050565b60006020820190508181036000830152611b278161189c565b9050919050565b60006020820190508181036000830152611b47816118bf565b9050919050565b60006020820190508181036000830152611b67816118e2565b9050919050565b60006020820190508181036000830152611b8781611905565b9050919050565b60006020820190508181036000830152611ba781611928565b9050919050565b60006020820190508181036000830152611bc78161194b565b9050919050565b60006020820190508181036000830152611be78161196e565b9050919050565b60006020820190508181036000830152611c0781611991565b9050919050565b60006020820190508181036000830152611c27816119b4565b9050919050565b6000602082019050611c4360008301846119d7565b92915050565b6000611c53611c64565b9050611c5f8282611e8f565b919050565b6000604051905090565b600067ffffffffffffffff821115611c8957611c88611fc7565b5b611c9282611ff6565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000611ced82611e11565b9150611cf883611e11565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d2d57611d2c611f3a565b5b828201905092915050565b6000611d4382611e11565b9150611d4e83611e11565b925082611d5e57611d5d611f69565b5b828204905092915050565b6000611d7482611e11565b9150611d7f83611e11565b925082821015611d9257611d91611f3a565b5b828203905092915050565b6000611da882611df1565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611e48578082015181840152602081019050611e2d565b83811115611e57576000848401525b50505050565b60006002820490506001821680611e7557607f821691505b60208210811415611e8957611e88611f98565b5b50919050565b611e9882611ff6565b810181811067ffffffffffffffff82111715611eb757611eb6611fc7565b5b80604052505050565b6000611ecb82611e11565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611efe57611efd611f3a565b5b600182019050919050565b6000611f1482611e11565b9150611f1f83611e11565b925082611f2f57611f2e611f69565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61239e81611d9d565b81146123a957600080fd5b50565b6123b581611daf565b81146123c057600080fd5b50565b6123cc81611dbb565b81146123d757600080fd5b50565b6123e381611dc5565b81146123ee57600080fd5b50565b6123fa81611e11565b811461240557600080fd5b5056fea26469706673582212203e72f6dbd8821b32c9781db896e366c4aa7b2352d8225b4dddc4d8071ac119af64736f6c63430008020033";
const _bytecode = "0x608060405234801561001057600080fd5b50611247806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610f3f565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190611027565b61012461011f366004610f77565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610f16565b6103a8565b005b61014f61015f366004610dcc565b6104be565b61014f610172366004610dcc565b6104ef565b610124610185366004610f77565b61050a565b61019d610198366004610d80565b610581565b6040519081526020016100f3565b610104610608565b61014f6101c1366004610edc565b610617565b61014f6101d4366004610e07565b6106e9565b6101046101e7366004610f77565b610721565b6100e76101fa366004610d9a565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606065805461028b9061114c565b80601f01602080910402602001604051908101604052809291908181526020018280546102b79061114c565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b031661038c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b60006103b38261050a565b9050806001600160a01b0316836001600160a01b031614156104215760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610383565b336001600160a01b038216148061043d575061043d81336101fa565b6104af5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610383565b6104b98383610809565b505050565b6104c83382610877565b6104e45760405162461bcd60e51b81526004016103839061108c565b6104b983838361096e565b6104b9838383604051806020016040528060008152506106e9565b6000818152606760205260408120546001600160a01b0316806102745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610383565b60006001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610383565b506001600160a01b031660009081526068602052604090205490565b60606066805461028b9061114c565b6001600160a01b0382163314156106705760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610383565b336000818152606a602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516106dd911515815260200190565b60405180910390a35050565b6106f33383610877565b61070f5760405162461bcd60e51b81526004016103839061108c565b61071b84848484610b0e565b50505050565b6000818152606760205260409020546060906001600160a01b03166107a05760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610383565b60006107b760408051602081019091526000815290565b905060008151116107d75760405180602001604052806000815250610802565b806107e184610b41565b6040516020016107f2929190610fbb565b6040516020818303038152906040525b9392505050565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061083e8261050a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606760205260408120546001600160a01b03166108f05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610383565b60006108fb8361050a565b9050806001600160a01b0316846001600160a01b031614806109365750836001600160a01b031661092b8461030e565b6001600160a01b0316145b8061096657506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166109818261050a565b6001600160a01b0316146109e95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610383565b6001600160a01b038216610a4b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610383565b610a56600082610809565b6001600160a01b0383166000908152606860205260408120805460019290610a7f908490611109565b90915550506001600160a01b0382166000908152606860205260408120805460019290610aad9084906110dd565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610b1984848461096e565b610b2584848484610c5c565b61071b5760405162461bcd60e51b81526004016103839061103a565b606081610b6657506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610b905780610b7a81611187565b9150610b899050600a836110f5565b9150610b6a565b60008167ffffffffffffffff811115610bb957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610be3576020820181803683370190505b5090505b841561096657610bf8600183611109565b9150610c05600a866111a2565b610c109060306110dd565b60f81b818381518110610c3357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610c55600a866110f5565b9450610be7565b60006001600160a01b0384163b15610d5e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ca0903390899088908890600401610fea565b602060405180830381600087803b158015610cba57600080fd5b505af1925050508015610cea575060408051601f3d908101601f19168201909252610ce791810190610f5b565b60015b610d44573d808015610d18576040519150601f19603f3d011682016040523d82523d6000602084013e610d1d565b606091505b508051610d3c5760405162461bcd60e51b81526004016103839061103a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610966565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610d91578081fd5b61080282610d69565b60008060408385031215610dac578081fd5b610db583610d69565b9150610dc360208401610d69565b90509250929050565b600080600060608486031215610de0578081fd5b610de984610d69565b9250610df760208501610d69565b9150604084013590509250925092565b60008060008060808587031215610e1c578081fd5b610e2585610d69565b9350610e3360208601610d69565b925060408501359150606085013567ffffffffffffffff80821115610e56578283fd5b818701915087601f830112610e69578283fd5b813581811115610e7b57610e7b6111e2565b604051601f8201601f19908116603f01168101908382118183101715610ea357610ea36111e2565b816040528281528a6020848701011115610ebb578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610eee578182fd5b610ef783610d69565b915060208301358015158114610f0b578182fd5b809150509250929050565b60008060408385031215610f28578182fd5b610f3183610d69565b946020939093013593505050565b600060208284031215610f50578081fd5b8135610802816111f8565b600060208284031215610f6c578081fd5b8151610802816111f8565b600060208284031215610f88578081fd5b5035919050565b60008151808452610fa7816020860160208601611120565b601f01601f19169290920160200192915050565b60008351610fcd818460208801611120565b835190830190610fe1818360208801611120565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061101d90830184610f8f565b9695505050505050565b6000602082526108026020830184610f8f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156110f0576110f06111b6565b500190565b600082611104576111046111cc565b500490565b60008282101561111b5761111b6111b6565b500390565b60005b8381101561113b578181015183820152602001611123565b8381111561071b5750506000910152565b60028104600182168061116057607f821691505b6020821081141561118157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561119b5761119b6111b6565b5060010190565b6000826111b1576111b16111cc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461120e57600080fd5b5056fea26469706673582212207a9b6deeaf6cb6357688b264fc5a849c3768f0e4d5ecfedb90a9f9c3575d0d5464736f6c63430008020033";
class ERC721Impl__factory extends ethers_1.ContractFactory {

@@ -354,0 +341,0 @@ constructor(signer) {

@@ -14,3 +14,3 @@ import { Signer, ContractFactory, Overrides } from "ethers";

connect(signer: Signer): ERC721Upgradeable__factory;
static readonly bytecode = "0x608060405234801561001057600080fd5b506123a5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610224578063b88d4fde14610240578063c87b56dd1461025c578063e985e9c51461028c576100cf565b80636352211e146101a657806370a08231146101d657806395d89b4114610206576100cf565b806301ffc9a7146100d457806306fdde0314610104578063081812fc14610122578063095ea7b31461015257806323b872dd1461016e57806342842e0e1461018a575b600080fd5b6100ee60048036038101906100e9919061167f565b6102bc565b6040516100fb91906119f9565b60405180910390f35b61010c61039e565b6040516101199190611a14565b60405180910390f35b61013c600480360381019061013791906116d1565b610430565b6040516101499190611992565b60405180910390f35b61016c60048036038101906101679190611643565b6104b5565b005b6101886004803603810190610183919061153d565b6105cd565b005b6101a4600480360381019061019f919061153d565b61062d565b005b6101c060048036038101906101bb91906116d1565b61064d565b6040516101cd9190611992565b60405180910390f35b6101f060048036038101906101eb91906114d8565b6106ff565b6040516101fd9190611bb6565b60405180910390f35b61020e6107b7565b60405161021b9190611a14565b60405180910390f35b61023e60048036038101906102399190611607565b610849565b005b61025a6004803603810190610255919061158c565b6109ca565b005b610276600480360381019061027191906116d1565b610a2c565b6040516102839190611a14565b60405180910390f35b6102a660048036038101906102a19190611501565b610ad3565b6040516102b391906119f9565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610397575061039682610b67565b5b9050919050565b6060606580546103ad90611ddb565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990611ddb565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050905090565b600061043b82610bd1565b61047a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047190611b16565b60405180910390fd5b6069600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104c08261064d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052890611b76565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610550610c3d565b73ffffffffffffffffffffffffffffffffffffffff16148061057f575061057e81610579610c3d565b610ad3565b5b6105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b590611ab6565b60405180910390fd5b6105c88383610c45565b505050565b6105de6105d8610c3d565b82610cfe565b61061d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061490611b96565b60405180910390fd5b610628838383610ddc565b505050565b610648838383604051806020016040528060008152506109ca565b505050565b6000806067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ed90611af6565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076790611ad6565b60405180910390fd5b606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060606680546107c690611ddb565b80601f01602080910402602001604051908101604052809291908181526020018280546107f290611ddb565b801561083f5780601f106108145761010080835404028352916020019161083f565b820191906000526020600020905b81548152906001019060200180831161082257829003601f168201915b5050505050905090565b610851610c3d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b690611a76565b60405180910390fd5b80606a60006108cc610c3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610979610c3d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109be91906119f9565b60405180910390a35050565b6109db6109d5610c3d565b83610cfe565b610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1190611b96565b60405180910390fd5b610a2684848484611038565b50505050565b6060610a3782610bd1565b610a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6d90611b56565b60405180910390fd5b6000610a80611094565b90506000815111610aa05760405180602001604052806000815250610acb565b80610aaa846110ab565b604051602001610abb92919061196e565b6040516020818303038152906040525b915050919050565b6000606a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816069600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610cb88361064d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610d0982610bd1565b610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90611a96565b60405180910390fd5b6000610d538361064d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610dc257508373ffffffffffffffffffffffffffffffffffffffff16610daa84610430565b73ffffffffffffffffffffffffffffffffffffffff16145b80610dd35750610dd28185610ad3565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610dfc8261064d565b73ffffffffffffffffffffffffffffffffffffffff1614610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990611b36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990611a56565b60405180910390fd5b610ecd838383611258565b610ed8600082610c45565b6001606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f289190611cf1565b925050819055506001606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f7f9190611c6a565b92505081905550816067600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611043848484610ddc565b61104f8484848461125d565b61108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590611a36565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060008214156110f3576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611253565b600082905060005b6000821461112557808061110e90611e3e565b915050600a8261111e9190611cc0565b91506110fb565b60008167ffffffffffffffff811115611167577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156111995781602001600182028036833780820191505090505b5090505b6000851461124c576001826111b29190611cf1565b9150600a856111c19190611e87565b60306111cd9190611c6a565b60f81b818381518110611209577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856112459190611cc0565b945061119d565b8093505050505b919050565b505050565b600061127e8473ffffffffffffffffffffffffffffffffffffffff166113f4565b156113e7578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026112a7610c3d565b8786866040518563ffffffff1660e01b81526004016112c994939291906119ad565b602060405180830381600087803b1580156112e357600080fd5b505af192505050801561131457506040513d601f19601f8201168201806040525081019061131191906116a8565b60015b611397573d8060008114611344576040519150601f19603f3d011682016040523d82523d6000602084013e611349565b606091505b5060008151141561138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138690611a36565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506113ec565b600190505b949350505050565b600080823b905060008111915050919050565b600061141a61141584611bf6565b611bd1565b90508281526020810184848401111561143257600080fd5b61143d848285611d99565b509392505050565b60008135905061145481612313565b92915050565b6000813590506114698161232a565b92915050565b60008135905061147e81612341565b92915050565b60008151905061149381612341565b92915050565b600082601f8301126114aa57600080fd5b81356114ba848260208601611407565b91505092915050565b6000813590506114d281612358565b92915050565b6000602082840312156114ea57600080fd5b60006114f884828501611445565b91505092915050565b6000806040838503121561151457600080fd5b600061152285828601611445565b925050602061153385828601611445565b9150509250929050565b60008060006060848603121561155257600080fd5b600061156086828701611445565b935050602061157186828701611445565b9250506040611582868287016114c3565b9150509250925092565b600080600080608085870312156115a257600080fd5b60006115b087828801611445565b94505060206115c187828801611445565b93505060406115d2878288016114c3565b925050606085013567ffffffffffffffff8111156115ef57600080fd5b6115fb87828801611499565b91505092959194509250565b6000806040838503121561161a57600080fd5b600061162885828601611445565b92505060206116398582860161145a565b9150509250929050565b6000806040838503121561165657600080fd5b600061166485828601611445565b9250506020611675858286016114c3565b9150509250929050565b60006020828403121561169157600080fd5b600061169f8482850161146f565b91505092915050565b6000602082840312156116ba57600080fd5b60006116c884828501611484565b91505092915050565b6000602082840312156116e357600080fd5b60006116f1848285016114c3565b91505092915050565b61170381611d25565b82525050565b61171281611d37565b82525050565b600061172382611c27565b61172d8185611c3d565b935061173d818560208601611da8565b61174681611f74565b840191505092915050565b600061175c82611c32565b6117668185611c4e565b9350611776818560208601611da8565b61177f81611f74565b840191505092915050565b600061179582611c32565b61179f8185611c5f565b93506117af818560208601611da8565b80840191505092915050565b60006117c8603283611c4e565b91506117d382611f85565b604082019050919050565b60006117eb602483611c4e565b91506117f682611fd4565b604082019050919050565b600061180e601983611c4e565b915061181982612023565b602082019050919050565b6000611831602c83611c4e565b915061183c8261204c565b604082019050919050565b6000611854603883611c4e565b915061185f8261209b565b604082019050919050565b6000611877602a83611c4e565b9150611882826120ea565b604082019050919050565b600061189a602983611c4e565b91506118a582612139565b604082019050919050565b60006118bd602c83611c4e565b91506118c882612188565b604082019050919050565b60006118e0602983611c4e565b91506118eb826121d7565b604082019050919050565b6000611903602f83611c4e565b915061190e82612226565b604082019050919050565b6000611926602183611c4e565b915061193182612275565b604082019050919050565b6000611949603183611c4e565b9150611954826122c4565b604082019050919050565b61196881611d8f565b82525050565b600061197a828561178a565b9150611986828461178a565b91508190509392505050565b60006020820190506119a760008301846116fa565b92915050565b60006080820190506119c260008301876116fa565b6119cf60208301866116fa565b6119dc604083018561195f565b81810360608301526119ee8184611718565b905095945050505050565b6000602082019050611a0e6000830184611709565b92915050565b60006020820190508181036000830152611a2e8184611751565b905092915050565b60006020820190508181036000830152611a4f816117bb565b9050919050565b60006020820190508181036000830152611a6f816117de565b9050919050565b60006020820190508181036000830152611a8f81611801565b9050919050565b60006020820190508181036000830152611aaf81611824565b9050919050565b60006020820190508181036000830152611acf81611847565b9050919050565b60006020820190508181036000830152611aef8161186a565b9050919050565b60006020820190508181036000830152611b0f8161188d565b9050919050565b60006020820190508181036000830152611b2f816118b0565b9050919050565b60006020820190508181036000830152611b4f816118d3565b9050919050565b60006020820190508181036000830152611b6f816118f6565b9050919050565b60006020820190508181036000830152611b8f81611919565b9050919050565b60006020820190508181036000830152611baf8161193c565b9050919050565b6000602082019050611bcb600083018461195f565b92915050565b6000611bdb611bec565b9050611be78282611e0d565b919050565b6000604051905090565b600067ffffffffffffffff821115611c1157611c10611f45565b5b611c1a82611f74565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000611c7582611d8f565b9150611c8083611d8f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611cb557611cb4611eb8565b5b828201905092915050565b6000611ccb82611d8f565b9150611cd683611d8f565b925082611ce657611ce5611ee7565b5b828204905092915050565b6000611cfc82611d8f565b9150611d0783611d8f565b925082821015611d1a57611d19611eb8565b5b828203905092915050565b6000611d3082611d6f565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611dc6578082015181840152602081019050611dab565b83811115611dd5576000848401525b50505050565b60006002820490506001821680611df357607f821691505b60208210811415611e0757611e06611f16565b5b50919050565b611e1682611f74565b810181811067ffffffffffffffff82111715611e3557611e34611f45565b5b80604052505050565b6000611e4982611d8f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611e7c57611e7b611eb8565b5b600182019050919050565b6000611e9282611d8f565b9150611e9d83611d8f565b925082611ead57611eac611ee7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61231c81611d25565b811461232757600080fd5b50565b61233381611d37565b811461233e57600080fd5b50565b61234a81611d43565b811461235557600080fd5b50565b61236181611d8f565b811461236c57600080fd5b5056fea26469706673582212202a85b89943708e8d6cb1119ee08ed779c134015796cc53714b91766d16833ca664736f6c63430008020033";
static readonly bytecode = "0x608060405234801561001057600080fd5b50611247806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610f3f565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190611027565b61012461011f366004610f77565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610f16565b6103a8565b005b61014f61015f366004610dcc565b6104be565b61014f610172366004610dcc565b6104ef565b610124610185366004610f77565b61050a565b61019d610198366004610d80565b610581565b6040519081526020016100f3565b610104610608565b61014f6101c1366004610edc565b610617565b61014f6101d4366004610e07565b6106e9565b6101046101e7366004610f77565b610721565b6100e76101fa366004610d9a565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606065805461028b9061114c565b80601f01602080910402602001604051908101604052809291908181526020018280546102b79061114c565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b031661038c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b60006103b38261050a565b9050806001600160a01b0316836001600160a01b031614156104215760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610383565b336001600160a01b038216148061043d575061043d81336101fa565b6104af5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610383565b6104b98383610809565b505050565b6104c83382610877565b6104e45760405162461bcd60e51b81526004016103839061108c565b6104b983838361096e565b6104b9838383604051806020016040528060008152506106e9565b6000818152606760205260408120546001600160a01b0316806102745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610383565b60006001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610383565b506001600160a01b031660009081526068602052604090205490565b60606066805461028b9061114c565b6001600160a01b0382163314156106705760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610383565b336000818152606a602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516106dd911515815260200190565b60405180910390a35050565b6106f33383610877565b61070f5760405162461bcd60e51b81526004016103839061108c565b61071b84848484610b0e565b50505050565b6000818152606760205260409020546060906001600160a01b03166107a05760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610383565b60006107b760408051602081019091526000815290565b905060008151116107d75760405180602001604052806000815250610802565b806107e184610b41565b6040516020016107f2929190610fbb565b6040516020818303038152906040525b9392505050565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061083e8261050a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606760205260408120546001600160a01b03166108f05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610383565b60006108fb8361050a565b9050806001600160a01b0316846001600160a01b031614806109365750836001600160a01b031661092b8461030e565b6001600160a01b0316145b8061096657506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166109818261050a565b6001600160a01b0316146109e95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610383565b6001600160a01b038216610a4b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610383565b610a56600082610809565b6001600160a01b0383166000908152606860205260408120805460019290610a7f908490611109565b90915550506001600160a01b0382166000908152606860205260408120805460019290610aad9084906110dd565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610b1984848461096e565b610b2584848484610c5c565b61071b5760405162461bcd60e51b81526004016103839061103a565b606081610b6657506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610b905780610b7a81611187565b9150610b899050600a836110f5565b9150610b6a565b60008167ffffffffffffffff811115610bb957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610be3576020820181803683370190505b5090505b841561096657610bf8600183611109565b9150610c05600a866111a2565b610c109060306110dd565b60f81b818381518110610c3357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610c55600a866110f5565b9450610be7565b60006001600160a01b0384163b15610d5e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ca0903390899088908890600401610fea565b602060405180830381600087803b158015610cba57600080fd5b505af1925050508015610cea575060408051601f3d908101601f19168201909252610ce791810190610f5b565b60015b610d44573d808015610d18576040519150601f19603f3d011682016040523d82523d6000602084013e610d1d565b606091505b508051610d3c5760405162461bcd60e51b81526004016103839061103a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610966565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610d91578081fd5b61080282610d69565b60008060408385031215610dac578081fd5b610db583610d69565b9150610dc360208401610d69565b90509250929050565b600080600060608486031215610de0578081fd5b610de984610d69565b9250610df760208501610d69565b9150604084013590509250925092565b60008060008060808587031215610e1c578081fd5b610e2585610d69565b9350610e3360208601610d69565b925060408501359150606085013567ffffffffffffffff80821115610e56578283fd5b818701915087601f830112610e69578283fd5b813581811115610e7b57610e7b6111e2565b604051601f8201601f19908116603f01168101908382118183101715610ea357610ea36111e2565b816040528281528a6020848701011115610ebb578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610eee578182fd5b610ef783610d69565b915060208301358015158114610f0b578182fd5b809150509250929050565b60008060408385031215610f28578182fd5b610f3183610d69565b946020939093013593505050565b600060208284031215610f50578081fd5b8135610802816111f8565b600060208284031215610f6c578081fd5b8151610802816111f8565b600060208284031215610f88578081fd5b5035919050565b60008151808452610fa7816020860160208601611120565b601f01601f19169290920160200192915050565b60008351610fcd818460208801611120565b835190830190610fe1818360208801611120565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061101d90830184610f8f565b9695505050505050565b6000602082526108026020830184610f8f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156110f0576110f06111b6565b500190565b600082611104576111046111cc565b500490565b60008282101561111b5761111b6111b6565b500390565b60005b8381101561113b578181015183820152602001611123565b8381111561071b5750506000910152565b60028104600182168061116057607f821691505b6020821081141561118157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561119b5761119b6111b6565b5060010190565b6000826111b1576111b16111cc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461120e57600080fd5b5056fea26469706673582212206fcb253d818546054737de2e33568fa2b258b78d0b7f3c16a61df3022ecf285d64736f6c63430008020033";
static readonly abi: ({

@@ -17,0 +17,0 @@ anonymous: boolean;

@@ -337,3 +337,3 @@ "use strict";

];
const _bytecode = "0x608060405234801561001057600080fd5b506123a5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb46514610224578063b88d4fde14610240578063c87b56dd1461025c578063e985e9c51461028c576100cf565b80636352211e146101a657806370a08231146101d657806395d89b4114610206576100cf565b806301ffc9a7146100d457806306fdde0314610104578063081812fc14610122578063095ea7b31461015257806323b872dd1461016e57806342842e0e1461018a575b600080fd5b6100ee60048036038101906100e9919061167f565b6102bc565b6040516100fb91906119f9565b60405180910390f35b61010c61039e565b6040516101199190611a14565b60405180910390f35b61013c600480360381019061013791906116d1565b610430565b6040516101499190611992565b60405180910390f35b61016c60048036038101906101679190611643565b6104b5565b005b6101886004803603810190610183919061153d565b6105cd565b005b6101a4600480360381019061019f919061153d565b61062d565b005b6101c060048036038101906101bb91906116d1565b61064d565b6040516101cd9190611992565b60405180910390f35b6101f060048036038101906101eb91906114d8565b6106ff565b6040516101fd9190611bb6565b60405180910390f35b61020e6107b7565b60405161021b9190611a14565b60405180910390f35b61023e60048036038101906102399190611607565b610849565b005b61025a6004803603810190610255919061158c565b6109ca565b005b610276600480360381019061027191906116d1565b610a2c565b6040516102839190611a14565b60405180910390f35b6102a660048036038101906102a19190611501565b610ad3565b6040516102b391906119f9565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061038757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610397575061039682610b67565b5b9050919050565b6060606580546103ad90611ddb565b80601f01602080910402602001604051908101604052809291908181526020018280546103d990611ddb565b80156104265780601f106103fb57610100808354040283529160200191610426565b820191906000526020600020905b81548152906001019060200180831161040957829003601f168201915b5050505050905090565b600061043b82610bd1565b61047a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047190611b16565b60405180910390fd5b6069600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006104c08261064d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610531576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052890611b76565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610550610c3d565b73ffffffffffffffffffffffffffffffffffffffff16148061057f575061057e81610579610c3d565b610ad3565b5b6105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b590611ab6565b60405180910390fd5b6105c88383610c45565b505050565b6105de6105d8610c3d565b82610cfe565b61061d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061490611b96565b60405180910390fd5b610628838383610ddc565b505050565b610648838383604051806020016040528060008152506109ca565b505050565b6000806067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156106f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ed90611af6565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610770576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076790611ad6565b60405180910390fd5b606860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060606680546107c690611ddb565b80601f01602080910402602001604051908101604052809291908181526020018280546107f290611ddb565b801561083f5780601f106108145761010080835404028352916020019161083f565b820191906000526020600020905b81548152906001019060200180831161082257829003601f168201915b5050505050905090565b610851610c3d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b690611a76565b60405180910390fd5b80606a60006108cc610c3d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16610979610c3d565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516109be91906119f9565b60405180910390a35050565b6109db6109d5610c3d565b83610cfe565b610a1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1190611b96565b60405180910390fd5b610a2684848484611038565b50505050565b6060610a3782610bd1565b610a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6d90611b56565b60405180910390fd5b6000610a80611094565b90506000815111610aa05760405180602001604052806000815250610acb565b80610aaa846110ab565b604051602001610abb92919061196e565b6040516020818303038152906040525b915050919050565b6000606a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166067600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816069600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610cb88361064d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000610d0982610bd1565b610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90611a96565b60405180910390fd5b6000610d538361064d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610dc257508373ffffffffffffffffffffffffffffffffffffffff16610daa84610430565b73ffffffffffffffffffffffffffffffffffffffff16145b80610dd35750610dd28185610ad3565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610dfc8261064d565b73ffffffffffffffffffffffffffffffffffffffff1614610e52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4990611b36565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990611a56565b60405180910390fd5b610ecd838383611258565b610ed8600082610c45565b6001606860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f289190611cf1565b925050819055506001606860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f7f9190611c6a565b92505081905550816067600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611043848484610ddc565b61104f8484848461125d565b61108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590611a36565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060008214156110f3576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611253565b600082905060005b6000821461112557808061110e90611e3e565b915050600a8261111e9190611cc0565b91506110fb565b60008167ffffffffffffffff811115611167577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156111995781602001600182028036833780820191505090505b5090505b6000851461124c576001826111b29190611cf1565b9150600a856111c19190611e87565b60306111cd9190611c6a565b60f81b818381518110611209577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856112459190611cc0565b945061119d565b8093505050505b919050565b505050565b600061127e8473ffffffffffffffffffffffffffffffffffffffff166113f4565b156113e7578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026112a7610c3d565b8786866040518563ffffffff1660e01b81526004016112c994939291906119ad565b602060405180830381600087803b1580156112e357600080fd5b505af192505050801561131457506040513d601f19601f8201168201806040525081019061131191906116a8565b60015b611397573d8060008114611344576040519150601f19603f3d011682016040523d82523d6000602084013e611349565b606091505b5060008151141561138f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138690611a36565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506113ec565b600190505b949350505050565b600080823b905060008111915050919050565b600061141a61141584611bf6565b611bd1565b90508281526020810184848401111561143257600080fd5b61143d848285611d99565b509392505050565b60008135905061145481612313565b92915050565b6000813590506114698161232a565b92915050565b60008135905061147e81612341565b92915050565b60008151905061149381612341565b92915050565b600082601f8301126114aa57600080fd5b81356114ba848260208601611407565b91505092915050565b6000813590506114d281612358565b92915050565b6000602082840312156114ea57600080fd5b60006114f884828501611445565b91505092915050565b6000806040838503121561151457600080fd5b600061152285828601611445565b925050602061153385828601611445565b9150509250929050565b60008060006060848603121561155257600080fd5b600061156086828701611445565b935050602061157186828701611445565b9250506040611582868287016114c3565b9150509250925092565b600080600080608085870312156115a257600080fd5b60006115b087828801611445565b94505060206115c187828801611445565b93505060406115d2878288016114c3565b925050606085013567ffffffffffffffff8111156115ef57600080fd5b6115fb87828801611499565b91505092959194509250565b6000806040838503121561161a57600080fd5b600061162885828601611445565b92505060206116398582860161145a565b9150509250929050565b6000806040838503121561165657600080fd5b600061166485828601611445565b9250506020611675858286016114c3565b9150509250929050565b60006020828403121561169157600080fd5b600061169f8482850161146f565b91505092915050565b6000602082840312156116ba57600080fd5b60006116c884828501611484565b91505092915050565b6000602082840312156116e357600080fd5b60006116f1848285016114c3565b91505092915050565b61170381611d25565b82525050565b61171281611d37565b82525050565b600061172382611c27565b61172d8185611c3d565b935061173d818560208601611da8565b61174681611f74565b840191505092915050565b600061175c82611c32565b6117668185611c4e565b9350611776818560208601611da8565b61177f81611f74565b840191505092915050565b600061179582611c32565b61179f8185611c5f565b93506117af818560208601611da8565b80840191505092915050565b60006117c8603283611c4e565b91506117d382611f85565b604082019050919050565b60006117eb602483611c4e565b91506117f682611fd4565b604082019050919050565b600061180e601983611c4e565b915061181982612023565b602082019050919050565b6000611831602c83611c4e565b915061183c8261204c565b604082019050919050565b6000611854603883611c4e565b915061185f8261209b565b604082019050919050565b6000611877602a83611c4e565b9150611882826120ea565b604082019050919050565b600061189a602983611c4e565b91506118a582612139565b604082019050919050565b60006118bd602c83611c4e565b91506118c882612188565b604082019050919050565b60006118e0602983611c4e565b91506118eb826121d7565b604082019050919050565b6000611903602f83611c4e565b915061190e82612226565b604082019050919050565b6000611926602183611c4e565b915061193182612275565b604082019050919050565b6000611949603183611c4e565b9150611954826122c4565b604082019050919050565b61196881611d8f565b82525050565b600061197a828561178a565b9150611986828461178a565b91508190509392505050565b60006020820190506119a760008301846116fa565b92915050565b60006080820190506119c260008301876116fa565b6119cf60208301866116fa565b6119dc604083018561195f565b81810360608301526119ee8184611718565b905095945050505050565b6000602082019050611a0e6000830184611709565b92915050565b60006020820190508181036000830152611a2e8184611751565b905092915050565b60006020820190508181036000830152611a4f816117bb565b9050919050565b60006020820190508181036000830152611a6f816117de565b9050919050565b60006020820190508181036000830152611a8f81611801565b9050919050565b60006020820190508181036000830152611aaf81611824565b9050919050565b60006020820190508181036000830152611acf81611847565b9050919050565b60006020820190508181036000830152611aef8161186a565b9050919050565b60006020820190508181036000830152611b0f8161188d565b9050919050565b60006020820190508181036000830152611b2f816118b0565b9050919050565b60006020820190508181036000830152611b4f816118d3565b9050919050565b60006020820190508181036000830152611b6f816118f6565b9050919050565b60006020820190508181036000830152611b8f81611919565b9050919050565b60006020820190508181036000830152611baf8161193c565b9050919050565b6000602082019050611bcb600083018461195f565b92915050565b6000611bdb611bec565b9050611be78282611e0d565b919050565b6000604051905090565b600067ffffffffffffffff821115611c1157611c10611f45565b5b611c1a82611f74565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000611c7582611d8f565b9150611c8083611d8f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611cb557611cb4611eb8565b5b828201905092915050565b6000611ccb82611d8f565b9150611cd683611d8f565b925082611ce657611ce5611ee7565b5b828204905092915050565b6000611cfc82611d8f565b9150611d0783611d8f565b925082821015611d1a57611d19611eb8565b5b828203905092915050565b6000611d3082611d6f565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611dc6578082015181840152602081019050611dab565b83811115611dd5576000848401525b50505050565b60006002820490506001821680611df357607f821691505b60208210811415611e0757611e06611f16565b5b50919050565b611e1682611f74565b810181811067ffffffffffffffff82111715611e3557611e34611f45565b5b80604052505050565b6000611e4982611d8f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611e7c57611e7b611eb8565b5b600182019050919050565b6000611e9282611d8f565b9150611e9d83611d8f565b925082611ead57611eac611ee7565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61231c81611d25565b811461232757600080fd5b50565b61233381611d37565b811461233e57600080fd5b50565b61234a81611d43565b811461235557600080fd5b50565b61236181611d8f565b811461236c57600080fd5b5056fea26469706673582212202a85b89943708e8d6cb1119ee08ed779c134015796cc53714b91766d16833ca664736f6c63430008020033";
const _bytecode = "0x608060405234801561001057600080fd5b50611247806100206000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80636352211e1161008c578063a22cb46511610066578063a22cb465146101b3578063b88d4fde146101c6578063c87b56dd146101d9578063e985e9c5146101ec576100cf565b80636352211e1461017757806370a082311461018a57806395d89b41146101ab576100cf565b806301ffc9a7146100d457806306fdde03146100fc578063081812fc14610111578063095ea7b31461013c57806323b872dd1461015157806342842e0e14610164575b600080fd5b6100e76100e2366004610f3f565b610228565b60405190151581526020015b60405180910390f35b61010461027c565b6040516100f39190611027565b61012461011f366004610f77565b61030e565b6040516001600160a01b0390911681526020016100f3565b61014f61014a366004610f16565b6103a8565b005b61014f61015f366004610dcc565b6104be565b61014f610172366004610dcc565b6104ef565b610124610185366004610f77565b61050a565b61019d610198366004610d80565b610581565b6040519081526020016100f3565b610104610608565b61014f6101c1366004610edc565b610617565b61014f6101d4366004610e07565b6106e9565b6101046101e7366004610f77565b610721565b6100e76101fa366004610d9a565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b148061025957506001600160e01b03198216635b5e139f60e01b145b8061027457506301ffc9a760e01b6001600160e01b03198316145b90505b919050565b60606065805461028b9061114c565b80601f01602080910402602001604051908101604052809291908181526020018280546102b79061114c565b80156103045780601f106102d957610100808354040283529160200191610304565b820191906000526020600020905b8154815290600101906020018083116102e757829003601f168201915b5050505050905090565b6000818152606760205260408120546001600160a01b031661038c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b60006103b38261050a565b9050806001600160a01b0316836001600160a01b031614156104215760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610383565b336001600160a01b038216148061043d575061043d81336101fa565b6104af5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610383565b6104b98383610809565b505050565b6104c83382610877565b6104e45760405162461bcd60e51b81526004016103839061108c565b6104b983838361096e565b6104b9838383604051806020016040528060008152506106e9565b6000818152606760205260408120546001600160a01b0316806102745760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610383565b60006001600160a01b0382166105ec5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610383565b506001600160a01b031660009081526068602052604090205490565b60606066805461028b9061114c565b6001600160a01b0382163314156106705760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610383565b336000818152606a602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516106dd911515815260200190565b60405180910390a35050565b6106f33383610877565b61070f5760405162461bcd60e51b81526004016103839061108c565b61071b84848484610b0e565b50505050565b6000818152606760205260409020546060906001600160a01b03166107a05760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610383565b60006107b760408051602081019091526000815290565b905060008151116107d75760405180602001604052806000815250610802565b806107e184610b41565b6040516020016107f2929190610fbb565b6040516020818303038152906040525b9392505050565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061083e8261050a565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000818152606760205260408120546001600160a01b03166108f05760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610383565b60006108fb8361050a565b9050806001600160a01b0316846001600160a01b031614806109365750836001600160a01b031661092b8461030e565b6001600160a01b0316145b8061096657506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b949350505050565b826001600160a01b03166109818261050a565b6001600160a01b0316146109e95760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610383565b6001600160a01b038216610a4b5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610383565b610a56600082610809565b6001600160a01b0383166000908152606860205260408120805460019290610a7f908490611109565b90915550506001600160a01b0382166000908152606860205260408120805460019290610aad9084906110dd565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b610b1984848461096e565b610b2584848484610c5c565b61071b5760405162461bcd60e51b81526004016103839061103a565b606081610b6657506040805180820190915260018152600360fc1b6020820152610277565b8160005b8115610b905780610b7a81611187565b9150610b899050600a836110f5565b9150610b6a565b60008167ffffffffffffffff811115610bb957634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015610be3576020820181803683370190505b5090505b841561096657610bf8600183611109565b9150610c05600a866111a2565b610c109060306110dd565b60f81b818381518110610c3357634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350610c55600a866110f5565b9450610be7565b60006001600160a01b0384163b15610d5e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290610ca0903390899088908890600401610fea565b602060405180830381600087803b158015610cba57600080fd5b505af1925050508015610cea575060408051601f3d908101601f19168201909252610ce791810190610f5b565b60015b610d44573d808015610d18576040519150601f19603f3d011682016040523d82523d6000602084013e610d1d565b606091505b508051610d3c5760405162461bcd60e51b81526004016103839061103a565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610966565b506001949350505050565b80356001600160a01b038116811461027757600080fd5b600060208284031215610d91578081fd5b61080282610d69565b60008060408385031215610dac578081fd5b610db583610d69565b9150610dc360208401610d69565b90509250929050565b600080600060608486031215610de0578081fd5b610de984610d69565b9250610df760208501610d69565b9150604084013590509250925092565b60008060008060808587031215610e1c578081fd5b610e2585610d69565b9350610e3360208601610d69565b925060408501359150606085013567ffffffffffffffff80821115610e56578283fd5b818701915087601f830112610e69578283fd5b813581811115610e7b57610e7b6111e2565b604051601f8201601f19908116603f01168101908382118183101715610ea357610ea36111e2565b816040528281528a6020848701011115610ebb578586fd5b82602086016020830137918201602001949094529598949750929550505050565b60008060408385031215610eee578182fd5b610ef783610d69565b915060208301358015158114610f0b578182fd5b809150509250929050565b60008060408385031215610f28578182fd5b610f3183610d69565b946020939093013593505050565b600060208284031215610f50578081fd5b8135610802816111f8565b600060208284031215610f6c578081fd5b8151610802816111f8565b600060208284031215610f88578081fd5b5035919050565b60008151808452610fa7816020860160208601611120565b601f01601f19169290920160200192915050565b60008351610fcd818460208801611120565b835190830190610fe1818360208801611120565b01949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061101d90830184610f8f565b9695505050505050565b6000602082526108026020830184610f8f565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b600082198211156110f0576110f06111b6565b500190565b600082611104576111046111cc565b500490565b60008282101561111b5761111b6111b6565b500390565b60005b8381101561113b578181015183820152602001611123565b8381111561071b5750506000910152565b60028104600182168061116057607f821691505b6020821081141561118157634e487b7160e01b600052602260045260246000fd5b50919050565b600060001982141561119b5761119b6111b6565b5060010190565b6000826111b1576111b16111cc565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461120e57600080fd5b5056fea26469706673582212206fcb253d818546054737de2e33568fa2b258b78d0b7f3c16a61df3022ecf285d64736f6c63430008020033";
class ERC721Upgradeable__factory extends ethers_1.ContractFactory {

@@ -340,0 +340,0 @@ constructor(signer) {

@@ -24,3 +24,3 @@ "use strict";

internalType: "bool",
name: "haveRole",
name: "enable",
type: "bool",

@@ -35,3 +35,3 @@ },

],
name: "SetRole",
name: "SetAmethystRole",
type: "event",

@@ -52,3 +52,3 @@ },

],
name: "haveRole",
name: "hasAmethystRole",
outputs: [

@@ -87,15 +87,2 @@ {

{
internalType: "uint256",
name: "expiration",
type: "uint256",
},
],
name: "setMaxExpiration",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",

@@ -112,3 +99,3 @@ name: "person",

internalType: "bool",
name: "isHaveRole",
name: "enable",
type: "bool",

@@ -127,3 +114,3 @@ },

],
name: "setRole",
name: "setAmethystRole",
outputs: [],

@@ -136,2 +123,15 @@ stateMutability: "nonpayable",

{
internalType: "uint256",
name: "newMaxExpiration",
type: "uint256",
},
],
name: "setMaxExpiration",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",

@@ -138,0 +138,0 @@ name: "newSigner",

@@ -31,3 +31,3 @@ /* Autogenerated file. Do not edit manually. */

internalType: "bool",
name: "haveRole",
name: "enable",
type: "bool",

@@ -42,3 +42,3 @@ },

],
name: "SetRole",
name: "SetAmethystRole",
type: "event",

@@ -59,3 +59,3 @@ },

],
name: "haveRole",
name: "hasAmethystRole",
outputs: [

@@ -94,15 +94,2 @@ {

{
internalType: "uint256",
name: "expiration",
type: "uint256",
},
],
name: "setMaxExpiration",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",

@@ -119,3 +106,3 @@ name: "person",

internalType: "bool",
name: "isHaveRole",
name: "enable",
type: "bool",

@@ -134,3 +121,3 @@ },

],
name: "setRole",
name: "setAmethystRole",
outputs: [],

@@ -143,2 +130,15 @@ stateMutability: "nonpayable",

{
internalType: "uint256",
name: "newMaxExpiration",
type: "uint256",
},
],
name: "setMaxExpiration",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",

@@ -145,0 +145,0 @@ name: "newSigner",

@@ -24,7 +24,7 @@ /* Autogenerated file. Do not edit manually. */

functions: {
"haveRole(address,string)": FunctionFragment;
"hasAmethystRole(address,string)": FunctionFragment;
"implementationVersion()": FunctionFragment;
"pause()": FunctionFragment;
"setAmethystRole(address,string,bool,uint256,bytes)": FunctionFragment;
"setMaxExpiration(uint256)": FunctionFragment;
"setRole(address,string,bool,uint256,bytes)": FunctionFragment;
"setSigner(address)": FunctionFragment;

@@ -35,3 +35,3 @@ "unpause()": FunctionFragment;

encodeFunctionData(
functionFragment: "haveRole",
functionFragment: "hasAmethystRole",
values: [string, string]

@@ -45,14 +45,17 @@ ): string;

encodeFunctionData(
functionFragment: "setAmethystRole",
values: [string, string, boolean, BigNumberish, BytesLike]
): string;
encodeFunctionData(
functionFragment: "setMaxExpiration",
values: [BigNumberish]
): string;
encodeFunctionData(
functionFragment: "setRole",
values: [string, string, boolean, BigNumberish, BytesLike]
): string;
encodeFunctionData(functionFragment: "setSigner", values: [string]): string;
encodeFunctionData(functionFragment: "unpause", values?: undefined): string;
decodeFunctionResult(functionFragment: "haveRole", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "hasAmethystRole",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "implementationVersion",

@@ -63,6 +66,9 @@ data: BytesLike

decodeFunctionResult(
functionFragment: "setAmethystRole",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "setMaxExpiration",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "setRole", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setSigner", data: BytesLike): Result;

@@ -72,13 +78,13 @@ decodeFunctionResult(functionFragment: "unpause", data: BytesLike): Result;

events: {
"SetRole(address,string,bool,uint256)": EventFragment;
"SetAmethystRole(address,string,bool,uint256)": EventFragment;
};
getEvent(nameOrSignatureOrTopic: "SetRole"): EventFragment;
getEvent(nameOrSignatureOrTopic: "SetAmethystRole"): EventFragment;
}
export type SetRoleEvent = TypedEvent<
export type SetAmethystRoleEvent = TypedEvent<
[string, string, boolean, BigNumber] & {
person: string;
role: string;
haveRole: boolean;
enable: boolean;
eventTime: BigNumber;

@@ -132,3 +138,3 @@ }

functions: {
haveRole(
hasAmethystRole(
person: string,

@@ -145,11 +151,6 @@ role: string,

setMaxExpiration(
expiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setRole(
setAmethystRole(
person: string,
role: string,
isHaveRole: boolean,
enable: boolean,
timestamp: BigNumberish,

@@ -160,2 +161,7 @@ signature: BytesLike,

setMaxExpiration(
newMaxExpiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setSigner(

@@ -171,3 +177,3 @@ newSigner: string,

haveRole(
hasAmethystRole(
person: string,

@@ -184,11 +190,6 @@ role: string,

setMaxExpiration(
expiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setRole(
setAmethystRole(
person: string,
role: string,
isHaveRole: boolean,
enable: boolean,
timestamp: BigNumberish,

@@ -199,2 +200,7 @@ signature: BytesLike,

setMaxExpiration(
newMaxExpiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<ContractTransaction>;
setSigner(

@@ -210,3 +216,3 @@ newSigner: string,

callStatic: {
haveRole(
hasAmethystRole(
person: string,

@@ -221,11 +227,6 @@ role: string,

setMaxExpiration(
expiration: BigNumberish,
overrides?: CallOverrides
): Promise<void>;
setRole(
setAmethystRole(
person: string,
role: string,
isHaveRole: boolean,
enable: boolean,
timestamp: BigNumberish,

@@ -236,2 +237,7 @@ signature: BytesLike,

setMaxExpiration(
newMaxExpiration: BigNumberish,
overrides?: CallOverrides
): Promise<void>;
setSigner(newSigner: string, overrides?: CallOverrides): Promise<void>;

@@ -243,20 +249,20 @@

filters: {
"SetRole(address,string,bool,uint256)"(
"SetAmethystRole(address,string,bool,uint256)"(
person?: string | null,
role?: null,
haveRole?: null,
enable?: null,
eventTime?: null
): TypedEventFilter<
[string, string, boolean, BigNumber],
{ person: string; role: string; haveRole: boolean; eventTime: BigNumber }
{ person: string; role: string; enable: boolean; eventTime: BigNumber }
>;
SetRole(
SetAmethystRole(
person?: string | null,
role?: null,
haveRole?: null,
enable?: null,
eventTime?: null
): TypedEventFilter<
[string, string, boolean, BigNumber],
{ person: string; role: string; haveRole: boolean; eventTime: BigNumber }
{ person: string; role: string; enable: boolean; eventTime: BigNumber }
>;

@@ -266,3 +272,3 @@ };

estimateGas: {
haveRole(
hasAmethystRole(
person: string,

@@ -279,11 +285,6 @@ role: string,

setMaxExpiration(
expiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setRole(
setAmethystRole(
person: string,
role: string,
isHaveRole: boolean,
enable: boolean,
timestamp: BigNumberish,

@@ -294,2 +295,7 @@ signature: BytesLike,

setMaxExpiration(
newMaxExpiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<BigNumber>;
setSigner(

@@ -306,3 +312,3 @@ newSigner: string,

populateTransaction: {
haveRole(
hasAmethystRole(
person: string,

@@ -321,11 +327,6 @@ role: string,

setMaxExpiration(
expiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setRole(
setAmethystRole(
person: string,
role: string,
isHaveRole: boolean,
enable: boolean,
timestamp: BigNumberish,

@@ -336,2 +337,7 @@ signature: BytesLike,

setMaxExpiration(
newMaxExpiration: BigNumberish,
overrides?: Overrides & { from?: string | Promise<string> }
): Promise<PopulatedTransaction>;
setSigner(

@@ -338,0 +344,0 @@ newSigner: string,

export type { AccessControlUpgradeable } from "./AccessControlUpgradeable";
export type { IAccessControlUpgradeable } from "./IAccessControlUpgradeable";
export type { OwnableUpgradeable } from "./OwnableUpgradeable";
export type { IBeaconUpgradeable } from "./IBeaconUpgradeable";

@@ -14,2 +13,15 @@ export type { ERC1967UpgradeUpgradeable } from "./ERC1967UpgradeUpgradeable";

export type { IERC165Upgradeable } from "./IERC165Upgradeable";
export type { AccessControl } from "./AccessControl";
export type { IAccessControl } from "./IAccessControl";
export type { GovernorCountingSimple } from "./GovernorCountingSimple";
export type { Governor } from "./Governor";
export type { IGovernor } from "./IGovernor";
export type { Pausable } from "./Pausable";
export type { IERC20 } from "./IERC20";
export type { ERC165 } from "./ERC165";
export type { IERC165 } from "./IERC165";
export type { AmethystDAO } from "./AmethystDAO";
export type { AmethystFactory } from "./AmethystFactory";
export type { IAmethystDAO } from "./IAmethystDAO";
export type { IAmethystFactory } from "./IAmethystFactory";
export type { IAmethystRoleManagement } from "./IAmethystRoleManagement";

@@ -20,3 +32,2 @@ export type { ERC721Impl } from "./ERC721Impl";

export { IAccessControlUpgradeable__factory } from "./factories/IAccessControlUpgradeable__factory";
export { OwnableUpgradeable__factory } from "./factories/OwnableUpgradeable__factory";
export { IBeaconUpgradeable__factory } from "./factories/IBeaconUpgradeable__factory";

@@ -32,4 +43,17 @@ export { ERC1967UpgradeUpgradeable__factory } from "./factories/ERC1967UpgradeUpgradeable__factory";

export { IERC165Upgradeable__factory } from "./factories/IERC165Upgradeable__factory";
export { AccessControl__factory } from "./factories/AccessControl__factory";
export { IAccessControl__factory } from "./factories/IAccessControl__factory";
export { GovernorCountingSimple__factory } from "./factories/GovernorCountingSimple__factory";
export { Governor__factory } from "./factories/Governor__factory";
export { IGovernor__factory } from "./factories/IGovernor__factory";
export { Pausable__factory } from "./factories/Pausable__factory";
export { IERC20__factory } from "./factories/IERC20__factory";
export { ERC165__factory } from "./factories/ERC165__factory";
export { IERC165__factory } from "./factories/IERC165__factory";
export { AmethystDAO__factory } from "./factories/AmethystDAO__factory";
export { AmethystFactory__factory } from "./factories/AmethystFactory__factory";
export { IAmethystDAO__factory } from "./factories/IAmethystDAO__factory";
export { IAmethystFactory__factory } from "./factories/IAmethystFactory__factory";
export { IAmethystRoleManagement__factory } from "./factories/IAmethystRoleManagement__factory";
export { ERC721Impl__factory } from "./factories/ERC721Impl__factory";
export { AmethystRoleManagementImpl__factory } from "./factories/AmethystRoleManagementImpl__factory";
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AmethystRoleManagementImpl__factory = exports.ERC721Impl__factory = exports.IAmethystRoleManagement__factory = exports.IERC165Upgradeable__factory = exports.ERC165Upgradeable__factory = exports.IERC721Upgradeable__factory = exports.IERC721ReceiverUpgradeable__factory = exports.IERC721MetadataUpgradeable__factory = exports.ERC721Upgradeable__factory = exports.PausableUpgradeable__factory = exports.UUPSUpgradeable__factory = exports.ERC1967UpgradeUpgradeable__factory = exports.IBeaconUpgradeable__factory = exports.OwnableUpgradeable__factory = exports.IAccessControlUpgradeable__factory = exports.AccessControlUpgradeable__factory = void 0;
exports.AmethystRoleManagementImpl__factory = exports.ERC721Impl__factory = exports.IAmethystRoleManagement__factory = exports.IAmethystFactory__factory = exports.IAmethystDAO__factory = exports.AmethystFactory__factory = exports.AmethystDAO__factory = exports.IERC165__factory = exports.ERC165__factory = exports.IERC20__factory = exports.Pausable__factory = exports.IGovernor__factory = exports.Governor__factory = exports.GovernorCountingSimple__factory = exports.IAccessControl__factory = exports.AccessControl__factory = exports.IERC165Upgradeable__factory = exports.ERC165Upgradeable__factory = exports.IERC721Upgradeable__factory = exports.IERC721ReceiverUpgradeable__factory = exports.IERC721MetadataUpgradeable__factory = exports.ERC721Upgradeable__factory = exports.PausableUpgradeable__factory = exports.UUPSUpgradeable__factory = exports.ERC1967UpgradeUpgradeable__factory = exports.IBeaconUpgradeable__factory = exports.IAccessControlUpgradeable__factory = exports.AccessControlUpgradeable__factory = void 0;
var AccessControlUpgradeable__factory_1 = require("./factories/AccessControlUpgradeable__factory");

@@ -8,4 +8,2 @@ Object.defineProperty(exports, "AccessControlUpgradeable__factory", { enumerable: true, get: function () { return AccessControlUpgradeable__factory_1.AccessControlUpgradeable__factory; } });

Object.defineProperty(exports, "IAccessControlUpgradeable__factory", { enumerable: true, get: function () { return IAccessControlUpgradeable__factory_1.IAccessControlUpgradeable__factory; } });
var OwnableUpgradeable__factory_1 = require("./factories/OwnableUpgradeable__factory");
Object.defineProperty(exports, "OwnableUpgradeable__factory", { enumerable: true, get: function () { return OwnableUpgradeable__factory_1.OwnableUpgradeable__factory; } });
var IBeaconUpgradeable__factory_1 = require("./factories/IBeaconUpgradeable__factory");

@@ -31,2 +29,28 @@ Object.defineProperty(exports, "IBeaconUpgradeable__factory", { enumerable: true, get: function () { return IBeaconUpgradeable__factory_1.IBeaconUpgradeable__factory; } });

Object.defineProperty(exports, "IERC165Upgradeable__factory", { enumerable: true, get: function () { return IERC165Upgradeable__factory_1.IERC165Upgradeable__factory; } });
var AccessControl__factory_1 = require("./factories/AccessControl__factory");
Object.defineProperty(exports, "AccessControl__factory", { enumerable: true, get: function () { return AccessControl__factory_1.AccessControl__factory; } });
var IAccessControl__factory_1 = require("./factories/IAccessControl__factory");
Object.defineProperty(exports, "IAccessControl__factory", { enumerable: true, get: function () { return IAccessControl__factory_1.IAccessControl__factory; } });
var GovernorCountingSimple__factory_1 = require("./factories/GovernorCountingSimple__factory");
Object.defineProperty(exports, "GovernorCountingSimple__factory", { enumerable: true, get: function () { return GovernorCountingSimple__factory_1.GovernorCountingSimple__factory; } });
var Governor__factory_1 = require("./factories/Governor__factory");
Object.defineProperty(exports, "Governor__factory", { enumerable: true, get: function () { return Governor__factory_1.Governor__factory; } });
var IGovernor__factory_1 = require("./factories/IGovernor__factory");
Object.defineProperty(exports, "IGovernor__factory", { enumerable: true, get: function () { return IGovernor__factory_1.IGovernor__factory; } });
var Pausable__factory_1 = require("./factories/Pausable__factory");
Object.defineProperty(exports, "Pausable__factory", { enumerable: true, get: function () { return Pausable__factory_1.Pausable__factory; } });
var IERC20__factory_1 = require("./factories/IERC20__factory");
Object.defineProperty(exports, "IERC20__factory", { enumerable: true, get: function () { return IERC20__factory_1.IERC20__factory; } });
var ERC165__factory_1 = require("./factories/ERC165__factory");
Object.defineProperty(exports, "ERC165__factory", { enumerable: true, get: function () { return ERC165__factory_1.ERC165__factory; } });
var IERC165__factory_1 = require("./factories/IERC165__factory");
Object.defineProperty(exports, "IERC165__factory", { enumerable: true, get: function () { return IERC165__factory_1.IERC165__factory; } });
var AmethystDAO__factory_1 = require("./factories/AmethystDAO__factory");
Object.defineProperty(exports, "AmethystDAO__factory", { enumerable: true, get: function () { return AmethystDAO__factory_1.AmethystDAO__factory; } });
var AmethystFactory__factory_1 = require("./factories/AmethystFactory__factory");
Object.defineProperty(exports, "AmethystFactory__factory", { enumerable: true, get: function () { return AmethystFactory__factory_1.AmethystFactory__factory; } });
var IAmethystDAO__factory_1 = require("./factories/IAmethystDAO__factory");
Object.defineProperty(exports, "IAmethystDAO__factory", { enumerable: true, get: function () { return IAmethystDAO__factory_1.IAmethystDAO__factory; } });
var IAmethystFactory__factory_1 = require("./factories/IAmethystFactory__factory");
Object.defineProperty(exports, "IAmethystFactory__factory", { enumerable: true, get: function () { return IAmethystFactory__factory_1.IAmethystFactory__factory; } });
var IAmethystRoleManagement__factory_1 = require("./factories/IAmethystRoleManagement__factory");

@@ -33,0 +57,0 @@ Object.defineProperty(exports, "IAmethystRoleManagement__factory", { enumerable: true, get: function () { return IAmethystRoleManagement__factory_1.IAmethystRoleManagement__factory; } });

@@ -6,3 +6,2 @@ /* Autogenerated file. Do not edit manually. */

export type { IAccessControlUpgradeable } from "./IAccessControlUpgradeable";
export type { OwnableUpgradeable } from "./OwnableUpgradeable";
export type { IBeaconUpgradeable } from "./IBeaconUpgradeable";

@@ -18,2 +17,15 @@ export type { ERC1967UpgradeUpgradeable } from "./ERC1967UpgradeUpgradeable";

export type { IERC165Upgradeable } from "./IERC165Upgradeable";
export type { AccessControl } from "./AccessControl";
export type { IAccessControl } from "./IAccessControl";
export type { GovernorCountingSimple } from "./GovernorCountingSimple";
export type { Governor } from "./Governor";
export type { IGovernor } from "./IGovernor";
export type { Pausable } from "./Pausable";
export type { IERC20 } from "./IERC20";
export type { ERC165 } from "./ERC165";
export type { IERC165 } from "./IERC165";
export type { AmethystDAO } from "./AmethystDAO";
export type { AmethystFactory } from "./AmethystFactory";
export type { IAmethystDAO } from "./IAmethystDAO";
export type { IAmethystFactory } from "./IAmethystFactory";
export type { IAmethystRoleManagement } from "./IAmethystRoleManagement";

@@ -25,3 +37,2 @@ export type { ERC721Impl } from "./ERC721Impl";

export { IAccessControlUpgradeable__factory } from "./factories/IAccessControlUpgradeable__factory";
export { OwnableUpgradeable__factory } from "./factories/OwnableUpgradeable__factory";
export { IBeaconUpgradeable__factory } from "./factories/IBeaconUpgradeable__factory";

@@ -37,4 +48,17 @@ export { ERC1967UpgradeUpgradeable__factory } from "./factories/ERC1967UpgradeUpgradeable__factory";

export { IERC165Upgradeable__factory } from "./factories/IERC165Upgradeable__factory";
export { AccessControl__factory } from "./factories/AccessControl__factory";
export { IAccessControl__factory } from "./factories/IAccessControl__factory";
export { GovernorCountingSimple__factory } from "./factories/GovernorCountingSimple__factory";
export { Governor__factory } from "./factories/Governor__factory";
export { IGovernor__factory } from "./factories/IGovernor__factory";
export { Pausable__factory } from "./factories/Pausable__factory";
export { IERC20__factory } from "./factories/IERC20__factory";
export { ERC165__factory } from "./factories/ERC165__factory";
export { IERC165__factory } from "./factories/IERC165__factory";
export { AmethystDAO__factory } from "./factories/AmethystDAO__factory";
export { AmethystFactory__factory } from "./factories/AmethystFactory__factory";
export { IAmethystDAO__factory } from "./factories/IAmethystDAO__factory";
export { IAmethystFactory__factory } from "./factories/IAmethystFactory__factory";
export { IAmethystRoleManagement__factory } from "./factories/IAmethystRoleManagement__factory";
export { ERC721Impl__factory } from "./factories/ERC721Impl__factory";
export { AmethystRoleManagementImpl__factory } from "./factories/AmethystRoleManagementImpl__factory";
{
"name": "@white-matrix/amethyst-sdk",
"version": "0.0.1-a",
"version": "0.0.1-b",
"main": "dist/sdk/src/index.js",

@@ -5,0 +5,0 @@ "types": "dist/sdk/src/index.d.ts",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc