UNPKG

@settlemint/solidity-soulbound

Version:

Smart contract set to build an Soulbound token in SettleMint

1 lines 207 kB
{"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":"testBurnBatch","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testBurnFunction","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testDefaultAdminRole","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testDefaultMinterRole","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testMintBatch","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testMintFunction","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testName","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPauseFunction","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testRevertMintNotMinter","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testRevertPauseNotAdmin","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testRevertUnpauseNotAdmin","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSetApprovalForAll","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSetNewUri","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSetNewUriWhenNotAdmin","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSupportsERC165Interface","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSupportsInterface","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSymbol","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testUnpauseFunction","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testUri","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"0x608080604052346102e057600c805460ff199081166001908117909255601f80549091169091179055602080546001600160a01b0319166101231790555f90604081016001600160401b03811182821017610326576040526004815260208101633ab9b2b960e11b81526040516020810190600483835e5f60248201526004815261008b60248261033a565b5190206040519063ffa1864960e01b82526004820152602081602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9081156102d5575f916102e4575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156102e0575f906064604051809481936318caf8e360e31b835260018060a01b031696876004840152604060248401525180918160448501528484015e8181018301859052601f01601f1916810103018183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156102d5576102c0575b5060018060a01b0319602154161760215561017360225461035d565b601f8111610278575b507f68747470733a2f2f6578616d706c652e636f6d2f6d657461646174612f00003a6022556023546101ad9061035d565b601f8111610225575b6043602390815582527f68747470733a2f2f6578616d706c652e636f6d2f6e65772d6d657461646174615f5160206175585f395f51905f5255602f60f81b7fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f4231556040516171c290816103968239f35b60238252601f0160051c5f5160206175585f395f51905f52017fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f42325b81811061026d57506101b6565b828155600101610260565b60228252601f0160051c7f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e510908101905b8181106102b5575061017c565b8281556001016102a8565b6102cd9192505f9061033a565b5f905f610157565b6040513d5f823e3d90fd5b5f80fd5b90506020813d60201161031e575b816102ff6020938361033a565b810103126102e057516001600160a01b03811681036102e0575f6100cc565b3d91506102f2565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b0382119082101761032657604052565b90600182811c9216801561038b575b602083101461037757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161036c56fe6080806040526004361015610012575f80fd5b5f905f3560e01c908163097acdd014612eeb575080630a9254e414612bd05780630d7bd25614612b005780631d0dfb58146129855780631ed7831c146129075780632ade38801461270b5780633e5e3c231461268d5780633f7286f41461260f578063427e053a1461244657806366d9a9a01461230157806377fc70c614612248578063791dc2d814611ee95780637bbf782b14611b4257806385043378146119b857806385226c8114611926578063916a17c61461187c5780639a3857e9146116a4578063b0464fdc146115fa578063b5508aa914611561578063ba414fa61461153c578063be0c609d146114b0578063c9402ebb14610e22578063cc8668de14610d69578063cd76740914610ae0578063e10183ae14610929578063e20c9f711461089b578063e592a044146106be578063e65ca98f1461064a578063e9a4eee214610418578063f547cf4b146102e9578063fa7626d4146102c65763fa7d38321461017e575f80fd5b346102a057806003193601126102a057737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156102a057806040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43616c6c6572206973206e6f742061206d696e746572000000000000000000006044820152818160648183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156102a3576102b1575b506001600160a01b03601f5460081c16803b156102ae578180916044604051809481937f94bf804d00000000000000000000000000000000000000000000000000000000835260026004840152600260248401525af180156102a35761028f5750f35b81610299916132ef565b6102a05780f35b80fd5b6040513d84823e3d90fd5b50fd5b816102bb916132ef565b6102a057805f61022c565b50346102a057806003193601126102a057602060ff601f54166040519015158152f35b50346102a057806003193601126102a0576001600160a01b03601f5460081c166040517fa217fddf000000000000000000000000000000000000000000000000000000008152602081600481855afa90811561040d5783916103d5575b506040517f91d1485400000000000000000000000000000000000000000000000000000000815260048101919091523060248201529060209082908180604481015b03915afa80156102a3576103a39183916103a6575b506139c8565b80f35b6103c8915060203d6020116103ce575b6103c081836132ef565b8101906134de565b5f61039d565b503d6103b6565b90506020813d602011610405575b816103f0602093836132ef565b810103126104015751610388610346565b5f80fd5b3d91506103e3565b6040513d85823e3d90fd5b50346102a057806003193601126102a057806001600160a01b03601f5460081c16803b156102ae578180916004604051809481937f8456cb590000000000000000000000000000000000000000000000000000000083525af180156102a357610635575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156102a057806040517fca669fa700000000000000000000000000000000000000000000000000000000815260016004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156102a357610620575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156102a0576040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f43616c6c6572206973206e6f7420616e2061646d696e20726f6c65206175746860448201527f6f7269736564000000000000000000000000000000000000000000000000000060648201528190818160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156102a35761060b575b506001600160a01b03601f5460081c16803b156102ae578180916004604051809481937f3f4ba83a0000000000000000000000000000000000000000000000000000000083525af180156102a35761028f5750f35b81610615916132ef565b6102a057805f6105b6565b8161062a916132ef565b6102a057805f6104ef565b8161063f916132ef565b6102a057805f61047c565b50346102a057806003193601126102a057806001600160a01b03601f5460081c16803b156102ae578180916044604051809481937fa22cb46500000000000000000000000000000000000000000000000000000000835260036004840152600160248401525af180156102a35761028f5750f35b50346102a057806003193601126102a057806001600160a01b03601f5460081c16604051907fd5391393000000000000000000000000000000000000000000000000000000008252602082600481845afa91821561040d578392610864575b50803b15610860576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001602483015282908290604490829084905af180156102a35761084b575b50506001600160a01b03601f5460081c166040517fd5391393000000000000000000000000000000000000000000000000000000008152602081600481855afa801561040d578390610818575b6040517f91d148540000000000000000000000000000000000000000000000000000000081526004810191909152600160248201529160209150829060449082905afa80156102a3576103a39183916103a657506139c8565b506020813d602011610843575b81610832602093836132ef565b8101031261040157602090516107bf565b3d9150610825565b81610855916132ef565b6102a057805f610772565b5050fd5b925090506020823d602011610893575b81610881602093836132ef565b8101031261040157829151905f61071d565b3d9150610874565b50346102a057806003193601126102a05760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b81811061090a57610906856108fa818703826132ef565b604051918291826130b8565b0390f35b82546001600160a01b03168452602090930192600192830192016108e3565b50346102a057806003193601126102a057806024916001600160a01b03601f5460081c16604051938480927f0e89341c000000000000000000000000000000000000000000000000000000008252600160048301525afa918215610ad3578192610aaf575b5060405181926022546109a081613330565b9060018116908115610a6d5750600114610a16575b50610a11600683867f312e6a736f6e00000000000000000000000000000000000000000000000000006103a3979852037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe68101855201836132ef565b613a4c565b602284529350827f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e5105b858210610a5757505092810160200192610a116109b5565b6001816020925483858801015201910190610a3f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915282151590920284019091019450610a1190506109b5565b610acc9192503d8084833e610ac481836132ef565b8101906137b4565b905f61098e565b50604051903d90823e3d90fd5b50346102a057806003193601126102a057806001600160a01b03601f5460081c16604051907fd5391393000000000000000000000000000000000000000000000000000000008252602082600481845afa91821561040d578392610d32575b50803b15610860576040517f2f2ff15d000000000000000000000000000000000000000000000000000000008152600481019290925230602483015282908290604490829084905af180156102a357610d1d575b506001600160a01b03601f5460081c16803b156102ae578180916044604051809481937f94bf804d00000000000000000000000000000000000000000000000000000000835260026004840152600260248401525af180156102a357610d08575b50506001600160a01b03601f5460081c166040517efdd58e0000000000000000000000000000000000000000000000000000000081526002600482015260016024820152602081604481855afa90811561040d578391610cd5575b50600491610c5e602092613ae3565b604051928380927f561892360000000000000000000000000000000000000000000000000000000082525afa80156102a3578290610ca1575b6103a39150613c69565b506020813d602011610ccd575b81610cbb602093836132ef565b81010312610401576103a39051610c97565b3d9150610cae565b90506020813d602011610d00575b81610cf0602093836132ef565b8101031261040157516004610c4f565b3d9150610ce3565b81610d12916132ef565b6102a057805f610bf4565b81610d27916132ef565b6102a057805f610b93565b925090506020823d602011610d61575b81610d4f602093836132ef565b8101031261040157829151905f610b3f565b3d9150610d42565b50346102a057806003193601126102a0576004816001600160a01b03601f5460081c16604051928380927f06fdde030000000000000000000000000000000000000000000000000000000082525afa80156102a3576103a3918391610e08575b5060405190610dd96040836132ef565b600982527f536f756c626f756e6400000000000000000000000000000000000000000000006020830152613a4c565b610e1c91503d8085833e610ac481836132ef565b5f610dc9565b50346102a057806003193601126102a057806001600160a01b03601f5460081c16604051907fd5391393000000000000000000000000000000000000000000000000000000008252602082600481845afa91821561040d578392611479575b50803b15610860576040517f2f2ff15d000000000000000000000000000000000000000000000000000000008152600481019290925230602483015282908290604490829084905af180156102a357611464575b505080604051610ee66080826132ef565b60038152606090813660208301376001610eff82613845565b526002610f0b8261387f565b526003610f178261388f565b5260405191610f276080846132ef565b600383523660208401376002610f3c83613845565b526003610f488361387f565b526004610f548361388f565b526001600160a01b03601f5460081c16803b15611377578360405180927f6ac4d939000000000000000000000000000000000000000000000000000000008252818381610fa489600483016138d2565b03925af190811561139157849161144f575b50506001600160a01b03601f5460081c166040517efdd58e0000000000000000000000000000000000000000000000000000000081526002600482015260016024820152602081604481855afa90811561140c578591611417575b5061101b90613ae3565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526002600482015260026024820152602081604481855afa90811561140c5785916113d4575b50604491611074602092613b65565b604051928380927efdd58e00000000000000000000000000000000000000000000000000000000825260026004830152600360248301525afa90811561139157849161139c575b506110c590613be7565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610860576040517fca669fa700000000000000000000000000000000000000000000000000000000815260026004820152838160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af190811561139157849161137c575b50506001600160a01b03601f5460081c1691823b15611377576111ab92611199858094604051968795869485937f83ca4b6f00000000000000000000000000000000000000000000000000000000855260406004860152604485019061389f565b9060031984830301602485015261389f565b03925af180156102a357611362575b50506001600160a01b03601f5460081c166040517efdd58e0000000000000000000000000000000000000000000000000000000081526002600482015260016024820152602081604481855afa801561040d57839061132e575b61121e9150613ceb565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526002600482015260026024820152602081604481855afa90811561040d5783916112fb575b50604491611277602092613ceb565b604051928380927efdd58e00000000000000000000000000000000000000000000000000000000825260026004830152600360248301525afa80156102a35782906112c7575b6103a39150613ceb565b506020813d6020116112f3575b816112e1602093836132ef565b81010312610401576103a390516112bd565b3d91506112d4565b90506020813d602011611326575b81611316602093836132ef565b8101031261040157516044611268565b3d9150611309565b506020813d60201161135a575b81611348602093836132ef565b810103126104015761121e9051611214565b3d915061133b565b8161136c916132ef565b6102a057805f6111ba565b505050fd5b81611386916132ef565b61086057825f611138565b6040513d86823e3d90fd5b9350506020833d6020116113cc575b816113b8602093836132ef565b81010312610401576110c5849351906110bb565b3d91506113ab565b9450506020843d602011611404575b816113f0602093836132ef565b810103126104015792518493906044611065565b3d91506113e3565b6040513d87823e3d90fd5b9450506020843d602011611447575b81611433602093836132ef565b810103126104015761101b85945190611011565b3d9150611426565b81611459916132ef565b61086057825f610fb6565b8161146e916132ef565b6102a057805f610ed5565b925090506020823d6020116114a8575b81611496602093836132ef565b8101031261040157829151905f610e81565b3d9150611489565b50346102a057806003193601126102a057602460206001600160a01b03601f5460081c16604051928380927f01ffc9a70000000000000000000000000000000000000000000000000000000082527f01ffc9a70000000000000000000000000000000000000000000000000000000060048301525afa80156102a3576103a39183916103a657506139c8565b50346102a057806003193601126102a05760206115576138ef565b6040519015158152f35b50346102a057806003193601126102a05760195461157e816134f6565b9161158c60405193846132ef565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106115ce57604051806109068782613192565b6001602081926040516115ec816115e5818961343e565b03826132ef565b8152019201920191906115b9565b50346102a057806003193601126102a057601c54611617816134f6565b9161162560405193846132ef565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b8383106116675760405180610906878261320f565b6002602060019260405161167a816132a6565b6001600160a01b03865416815261169285870161350e565b83820152815201920192019190611652565b50346102a057806003193601126102a0576001600160a01b03601f5460081c16803b15611878578160405180927f02fe53050000000000000000000000000000000000000000000000000000000082526020600483015281838161170a60248201613381565b03925af180156102a357611863575b50806024916001600160a01b03601f5460081c16604051938480927f0e89341c000000000000000000000000000000000000000000000000000000008252600160048301525afa918215610ad3578192611847575b50604051819260235461178081613330565b9060018116908115610a6d57506001146117f05750610a11600683867f312e6a736f6e00000000000000000000000000000000000000000000000000006103a3979852037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe68101855201836132ef565b602384529350827fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f42305b85821061183157505092810160200192610a116109b5565b6001816020925483858801015201910190611819565b61185c9192503d8084833e610ac481836132ef565b905f61176e565b61186e8280926132ef565b6102a0575f611719565b5080fd5b50346102a057806003193601126102a057601d54611899816134f6565b916118a760405193846132ef565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b8383106118e95760405180610906878261320f565b600260206001926040516118fc816132a6565b6001600160a01b03865416815261191485870161350e565b838201528152019201920191906118d4565b50346102a057806003193601126102a057601a54611943816134f6565b9161195160405193846132ef565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b83831061199357604051806109068782613192565b6001602081926040516119aa816115e5818961343e565b81520192019201919061197e565b50346102a057806003193601126102a057806001600160a01b0360215416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156102ae57604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156102a357611b2d575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156102a057806040517ff4844814000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156102a357611b18575b506001600160a01b03601f5460081c16803b156102ae578160405180927f02fe530500000000000000000000000000000000000000000000000000000000825260206004830152818381611b0760248201613381565b03925af180156102a35761028f5750f35b81611b22916132ef565b6102a057805f611ab1565b81611b37916132ef565b6102a057805f611a45565b50346102a057806003193601126102a057806001600160a01b03601f5460081c16604051907fd5391393000000000000000000000000000000000000000000000000000000008252602082600481845afa91821561040d578392611eb2575b50803b15610860576040517f2f2ff15d000000000000000000000000000000000000000000000000000000008152600481019290925230602483015282908290604490829084905af180156102a357611e9d575b506001600160a01b03601f5460081c16803b156102ae578180916044604051809481937f94bf804d00000000000000000000000000000000000000000000000000000000835260026004840152600260248401525af180156102a357611e88575b5050604460206001600160a01b03601f5460081c16604051928380927efdd58e00000000000000000000000000000000000000000000000000000000825260026004830152600160248301525afa80156102a3578290611e54575b611cbb9150613ae3565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156102a057806040517fca669fa700000000000000000000000000000000000000000000000000000000815260026004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156102a357611e3f575b506001600160a01b03601f5460081c16803b156102ae578180916044604051809481937fb390c0ab00000000000000000000000000000000000000000000000000000000835260016004840152600160248401525af180156102a357611e2a575b50506001600160a01b03601f5460081c166040517efdd58e0000000000000000000000000000000000000000000000000000000081526002600482015260016024820152602081604481855afa90811561040d578391611df7575b50600491610c5e602092613c69565b90506020813d602011611e22575b81611e12602093836132ef565b8101031261040157516004611de8565b3d9150611e05565b81611e34916132ef565b6102a057805f611d8d565b81611e49916132ef565b6102a057805f611d2c565b506020813d602011611e80575b81611e6e602093836132ef565b8101031261040157611cbb9051611cb1565b3d9150611e61565b81611e92916132ef565b6102a057805f611c56565b81611ea7916132ef565b6102a057805f611bf5565b925090506020823d602011611ee1575b81611ecf602093836132ef565b8101031261040157829151905f611ba1565b3d9150611ec2565b50346102a057806003193601126102a057806001600160a01b03601f5460081c16604051907fd5391393000000000000000000000000000000000000000000000000000000008252602082600481845afa91821561040d578392612211575b50803b15610860576040517f2f2ff15d000000000000000000000000000000000000000000000000000000008152600481019290925230602483015282908290604490829084905af180156102a3576121fc575b505080604051611fad6080826132ef565b6003815260603660208301376002611fc482613845565b526003611fd08261387f565b526004611fdc8261388f565b526001600160a01b03601f5460081c16803b156108605761203083929183926040519485809481937f6ac4d939000000000000000000000000000000000000000000000000000000008352600483016138d2565b03925af180156102a3576121e7575b50506001600160a01b03601f5460081c166040517efdd58e0000000000000000000000000000000000000000000000000000000081526002600482015260016024820152602081604481855afa801561040d5783906121b3575b6120a39150613ae3565b6040517efdd58e0000000000000000000000000000000000000000000000000000000081526002600482015260026024820152602081604481855afa90811561040d578391612180575b506044916120fc602092613b65565b604051928380927efdd58e00000000000000000000000000000000000000000000000000000000825260026004830152600360248301525afa80156102a357829061214c575b6103a39150613be7565b506020813d602011612178575b81612166602093836132ef565b81010312610401576103a39051612142565b3d9150612159565b90506020813d6020116121ab575b8161219b602093836132ef565b81010312610401575160446120ed565b3d915061218e565b506020813d6020116121df575b816121cd602093836132ef565b81010312610401576120a39051612099565b3d91506121c0565b816121f1916132ef565b6102a057805f61203f565b81612206916132ef565b6102a057805f611f9c565b925090506020823d602011612240575b8161222e602093836132ef565b8101031261040157829151905f611f48565b3d9150612221565b50346102a057806003193601126102a0576004816001600160a01b03601f5460081c16604051928380927f95d89b410000000000000000000000000000000000000000000000000000000082525afa80156102a3576103a39183916122e7575b50604051906122b86040836132ef565b600382527f53425400000000000000000000000000000000000000000000000000000000006020830152613a4c565b6122fb91503d8085833e610ac481836132ef565b5f6122a8565b50346102a057806003193601126102a057601b5461231e816134f6565b61232b60405191826132ef565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b83831061240357868587604051928392602084019060208552518091526040840160408260051b8601019392905b82821061239857505050500390f35b919360206123f3827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc06001959799849503018652885190836123e383516040845260408401906130fa565b920151908481840391015261313d565b9601920192018594939192612389565b60026020600192604051612416816132a6565b604051612427816115e5818a61343e565b815261243485870161350e565b8382015281520192019201919061235b565b50346102a057806003193601126102a057806001600160a01b03601f5460081c16803b156102ae578180916004604051809481937f8456cb590000000000000000000000000000000000000000000000000000000083525af180156102a3576125fa575b506001600160a01b03601f5460081c16803b156102ae578180916004604051809481937f3f4ba83a0000000000000000000000000000000000000000000000000000000083525af180156102a3576125e5575b50600460206001600160a01b03601f5460081c16604051928380927f5c975abb0000000000000000000000000000000000000000000000000000000082525afa9081156102a35782916125c6575b50806125545750f35b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156102ae57604051907fa5982885000000000000000000000000000000000000000000000000000000008252151560048201528181602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156102a35761028f5750f35b6125df915060203d6020116103ce576103c081836132ef565b5f61254b565b816125ef916132ef565b6102a057805f6124fd565b81612604916132ef565b6102a057805f6124aa565b50346102a057806003193601126102a05760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b81811061266e57610906856108fa818703826132ef565b82546001600160a01b0316845260209093019260019283019201612657565b50346102a057806003193601126102a05760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106126ec57610906856108fa818703826132ef565b82546001600160a01b03168452602090930192600192830192016126d5565b50346102a057806003193601126102a057601e54612728816134f6565b61273560405191826132ef565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b8383106128765786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106127a15786860387f35b9193957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0908692949603018352855190602060408201926001600160a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b82811061282d57505050505060208060019297019301930190928695949293612794565b9091929394602080612869837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0876001960301895289516130fa565b9701950193929101612809565b604051612882816132a6565b6001600160a01b03835416815260018301805461289e816134f6565b916128ac60405193846132ef565b8183528a526020808b20908b9084015b8382106128e2575050505060019282602092836002950152815201920192019190612765565b6001602081926040516128f9816115e5818a61343e565b8152019301910190916128bc565b50346102a057806003193601126102a05760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b81811061296657610906856108fa818703826132ef565b82546001600160a01b031684526020909301926001928301920161294f565b50346102a057806003193601126102a05780602460206001600160a01b03601f5460081c16604051928380927f01ffc9a70000000000000000000000000000000000000000000000000000000082527fd9b67a260000000000000000000000000000000000000000000000000000000060048301525afa9081156102a3578291612ae1575b506040805191612a1a82846132ef565b601f83527f73686f756c6420737570706f72742045524331363520696e746572666163650060208401521580612a4f57505050f35b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561137757612ab0928491835194859283927fa34edc0300000000000000000000000000000000000000000000000000000000845215600484015285602484015260448301906130fa565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115612ad8575061028f5750f35b513d84823e3d90fd5b612afa915060203d6020116103ce576103c081836132ef565b5f612a0a565b50346102a057806003193601126102a057806001600160a01b03601f5460081c16803b156102ae578180916004604051809481937f8456cb590000000000000000000000000000000000000000000000000000000083525af180156102a357612bbb575b5050600460206001600160a01b03601f5460081c16604051928380927f5c975abb0000000000000000000000000000000000000000000000000000000082525afa80156102a3576103a39183916103a657506139c8565b81612bc5916132ef565b6102a057805f612b64565b50346102a057806003193601126102a0576040516134238082019082821067ffffffffffffffff831117612ebe57908291613d6a8339039082f08015610ad3576001600160a01b03907fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff00601f549260081b1691161780601f5560081c1690813b156102a0576040517fa6487c5300000000000000000000000000000000000000000000000000000000815260606004820152600960648201527f536f756c626f756e640000000000000000000000000000000000000000000000608482015260a06024820152600360a48201527f534254000000000000000000000000000000000000000000000000000000000060c482015260e0604482015281602254612d0d81613330565b908160e48501526001811690815f14612e7d5750600114612e27575b50818394818581819503925af180156102a357612e12575b506001600160a01b03601f5460081c16604051907fa217fddf000000000000000000000000000000000000000000000000000000008252602082600481845afa91821561040d578392612ddb575b50803b15610860576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092523060248301528290829081838160448101611b07565b925090506020823d602011612e0a575b81612df8602093836132ef565b8101031261040157829151905f612d8f565b3d9150612deb565b81612e1c916132ef565b6102a057805f612d41565b602284528391507f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e5105b818310612e6557505081016101040181612d29565b80548385016101040152602090920191600101612e50565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166101048086019190915291151560051b84019091019150829050612d29565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b905034610401575f60031936011261040157737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610401577fca669fa7000000000000000000000000000000000000000000000000000000008152600160048201525f8160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156130ad5761309a575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156102a0576040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f43616c6c6572206973206e6f7420616e2061646d696e20726f6c65206175746860448201527f6f7269736564000000000000000000000000000000000000000000000000000060648201528190818160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156102a357613085575b506001600160a01b03601f5460081c16803b156102ae578180916004604051809481937f8456cb590000000000000000000000000000000000000000000000000000000083525af180156102a35761028f5750f35b8161308f916132ef565b6102a057805f613030565b6130a691505f906132ef565b5f5f612f6a565b6040513d5f823e3d90fd5b60206040818301928281528451809452019201905f5b8181106130db5750505090565b82516001600160a01b03168452602093840193909201916001016130ce565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b81811061315a5750505090565b82517fffffffff000000000000000000000000000000000000000000000000000000001684526020938401939092019160010161314d565b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106131c457505050505090565b9091929394602080613200837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516130fa565b970193019301919392906131b5565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061324157505050505090565b9091929394602080613297837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187526040838b516001600160a01b0381511684520151918185820152019061313d565b97019301930191939290613232565b6040810190811067ffffffffffffffff8211176132c257604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176132c257604052565b90600182811c92168015613377575b602083101461334a57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f169161333f565b6023545f929161339082613330565b808252916001811690811561340457506001146133ab575050565b60235f9081529293509091907fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f42305b8383106133ea575060209250010190565b6001816020929493945483858701015201910191906133d9565b60209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b5f929181549161344d83613330565b80835292600181169081156134a2575060011461346957505050565b5f9081526020812093945091925b838310613488575060209250010190565b600181602092949394548385870101520191019190613477565b905060209495507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091509291921683830152151560051b010190565b90816020910312610401575180151581036104015790565b67ffffffffffffffff81116132c25760051b60200190565b90604051918281549182825260208201905f5260205f20925f905b8060078301106137275761357f9454918181106136f1575b8181106136bb575b818110613685575b81811061364f575b818110613619575b8181106135e3575b8181106135ae575b10613581575b5003836132ef565b565b7fffffffff000000000000000000000000000000000000000000000000000000001681526020015f613577565b9260206001917fffffffff0000000000000000000000000000000000000000000000000000000085831b168152019301613571565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560401b168152019301613569565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301613561565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560801b168152019301613559565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560a01b168152019301613551565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560c01b168152019301613549565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560e01b168152019301613541565b9160089193506101006001917fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e0820152019401920185929391613529565b6020818303126104015780519067ffffffffffffffff8211610401570181601f820112156104015780519067ffffffffffffffff82116132c25760405192613824601f84017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016602001856132ef565b8284526020838301011161040157815f9260208093018386015e8301015290565b8051156138525760200190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b8051600110156138525760400190565b8051600210156138525760600190565b90602080835192838152019201905f5b8181106138bc5750505090565b82518452602093840193909201916001016138af565b919060206138ea60029260408652604086019061389f565b930152565b60085460ff16156138ff57600190565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa9081156130ad575f91613996575b50151590565b90506020813d6020116139c0575b816139b1602093836132ef565b8101031261040157515f613990565b3d91506139a4565b15806139d15750565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561040157604051907f0c9fd5810000000000000000000000000000000000000000000000000000000082521560048201525f81602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156130ad57613a425750565b5f61357f916132ef565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561040157613aab5f91613abd60405194859384937ff320d9630000000000000000000000000000000000000000000000000000000085526040600486015260448501906130fa565b906003198483030160248501526130fa565b0381737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156130ad57613a425750565b60028103613aee5750565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561040157604051907f98296c540000000000000000000000000000000000000000000000000000000082526004820152600260248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156130ad57613a425750565b60038103613b705750565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561040157604051907f98296c540000000000000000000000000000000000000000000000000000000082526004820152600360248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156130ad57613a425750565b60048103613bf25750565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561040157604051907f98296c540000000000000000000000000000000000000000000000000000000082526004820152600460248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156130ad57613a425750565b60018103613c745750565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561040157604051907f98296c540000000000000000000000000000000000000000000000000000000082526004820152600160248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156130ad57613a425750565b80613cf35750565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561040157604051907f98296c5400000000000000000000000000000000000000000000000000000000825260048201525f60248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156130ad57613a42575056fe60a08060405234602957306080526133f5908161002e8239608051818181610e2601526110230152f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8062fdd58e1461022357806301ffc9a71461021e57806302fe53051461021957806306fdde03146102145780630e89341c1461020f57806318160ddd1461020a578063248a9ca3146102055780632eb2c2d6146102005780632f2ff15d146101fb57806336568abe146101f65780633f4ba83a146101f15780634e1273f4146101ec5780634f1ef286146101e75780634f558e79146101e257806352d1902d146101dd57806356189236146101d85780635c975abb146101d35780636ac4d939146101ce57806383ca4b6f146101c95780638456cb59146101c457806391d14854146101bf57806394bf804d146101ba57806395d89b41146101b5578063a217fddf146101b0578063a22cb465146101ab578063a6487c53146101a6578063ad3cb1cc146101a1578063b390c0ab1461019c578063bd85b03914610197578063d539139314610192578063d547741f1461018d578063e985e9c5146101885763f242432a14610183575f80fd5b611ae5565b611a83565b611a26565b6119ec565b6119a3565b61194c565b6118ed565b61163a565b611548565b61152e565b611489565b6113d4565b611365565b611274565b6111d4565b6110d0565b61108f565b611073565b611009565b610fbe565b610de7565b610d26565b610bf4565b610b97565b610b35565b610aa8565b6109e1565b6109a5565b6107bd565b6106e3565b6104ed565b6102ff565b61026c565b600435906001600160a01b038216820361023e57565b5f80fd5b602435906001600160a01b038216820361023e57565b35906001600160a01b038216820361023e57565b3461023e57604060031936011261023e5760206102cc61028a610228565b6024355f527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b7fffffffff0000000000000000000000000000000000000000000000000000000081160361023e57565b3461023e57602060031936011261023e577fffffffff0000000000000000000000000000000000000000000000000000000060043561033d816102d5565b167f0e083076000000000000000000000000000000000000000000000000000000008114908115610377575b506040519015158152602090f35b7f7965db0b000000000000000000000000000000000000000000000000000000008114915081156103aa575b505f610369565b7fd9b67a260000000000000000000000000000000000000000000000000000000081149150811561040e575b81156103e4575b505f6103a3565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150145f6103dd565b7f0e89341c00000000000000000000000000000000000000000000000000000000811491506103d6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f601f19910116810190811067ffffffffffffffff82111761048857604052565b610438565b67ffffffffffffffff811161048857601f01601f191660200190565b81601f8201121561023e576020813591016104c38261048d565b926104d16040519485610465565b8284528282011161023e57815f92602092838601378301015290565b3461023e57602060031936011261023e5760043567ffffffffffffffff811161023e576105216105629136906004016104a9565b335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d6020526040902061055d9060ff905b5416611bce565b61220d565b005b90600182811c921680156105ab575b602083101461057e57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610573565b604051905f827f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450254916105e783610564565b808352926001811690811561068b575060011461060d575b61060b92500383610465565b565b507f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45025f90815290917ff429cb5e2ec84cbb765e76b31964a56ccde03e7a6122d6cc4afb19edc55edeed5b81831061066f57505090602061060b928201016105ff565b6020919350806001915483858901015201910190918492610657565b6020925061060b94915060ff191682840152151560051b8201016105ff565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b9060206106e09281815201906106aa565b90565b3461023e575f60031936011261023e576040515f60015461070381610564565b8084529060018116908115610799575060011461073b575b6107378361072b81850382610465565b604051918291826106cf565b0390f35b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b80821061077f5750909150810160200161072b61071b565b919260018160209254838588010152019101909291610767565b60ff191660208086019190915291151560051b8401909101915061072b905061071b565b3461023e57602060031936011261023e576004356107d96105b5565b81825f937a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000081101561097a575b50806d04ee2d6d415b85acef8100000000600a92101561095e575b662386f26fc10000811015610949575b6305f5e100811015610937575b612710811015610927575b6064811015610918575b101561090d575b61089e5f1960216108686001870161235e565b958601015b01917f3031323334353637383961626364656600000000000000000000000000000000600a82061a8353600a900490565b9081156108b15761089e905f199061086d565b6040516107379061072b816108ff6108d6896108d0602085018b611c59565b90611c59565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000815260050190565b03601f198101835282610465565b600190920191610855565b6002906064900494019361084e565b6004906127109004940193610844565b6008906305f5e1009004940193610839565b601090662386f26fc10000900494019361082c565b6020906d04ee2d6d415b85acef8100000000900494019361081c565b604094507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000090049050600a610801565b3461023e575f60031936011261023e5760207f4a593662ee04d27b6a00ebb31be7fe0c102c2ade82a7c5d764f2df05dc4e280154604051908152f35b3461023e57602060031936011261023e576020610a2b6004355f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052600160405f20015490565b604051908152f35b67ffffffffffffffff81116104885760051b60200190565b9080601f8301121561023e578135610a6281610a33565b92610a706040519485610465565b81845260208085019260051b82010192831161023e57602001905b828210610a985750505090565b8135815260209182019101610a8b565b3461023e5760a060031936011261023e57610ac1610228565b610ac9610242565b9060443567ffffffffffffffff811161023e57610aea903690600401610a4b565b60643567ffffffffffffffff811161023e57610b0a903690600401610a4b565b906084359367ffffffffffffffff851161023e57610b2f6105629536906004016104a9565b93611c6b565b3461023e57604060031936011261023e57610562600435610b54610242565b90610b92610b8d825f527f02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800602052600160405f20015490565b612385565b6124b4565b3461023e57604060031936011261023e57600435610bb3610242565b336001600160a01b03821603610bcc576105629161258c565b7f6697b232000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461023e575f60031936011261023e57335f9081527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260409020610c3d9060ff90610556565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff811615610cba5760ff19167fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b7f8dfc202b000000000000000000000000000000000000000000000000000000005f5260045ffd5b90602080835192838152019201905f5b818110610cff5750505090565b8251845260209384019390920191600101610cf2565b9060206106e0928181520190610ce2565b3461023e57604060031936011261023e5760043567ffffffffffffffff811161023e573660238201121561023e57806004013590610d6382610a33565b91610d716040519384610465565b8083526024602084019160051b8301019136831161023e57602401905b828210610dcf578360243567ffffffffffffffff811161023e5761073791610dbd610dc3923690600401610a4b565b90611d5f565b60405191829182610d15565b60208091610ddc84610258565b815201910190610d8e565b604060031936011261023e57610dfb610228565b60243567ffffffffffffffff811161023e57610e1b9036906004016104a9565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803014908115610f89575b50610f6157604051917f52d1902d0000000000000000000000000000000000000000000000000000000083526020836004816001600160a01b0386165afa5f9381610f30575b50610ed1577f4c9c8ce3000000000000000000000000000000000000000000000000000000005f526001600160a01b03821660045260245ffd5b907f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8303610f03576105629250612c36565b7faa1d49a4000000000000000000000000000000000000000000000000000000005f52600483905260245ffd5b610f5391945060203d602011610f5a575b610f4b8183610465565b81019061265c565b925f610e97565b503d610f41565b7fe07c8