@settlemint/solidity-token-erc721
Version:
Smart contract set to build an ERC721 token in SettleMint
1 lines • 131 kB
JSON
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFreezeAllTokens","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFreezeToken","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testFreezeURI","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testInitialFrozenState","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testUpdateEmitsPermanentURIWhenFrozen","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"PermanentURI","inputs":[{"name":"_value","type":"string","indexed":false,"internalType":"string"},{"name":"_id","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234605257600160ff19600c541617600c55600160ff19601f541617601f556001808060a01b03196020541617602055600260018060a01b031960215416176021556143bb90816100578239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c908163026c7c5414611a72575080630a9254e4146118a75780631ed7831c1461181c5780632ade38801461160e578063327bdd1b146112545780633e5e3c23146111c95780633f7286f41461113e57806366d9a9a01461100157806385226c8114610f77578063916a17c614610ec0578063b0464fdc14610e09578063b5508aa914610d7f578063ba414fa614610d5a578063c375419414610855578063c6722f21146106ce578063e20c9f7114610633578063e50750c6146101095763fa7626d4146100e4575f80fd5b34610106578060031936011261010657602060ff601f54166040519015158152f35b80fd5b50346101065780600319360112610106578073ffffffffffffffffffffffffffffffffffffffff60205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105a157604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156105815761061e575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c1673ffffffffffffffffffffffffffffffffffffffff60215416813b1561061a5782916044839260405194859384927f40c10f190000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058157610605575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c16803b156105a1578180916004604051809481937f62a5af3b0000000000000000000000000000000000000000000000000000000083525af18015610581576105f0575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f491cc7c20000000000000000000000000000000000000000000000000000000081528181806102f560048201906001606060808401938281528260208201528260408201520152565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576105db575b5060249073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927fc87b56dd000000000000000000000000000000000000000000000000000000008252600160048301525afa8015610581576103b77fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b556572079160019385916105b9575b50604051918291602083526020830190611daf565b0390a2737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576105a4575b5073ffffffffffffffffffffffffffffffffffffffff60215416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105a157604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156105815761058c575b50602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16606473ffffffffffffffffffffffffffffffffffffffff6021541660405194859384927f501a51620000000000000000000000000000000000000000000000000000000084526004840152600160248401528160448401525af1801561058157610534575080f35b6020813d602011610579575b8161054d60209383611fb1565b81010312610575575173ffffffffffffffffffffffffffffffffffffffff8116036101065780f35b5080fd5b3d9150610540565b6040513d84823e3d90fd5b8161059691611fb1565b61010657805f6104ad565b50fd5b816105ae91611fb1565b61010657805f610424565b6105d591503d8087833e6105cd8183611fb1565b810190612125565b5f6103a2565b816105e591611fb1565b61010657805f61031a565b816105fa91611fb1565b61010657805f61028a565b8161060f91611fb1565b61010657805f61022a565b5050fd5b8161062891611fb1565b61010657805f6101a3565b503461010657806003193601126101065760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106106a25761069e8561069281870382611fb1565b60405191829182611d60565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161067b565b5034610106578060031936011261010657806004602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f054f7d9c0000000000000000000000000000000000000000000000000000000082525afa908115610581578291610826575b506040519061074a606083611fb1565b602282527f496e697469616c2073746174652073686f756c64206e6f742062652066726f7a60208301527f656e0000000000000000000000000000000000000000000000000000000000006040830152737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561061a576107ef91839160405193849283927f7ba0480900000000000000000000000000000000000000000000000000000000845260048401612533565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa8015610581576108155750f35b8161081f91611fb1565b6101065780f35b610848915060203d60201161084e575b6108408183611fb1565b810190611ff2565b5f61073a565b503d610836565b50346101065780600319360112610106578073ffffffffffffffffffffffffffffffffffffffff60205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105a157604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058157610d45575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c1673ffffffffffffffffffffffffffffffffffffffff60215416813b1561061a5782916044839260405194859384927f40c10f190000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058157610d30575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c1673ffffffffffffffffffffffffffffffffffffffff60215416813b1561061a5782916044839260405194859384927f40c10f190000000000000000000000000000000000000000000000000000000084526004840152600260248401525af1801561058157610d1b575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c16803b156105a1578180916004604051809481937f62a5af3b0000000000000000000000000000000000000000000000000000000083525af1801561058157610d06575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f491cc7c2000000000000000000000000000000000000000000000000000000008152818180610ac860048201906001606060808401938281528260208201528260408201520152565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058157610cf1575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c166040517fc87b56dd000000000000000000000000000000000000000000000000000000008152600160048201528281602481855afa8015610ce657610b887fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b55657207916001938691610cd25750604051918291602083526020830190611daf565b0390a26040517fc87b56dd000000000000000000000000000000000000000000000000000000008152600260048201528281602481855afa8015610ce657610c097fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b55657207916002938691610cd25750604051918291602083526020830190611daf565b0390a2803b156105a1578180916004604051809481937fd2bc37f80000000000000000000000000000000000000000000000000000000083525af1801561058157610cbd575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576108155750f35b81610cc791611fb1565b61010657805f610c4f565b6105d591503d8088833e6105cd8183611fb1565b6040513d85823e3d90fd5b81610cfb91611fb1565b61010657805f610aed565b81610d1091611fb1565b61010657805f610a5d565b81610d2591611fb1565b61010657805f6109fd565b81610d3a91611fb1565b61010657805f610976565b81610d4f91611fb1565b61010657805f6108ef565b50346101065780600319360112610106576020610d7561245a565b6040519015158152f35b5034610106578060031936011261010657601954610d9c8161200a565b91610daa6040519384611fb1565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610dec576040518061069e8782611e47565b600160208192610dfb85612022565b815201920192019190610dd7565b5034610106578060031936011261010657601c54610e268161200a565b91610e346040519384611fb1565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310610e76576040518061069e8782611ec4565b60026020600192604051610e8981611f68565b73ffffffffffffffffffffffffffffffffffffffff8654168152610eae8587016121b6565b83820152815201920192019190610e61565b5034610106578060031936011261010657601d54610edd8161200a565b91610eeb6040519384611fb1565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b838310610f2d576040518061069e8782611ec4565b60026020600192604051610f4081611f68565b73ffffffffffffffffffffffffffffffffffffffff8654168152610f658587016121b6565b83820152815201920192019190610f18565b5034610106578060031936011261010657601a54610f948161200a565b91610fa26040519384611fb1565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310610fe4576040518061069e8782611e47565b600160208192610ff385612022565b815201920192019190610fcf565b5034610106578060031936011261010657601b5461101e8161200a565b61102b6040519182611fb1565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b83831061110357868587604051928392602084019060208552518091526040840160408260051b8601019392905b82821061109857505050500390f35b919360206110f3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc06001959799849503018652885190836110e38351604084526040840190611daf565b9201519084818403910152611df2565b9601920192018594939192611089565b6002602060019260405161111681611f68565b61111f86612022565b815261112c8587016121b6565b8382015281520192019201919061105b565b503461010657806003193601126101065760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b81811061119d5761069e8561069281870382611fb1565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201611186565b503461010657806003193601126101065760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106112285761069e8561069281870382611fb1565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201611211565b50346101065780600319360112610106578073ffffffffffffffffffffffffffffffffffffffff60205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105a157604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576115f9575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c1673ffffffffffffffffffffffffffffffffffffffff60215416813b1561061a5782916044839260405194859384927f40c10f190000000000000000000000000000000000000000000000000000000084526004840152600160248401525af18015610581576115e4575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c16803b156105a1578180916004604051809481937f62a5af3b0000000000000000000000000000000000000000000000000000000083525af18015610581576115cf575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f491cc7c200000000000000000000000000000000000000000000000000000000815281818061144060048201906001606060808401938281528260208201528260408201520152565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576115ba575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c166040517fc87b56dd000000000000000000000000000000000000000000000000000000008152600160048201528281602481855afa8015610ce6576115007fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b55657207916001938691610cd25750604051918291602083526020830190611daf565b0390a2803b156105a1578180916024604051809481937fb6854f96000000000000000000000000000000000000000000000000000000008352600160048401525af1801561058157610cbd575050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576108155750f35b816115c491611fb1565b61010657805f611465565b816115d991611fb1565b61010657805f6113d5565b816115ee91611fb1565b61010657805f611375565b8161160391611fb1565b61010657805f6112ee565b5034610106578060031936011261010657601e5461162b8161200a565b6116386040519182611fb1565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b8383106117865786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106116a45786860387f35b9193957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc09086929496030183528551906020604082019273ffffffffffffffffffffffffffffffffffffffff81511683520151916040602083015282518091526060820190602060608260051b850101940192855b82811061173d57505050505060208060019297019301930190928695949293611697565b9091929394602080611779837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa087600196030189528951611daf565b9701950193929101611719565b60405161179281611f68565b73ffffffffffffffffffffffffffffffffffffffff83541681526001830180546117bb8161200a565b916117c96040519384611fb1565b8183528a526020808b20908b9084015b8382106117ff575050505060019282602092836002950152815201920192019190611668565b60016020819261180e86612022565b8152019301910190916117d9565b503461010657806003193601126101065760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b81811061187b5761069e8561069281870382611fb1565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201611864565b50346101065780600319360112610106578073ffffffffffffffffffffffffffffffffffffffff60205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105a157604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058157611a5d575b5050604051611e368082019082821067ffffffffffffffff831117611a30579082916125508339039082f08015611a23577fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff00601f549260081b16911617601f55737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576108155750f35b50604051903d90823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b81611a6791611fb1565b61010657805f611941565b905034611d5c575f600319360112611d5c5773ffffffffffffffffffffffffffffffffffffffff60205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15611d5c577f06447d5600000000000000000000000000000000000000000000000000000000825260048201525f8160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015611d5157611d3e575b508073ffffffffffffffffffffffffffffffffffffffff601f5460081c16803b156105a1578180916004604051809481937f62a5af3b0000000000000000000000000000000000000000000000000000000083525af1801561058157611d29575b506004602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f054f7d9c0000000000000000000000000000000000000000000000000000000082525afa908115610581578291611d0a575b5060405190611bd4606083611fb1565b602982527f5552492073686f756c642062652066726f7a656e2061667465722063616c6c6960208301527f6e6720667265657a6500000000000000000000000000000000000000000000006040830152737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561061a57611c7991839160405193849283927fa34edc0300000000000000000000000000000000000000000000000000000000845260048401612533565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561058157610cbd575050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576108155750f35b611d23915060203d60201161084e576108408183611fb1565b5f611bc4565b81611d3391611fb1565b61010657805f611b69565b611d4a91505f90611fb1565b5f5f611b08565b6040513d5f823e3d90fd5b5f80fd5b60206040818301928281528451809452019201905f5b818110611d835750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611d76565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b818110611e0f5750505090565b82517fffffffff0000000000000000000000000000000000000000000000000000000016845260209384019390920191600101611e02565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310611e7957505050505090565b9091929394602080611eb5837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951611daf565b97019301930191939290611e6a565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310611ef657505050505090565b9091929394602080611f59837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187526040838b5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190611df2565b97019301930191939290611ee7565b6040810190811067ffffffffffffffff821117611f8457604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611f8457604052565b90816020910312611d5c57518015158103611d5c5790565b67ffffffffffffffff8111611f845760051b60200190565b90604051915f8154908160011c926001831692831561211b575b6020851084146120ee5784875286939081156120ae575060011461206a575b5061206892500383611fb1565b565b90505f9291925260205f20905f915b818310612092575050906020612068928201015f61205b565b6020919350806001915483858901015201910190918492612079565b602093506120689592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f61205b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b93607f169361203c565b602081830312611d5c5780519067ffffffffffffffff8211611d5c570181601f82011215611d5c5780519067ffffffffffffffff8211611f845760405192612195601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200185611fb1565b82845260208383010111611d5c57815f9260208093018386015e8301015290565b90604051918281549182825260208201905f5260205f20925f905b8060078301106123cd57612068945491818110612397575b818110612361575b81811061232b575b8181106122f5575b8181106122bf575b818110612289575b818110612254575b10612227575b500383611fb1565b7fffffffff000000000000000000000000000000000000000000000000000000001681526020015f61221f565b9260206001917fffffffff0000000000000000000000000000000000000000000000000000000085831b168152019301612219565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560401b168152019301612211565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301612209565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560801b168152019301612201565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560a01b1681520193016121f9565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560c01b1681520193016121f1565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560e01b1681520193016121e9565b9160089193506101006001917fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e08201520194019201859293916121d1565b60085460ff1680156124695790565b506040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115611d51575f91612501575b50151590565b90506020813d60201161252b575b8161251c60209383611fb1565b81010312611d5c57515f6124fb565b3d915061250f565b60409061254c9392151581528160208201520190611daf565b9056fe60806040523461031d57604080519081016001600160401b03811182821017610233576040908152600f82526e233932b2bd30b13632902a37b5b2b760891b602083015280519081016001600160401b0381118282101761023357604052600381526246544b60e81b602082015281516001600160401b038111610233575f54600181811c91168015610313575b602082101461021557601f81116102b1575b50602092601f821160011461025257928192935f92610247575b50508160011b915f199060031b1c1916175f555b80516001600160401b03811161023357600154600181811c91168015610229575b602082101461021557601f81116101b2575b50602091601f8211600114610152579181925f92610147575b50508160011b915f199060031b1c1916176001555b60ff19600a5416600a55604051611b1490816103228239f35b015190505f80610119565b601f1982169260015f52805f20915f5b85811061019a57508360019510610182575b505050811b0160015561012e565b01515f1960f88460031b161c191690555f8080610174565b91926020600181928685015181550194019201610162565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c8101916020841061020b575b601f0160051c01905b8181106102005750610100565b5f81556001016101f3565b90915081906101ea565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100ee565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100b9565b601f198216935f8052805f20915f5b8681106102995750836001959610610281575b505050811b015f556100cd565b01515f1960f88460031b161c191690555f8080610274565b91926020600181928685015181550194019201610261565b5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610309575b601f0160051c01905b8181106102fe575061009f565b5f81556001016102f1565b90915081906102e8565b90607f169061008d565b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610eeb57508063054f7d9c14610ec957806306fdde0314610e27578063081812fc14610ddd578063095ea7b314610c7f57806318160ddd14610c6257806323b872dd14610c4b5780632f745c5914610bb957806340c10f19146108cd57806342842e0e146108a45780634f6ccce71461083d578063501a5162146107f357806355f804b3146105ea57806362a5af3b146105475780636352211e1461050b57806370a08231146104e057806395d89b41146103f8578063a22cb46514610319578063b6854f96146102c5578063b88d4fde14610263578063c87b56dd14610240578063d2bc37f8146101905763e985e9c514610119575f80fd5b3461018c57604060031936011261018c57610132611030565b73ffffffffffffffffffffffffffffffffffffffff61014f611053565b91165f52600560205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060ff60405f2054166040519015158152f35b5f80fd5b3461018c575f60031936011261018c576101ae60ff600a54166112ea565b60085460015b818111156101be57005b807fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b556572076102006101ec83611551565b604051918291602083526020830190610fed565b0390a25f198114610213576001016101b4565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b3461018c57602060031936011261018c5761025f6101ec600435611551565b0390f35b3461018c57608060031936011261018c5761027c611030565b610284611053565b6064359167ffffffffffffffff831161018c573660238401121561018c576102b96102c3933690602481600401359101611145565b9160443591611375565b005b3461018c57602060031936011261018c576004356102e760ff600a54166112ea565b7fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b556572076103146101ec83611551565b0390a2005b3461018c57604060031936011261018c57610332611030565b6024359081151580920361018c5773ffffffffffffffffffffffffffffffffffffffff169081156103cc57335f52600560205260405f20825f5260205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b507f5b08ba18000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461018c575f60031936011261018c576040515f6001546104188161117b565b808452906001811690811561049e5750600114610440575b61025f836101ec818503826110ca565b91905060015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f905b808210610484575090915081016020016101ec610430565b91926001816020925483858801015201910190929161046c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506101ec9050610430565b3461018c57602060031936011261018c5760206105036104fe611030565b611293565b604051908152f35b3461018c57602060031936011261018c576020610529600435611699565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461018c575f60031936011261018c57600a5460ff811661058c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117600a55005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f455243373231467265657a61626c653a205552492069732066726f7a656e00006044820152fd5b3461018c57602060031936011261018c5760043567ffffffffffffffff811161018c573660238201121561018c5761062c903690602481600401359101611145565b805167ffffffffffffffff81116107c657610648600c5461117b565b601f8111610725575b50602091601f821160011461068c579181925f92610681575b50505f198260011b9260031b1c191617600c555f80f35b01519050828061066a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821692600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915f5b85811061070d575083600195106106f5575b505050811b01600c55005b01515f1960f88460031b161c191690558280806106ea565b919260206001819286850151815501940192016106d8565b600c5f52601f820160051c7fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c701906020831061079e575b601f0160051c7fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c701905b8181106107935750610651565b5f8155600101610786565b7fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7915061075c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b3461018c57606060031936011261018c5761080c611030565b6044359073ffffffffffffffffffffffffffffffffffffffff8216820361018c5760209161052991602435906116f2565b3461018c57602060031936011261018c576004356008548110156108755761086660209161124e565b90549060031b1c604051908152f35b7fa57d13dc000000000000000000000000000000000000000000000000000000005f525f60045260245260445ffd5b3461018c576102c36108b536611076565b90604051926108c56020856110ca565b5f8452611375565b3461018c57604060031936011261018c576108e6611030565b60243573ffffffffffffffffffffffffffffffffffffffff82168015610b8d5760ff600a541680610b4d575b50815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2054169182159384159485610afe575b835f52600360205260405f2060018154019055825f52600260205260405f20847fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558284867fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a415610a8157600854825f5260096020528060405f2055680100000000000000008110156107c657826109ec826001610a03940160085561124e565b9091905f1983549160031b92831b921b1916179055565b828403610a41575b50505050610a1557005b7f73c6ac6e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b610a4a90611293565b915f198301928311610213575f52600660205260405f20825f526020528060405f20555f52600760205260405f2055828080610a0b565b838314610a0357610a9184611293565b825f52600760205260405f205490855f52600660205260405f2091818103610ad3575b50835f5260076020525f60408120555f526020525f6040812055610a03565b815f528260205260405f2054815f52836020528060405f20555f52600760205260405f205587610ab4565b610b35835f52600460205260405f207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055565b845f52600360205260405f205f198154019055610943565b610b56906112ea565b817fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b55657207610b846101ec83611551565b0390a283610912565b7f64a0ae92000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b3461018c57604060031936011261018c57610bd2611030565b73ffffffffffffffffffffffffffffffffffffffff60243591610bf481611293565b831015610c1c57165f52600660205260405f20905f52602052602060405f2054604051908152f35b7fa57d13dc000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b3461018c576102c3610c5c36611076565b916111cc565b3461018c575f60031936011261018c576020600854604051908152f35b3461018c57604060031936011261018c57610c98611030565b602435610ca481611699565b33151580610dbd575b80610d70575b610d4457819073ffffffffffffffffffffffffffffffffffffffff80851691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f52600460205273ffffffffffffffffffffffffffffffffffffffff60405f2091167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790555f80f35b7fa9fbf51f000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b5073ffffffffffffffffffffffffffffffffffffffff81165f52600560205260405f2073ffffffffffffffffffffffffffffffffffffffff33165f5260205260ff60405f20541615610cb3565b503373ffffffffffffffffffffffffffffffffffffffff82161415610cad565b3461018c57602060031936011261018c57600435610dfa81611699565b505f526004602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b3461018c575f60031936011261018c576040515f5f54610e468161117b565b808452906001811690811561049e5750600114610e6d5761025f836101ec818503826110ca565b5f8080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563939250905b808210610eaf575090915081016020016101ec610430565b919260018160209254838588010152019101909291610e97565b3461018c575f60031936011261018c57602060ff600a54166040519015158152f35b3461018c57602060031936011261018c57600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361018c57817f780e9d630000000000000000000000000000000000000000000000000000000060209314908115610f5f575b5015158152f35b7f80ac58cd00000000000000000000000000000000000000000000000000000000811491508115610fc3575b8115610f99575b5083610f58565b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483610f92565b7f5b5e139f0000000000000000000000000000000000000000000000000000000081149150610f8b565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361018c57565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361018c57565b600319606091011261018c5760043573ffffffffffffffffffffffffffffffffffffffff8116810361018c579060243573ffffffffffffffffffffffffffffffffffffffff8116810361018c579060443590565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107c657604052565b67ffffffffffffffff81116107c657601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926111518261110b565b9161115f60405193846110ca565b82948184528183011161018c578281602093845f960137010152565b90600182811c921680156111c2575b602083101461119557565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f169161118a565b919073ffffffffffffffffffffffffffffffffffffffff811615610b8d5773ffffffffffffffffffffffffffffffffffffffff61120c81928433916116f2565b931692169180830361121d57505050565b7f64283d7b000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b6008548110156112665760085f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff1680156112be575f52600360205260405f205490565b7f89c62b64000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b156112f157565b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f455243373231467265657a61626c653a20555249206973206e6f742066726f7a60448201527f656e0000000000000000000000000000000000000000000000000000000000006064820152fd5b906113818382846111cc565b803b61138e575b50505050565b6020916113fa73ffffffffffffffffffffffffffffffffffffffff8093169560405195869485947f150b7a020000000000000000000000000000000000000000000000000000000086523360048701521660248501526044840152608060648401526084830190610fed565b03815f865af15f91816114f4575b5061147657503d1561146f573d61141e8161110b565b9061142c60405192836110ca565b81523d5f602083013e5b8051908161146a57827f64a0ae92000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b602001fd5b6060611436565b7fffffffff000000000000000000000000000000000000000000000000000000007f150b7a02000000000000000000000000000000000000000000000000000000009116036114c957505f808080611388565b7f64a0ae92000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011611549575b81611510602093836110ca565b8101031261018c57517fffffffff000000000000000000000000000000000000000000000000000000008116810361018c57905f611408565b3d9150611503565b604051600c5491905f816115648561117b565b9182825260208201956001811690815f1461165f5750600114611600575b61158e925003826110ca565b8051156115e95760206021916115e6936040519586925180918585015e8201907f2f000000000000000000000000000000000000000000000000000000000000008483015284820152030160018101845201826110ca565b90565b5050506040516115fa6020826110ca565b5f815290565b5090600c5f527fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7905f915b81831061164357505090602061158e92820101611582565b602091935080600191548385880101520191019091839261162b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001687525061158e92151560051b82016020019050611582565b805f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2054169081156116c7575090565b7f7e273289000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9060ff600a541680611a9e575b50805f52600260205273ffffffffffffffffffffffffffffffffffffffff8060405f2054169316801515806119d3575b50508215918215611984575b73ffffffffffffffffffffffffffffffffffffffff811692831590811561196c575b835f52600260205260405f20857fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558385877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4156118ef57600854835f5260096020528060405f2055680100000000000000008110156107c657836109ec8260016117f3940160085561124e565b156118a1575090506008545f19810190811161021357815f52600960205261181f60405f20549161124e565b90549060031b1c611833816109ec8461124e565b5f52600960205260405f20555f5260096020525f60408120556008548015611874575f19016118618161124e565b5f1982549160031b1b1916905560085590565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b8284036118af575b50505090565b6118b890611293565b915f198301928311610213575f52600660205260405f20825f526020528060405f20555f52600760205260405f20555f80806118a9565b8484146117f3576118ff85611293565b835f52600760205260405f205490865f52600660205260405f2091818103611941575b50845f5260076020525f60408120555f526020525f60408120556117f3565b815f528260205260405f2054815f52836020528060405f20555f52600760205260405f20555f611922565b845f52600360205260405f206001815401905561175d565b6119bb825f52600460205260405f207fffffffffffffffffffffffff00000000000000000000000000000000000000008154169055565b835f52600360205260405f205f19815401905561173b565b80611a43575b156119e4578061172f565b83611a1557507f7e273289000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7f177e802f000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b508084148015611a7e575b806119d95750815f5260046020528073ffffffffffffffffffffffffffffffffffffffff60405f205416146119d9565b50835f52600560205260405f20815f5260205260ff60405f205416611a4e565b611aa7906112ea565b807fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b55657207611ad56101ec83611551565b0390a25f6116ff56fea26469706673582212209f4c144cab7f65be5e7dee1f588ccfc47fa451eed9ffbba682d780d9b467bcbb64736f6c634300081b0033a26469706673582212200e2b48b8e72efb27b23aef19b9a1a94b52203cd0edc888695d3cb71e579f1cb664736f6c634300081b0033","sourceMap":"228:1723:52:-:0;;;;;;;3166:4:8;228:1723:52;;3166:4:8;228:1723:52;;;3166:4:8;228:1723:52;3166:4:8;228:1723:52;;1087:4:19;228:1723:52;;;1087:4:19;228:1723:52;3166:4:8;228:1723:52;;;;;;323:10;228:1723;;;323:10;228:1723;362:1;228:1723;;;;;;354:10;228:1723;;;354:10;228:1723;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c908163026c7c5414611a72575080630a9254e4146118a75780631ed7831c1461181c5780632ade38801461160e578063327bdd1b146112545780633e5e3c23146111c95780633f7286f41461113e57806366d9a9a01461100157806385226c8114610f77578063916a17c614610ec0578063b0464fdc14610e09578063b5508aa914610d7f578063ba414fa614610d5a578063c375419414610855578063c6722f21146106ce578063e20c9f7114610633578063e50750c6146101095763fa7626d4146100e4575f80fd5b34610106578060031936011261010657602060ff601f54166040519015158152f35b80fd5b50346101065780600319360112610106578073ffffffffffffffffffffffffffffffffffffffff60205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105a157604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156105815761061e575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c1673ffffffffffffffffffffffffffffffffffffffff60215416813b1561061a5782916044839260405194859384927f40c10f190000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058157610605575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c16803b156105a1578180916004604051809481937f62a5af3b0000000000000000000000000000000000000000000000000000000083525af18015610581576105f0575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f491cc7c20000000000000000000000000000000000000000000000000000000081528181806102f560048201906001606060808401938281528260208201528260408201520152565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576105db575b5060249073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927fc87b56dd000000000000000000000000000000000000000000000000000000008252600160048301525afa8015610581576103b77fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b556572079160019385916105b9575b50604051918291602083526020830190611daf565b0390a2737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576105a4575b5073ffffffffffffffffffffffffffffffffffffffff60215416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105a157604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156105815761058c575b50602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16606473ffffffffffffffffffffffffffffffffffffffff6021541660405194859384927f501a51620000000000000000000000000000000000000000000000000000000084526004840152600160248401528160448401525af1801561058157610534575080f35b6020813d602011610579575b8161054d60209383611fb1565b81010312610575575173ffffffffffffffffffffffffffffffffffffffff8116036101065780f35b5080fd5b3d9150610540565b6040513d84823e3d90fd5b8161059691611fb1565b61010657805f6104ad565b50fd5b816105ae91611fb1565b61010657805f610424565b6105d591503d8087833e6105cd8183611fb1565b810190612125565b5f6103a2565b816105e591611fb1565b61010657805f61031a565b816105fa91611fb1565b61010657805f61028a565b8161060f91611fb1565b61010657805f61022a565b5050fd5b8161062891611fb1565b61010657805f6101a3565b503461010657806003193601126101065760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b8181106106a25761069e8561069281870382611fb1565b60405191829182611d60565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161067b565b5034610106578060031936011261010657806004602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f054f7d9c0000000000000000000000000000000000000000000000000000000082525afa908115610581578291610826575b506040519061074a606083611fb1565b602282527f496e697469616c2073746174652073686f756c64206e6f742062652066726f7a60208301527f656e0000000000000000000000000000000000000000000000000000000000006040830152737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561061a576107ef91839160405193849283927f7ba0480900000000000000000000000000000000000000000000000000000000845260048401612533565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa8015610581576108155750f35b8161081f91611fb1565b6101065780f35b610848915060203d60201161084e575b6108408183611fb1565b810190611ff2565b5f61073a565b503d610836565b50346101065780600319360112610106578073ffffffffffffffffffffffffffffffffffffffff60205416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105a157604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058157610d45575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c1673ffffffffffffffffffffffffffffffffffffffff60215416813b1561061a5782916044839260405194859384927f40c10f190000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058157610d30575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c1673ffffffffffffffffffffffffffffffffffffffff60215416813b1561061a5782916044839260405194859384927f40c10f190000000000000000000000000000000000000000000000000000000084526004840152600260248401525af1801561058157610d1b575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c16803b156105a1578180916004604051809481937f62a5af3b0000000000000000000000000000000000000000000000000000000083525af1801561058157610d06575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f491cc7c2000000000000000000000000000000000000000000000000000000008152818180610ac860048201906001606060808401938281528260208201528260408201520152565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058157610cf1575b5073ffffffffffffffffffffffffffffffffffffffff601f5460081c166040517fc87b56dd000000000000000000000000000000000000000000000000000000008152600160048201528281602481855afa8015610ce657610b887fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b55657207916001938691610cd25750604051918291602083526020830190611daf565b0390a26040517fc87b56dd000000000000000000000000000000000000000000000000000000008152600260048201528281602481855afa8015610ce657610c097fa109ba539900bf1b633f956d63c96fc89b814c7287f7aa50a9216d0b55657207916002938691610cd25750604051918291602083526020830190611daf565b0390a2803b156105a1578180916004604051809481937fd2bc37f80000000000000000000000000000000000000000000000000000000083525af1801561058157610cbd575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561010657806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610581576108155750f35b81610cc791611fb1565b61010657805f610c4f565b6105d591503d8088833e6105cd8183611fb1565b6040513d85823e3d90fd5b81610cfb91611fb1565b61010657805f610aed565b81610d1091611fb1565b61010657805f610a5d565b81610d2591611fb1565b61010657805f6109fd565b81610d3a91611fb1565b61010657805f610976565b81610d4f91611fb1565b61010657805f6108ef565b50346101065780600319360112610106576020610d7561245a565b6040519015158152f35b5034610106578060031936011261010657601954610d9c8161200a565b91610daa6040519384611fb1565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610dec576040518061069e8782611e47565b600160208192610dfb85612022565b815201920192019190610dd7565b5034610106578060031936011261010657601c54610e268161200a565b91610e346040519384611fb1565b8