@excubiae/contracts
Version:
1 lines • 285 kB
JSON
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deployer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"evidence","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"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":"guarded","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"notOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subject","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"test_factory_deployAndInitialize","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_policy_enforceMain_whenCallerNotTarget_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforceMain_whenCheckFails_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforceMain_whenMultipleValid_succeeds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforceMain_whenValid_succeeds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforcePost_whenCallerNotTarget_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforcePost_whenCheckFails_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforcePost_whenChecksSkipped_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforcePost_whenValid_succeeds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforcePre_whenCallerNotTarget_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforcePre_whenCheckFails_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforcePre_whenChecksSkipped_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforcePre_whenTokenDoesNotExist_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_enforcePre_whenValid_succeeds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_getAppendedBytes","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_policy_setTarget_whenAlreadySet_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_setTarget_whenCallerNotOwner_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_setTarget_whenValid_succeeds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_setTarget_whenZeroAddress_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_policy_trait_returnsCorrectValue","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_policy_whenAlreadyInitialized_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wrongEvidence","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"event","name":"Enforced","inputs":[{"name":"subject","type":"address","indexed":true,"internalType":"address"},{"name":"guarded","type":"address","indexed":true,"internalType":"address"},{"name":"evidence","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"checkType","type":"uint8","indexed":false,"internalType":"enum Check"}],"anonymous":false},{"type":"event","name":"TargetSet","inputs":[{"name":"guarded","type":"address","indexed":true,"internalType":"address"}],"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":"0x60806040819052600c8054600160ff199182168117909255601f8054909116821790556001625e79b760e01b0319909152608452737109709ecfa91a80626ff3989d68f67f5b1dd12d63ffa1864960a4602060405180830381865afa15801561006a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061008e91906102d0565b602880546001600160a01b0319166001600160a01b03929092169190911790556040516001625e79b760e01b0319815260026004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156100ff573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061012391906102d0565b602980546001600160a01b0319166001600160a01b03929092169190911790556040516001625e79b760e01b0319815260036004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa158015610194573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b891906102d0565b602a80546001600160a01b0319166001600160a01b03929092169190911790556040516001625e79b760e01b03198152600480820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa158015610228573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061024c91906102d0565b602b80546001600160a01b0319166001600160a01b0392909216919091179055604080515f602082015201604051602081830303815290604052602c90816102949190610395565b50604080516001602082015201604051602081830303815290604052602d90816102be9190610395565b503480156102ca575f5ffd5b5061044f565b5f602082840312156102e0575f5ffd5b81516001600160a01b03811681146102f6575f5ffd5b9392505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061032557607f821691505b60208210810361034357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561039057805f5260205f20601f840160051c8101602085101561036e5750805b601f840160051c820191505b8181101561038d575f815560010161037a565b50505b505050565b81516001600160401b038111156103ae576103ae6102fd565b6103c2816103bc8454610311565b84610349565b6020601f8211600181146103f4575f83156103dd5750848201515b5f19600385901b1c1916600184901b17845561038d565b5f84815260208120601f198516915b828110156104235787850151825560209485019460019092019101610403565b508482101561044057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b61a5978061045c5f395ff3fe608060405234801561000f575f5ffd5b50600436106102b7575f3560e01c806389d8bda911610171578063c7e76f91116100d2578063e20c9f7111610088578063e5f05d701161006e578063e5f05d70146104cd578063eb5579d6146104d5578063fa7626d4146104dd575f5ffd5b8063e20c9f71146104bd578063e29e1216146104c5575f5ffd5b8063d25a8bd7116100b8578063d25a8bd71461048d578063d5f3948814610495578063db5b7a51146104b5575f5ffd5b8063c7e76f911461047d578063cc0d324614610485575f5ffd5b8063a77e098711610127578063b5508aa91161010d578063b5508aa914610455578063b75463761461045d578063ba414fa614610465575f5ffd5b8063a77e098714610445578063b0464fdc1461044d575f5ffd5b80638c43b05e116101575780638c43b05e14610420578063916a17c61461042857806396c02bf91461043d575f5ffd5b806389d8bda9146104105780638bc2ff3c14610418575f5ffd5b806349c4090c1161021b5780636bcc0ca3116101d157806385226c81116101b757806385226c81146103eb578063861735b81461040057806386d982a314610408575f5ffd5b80636bcc0ca3146103c357806372f7a030146103cb575f5ffd5b80634e693a63116102015780634e693a631461039e5780634ffcf963146103a657806366d9a9a0146103ae575f5ffd5b806349c4090c146103815780634a7f21b014610389575f5ffd5b80631ed7831c116102705780632ade3880116102565780632ade38801461035c5780633e5e3c23146103715780633f7286f414610379575f5ffd5b80631ed7831c14610327578063251c9d631461033c575f5ffd5b80630d101035116102a05780630d1010351461030f578063124f19fd146103175780631494b15f1461031f575f5ffd5b80630a59a98c146102bb5780630a9254e414610305575b5f5ffd5b602a546102db9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61030d6104ea565b005b61030d61110b565b61030d6115ab565b61030d611984565b61032f611efb565b6040516102fc9190616087565b602b546102db9073ffffffffffffffffffffffffffffffffffffffff1681565b610364611f68565b6040516102fc919061612b565b61032f6120b1565b61032f61211c565b61030d612187565b610391612560565b6040516102fc919061623d565b61030d6125ec565b61030d6127a3565b6103b6612ec0565b6040516102fc91906162b2565b61030d613039565b6029546102db9073ffffffffffffffffffffffffffffffffffffffff1681565b6103f36134bc565b6040516102fc919061634e565b61030d613587565b61030d613745565b61030d613a0a565b61030d613afa565b61030d613f7d565b6104306143e5565b6040516102fc91906163c3565b61030d6144e8565b6103916149f9565b610430614a06565b6103f3614b09565b61030d614bd4565b61046d614f39565b60405190151581526020016102fc565b61030d615009565b61030d6151f0565b61030d6154b5565b6028546102db9073ffffffffffffffffffffffffffffffffffffffff1681565b61030d6156b4565b61032f61586a565b61030d6158d5565b61030d615b9a565b61030d615e1c565b601f5461046d9060ff1681565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015610566575f5ffd5b505af1158015610578573d5f5f3e3d5ffd5b5050505060405161058890616053565b604051809103905ff0801580156105a1573d5f5f3e3d5ffd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516105ee90616053565b604051809103905ff080158015610607573d5f5f3e3d5ffd5b50602080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560405161065990616060565b604051809103905ff080158015610672573d5f5f3e3d5ffd5b50602280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169190911790556040516106c49061606d565b604051809103905ff0801580156106dd573d5f5f3e3d5ffd5b5060245f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610784575f5ffd5b505af1158015610796573d5f5f3e3d5ffd5b5050602254601f546040517f4c96a38900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101009092048216600482015291169250634c96a38991506024015f604051808303815f87803b15801561080b575f5ffd5b505af115801561081d573d5f5f3e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af115801561088d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526108d291908101906165ea565b90505f815f815181106108e7576108e761678e565b60200260200101515f01516001815181106109045761090461678e565b6020908102919091010151602180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055604080517f41af2f520000000000000000000000000000000000000000000000000000000081529051919250737109709ecfa91a80626ff3989d68f67f5b1dd12d916341af2f52916004808201925f9290919082900301818387803b1580156109b6575f5ffd5b505af11580156109c8573d5f5f3e3d5ffd5b505060248054601f546020546021546040517fb775400200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff61010090940484166004820152918316948201949094529281166044840152600160648401525f6084840152600a60a484015216925063b7754002915060c4015f604051808303815f87803b158015610a69575f5ffd5b505af1158015610a7b573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015610aea573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610b2f91908101906165ea565b91505f825f81518110610b4457610b4461678e565b60200260200101515f0151600181518110610b6157610b6161678e565b6020908102919091010151602380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055604051909150610bbb9061607a565b604051809103905ff080158015610bd4573d5f5f3e3d5ffd5b5060275f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610c7b575f5ffd5b505af1158015610c8d573d5f5f3e3d5ffd5b50506027546023546040517f4cb6643d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201525f60248201819052604482015291169250634cb6643d91506064015f604051808303815f87803b158015610d0a575f5ffd5b505af1158015610d1c573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015610d8b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610dd091908101906165ea565b92505f835f81518110610de557610de561678e565b60200260200101515f0151600181518110610e0257610e0261678e565b6020908102919091010151602580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055604080517f41af2f520000000000000000000000000000000000000000000000000000000081529051919250737109709ecfa91a80626ff3989d68f67f5b1dd12d916341af2f52916004808201925f9290919082900301818387803b158015610eb4575f5ffd5b505af1158015610ec6573d5f5f3e3d5ffd5b50506027546023546040517f4cb6643d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152600160248201819052604482015291169250634cb6643d91506064015f604051808303815f87803b158015610f44575f5ffd5b505af1158015610f56573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015610fc5573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261100a91908101906165ea565b93505f845f8151811061101f5761101f61678e565b60200260200101515f015160018151811061103c5761103c61678e565b6020908102919091010151602680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055604080517f90c5013b0000000000000000000000000000000000000000000000000000000081529051919250737109709ecfa91a80626ff3989d68f67f5b1dd12d916390c5013b916004808201925f9290919082900301818387803b1580156110ee575f5ffd5b505af1158015611100573d5f5f3e3d5ffd5b505050505050505050565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015611187575f5ffd5b505af1158015611199573d5f5f3e3d5ffd5b50506025546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b158015611209575f5ffd5b505af115801561121b573d5f5f3e3d5ffd5b5050601f54602a546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015611290575f5ffd5b505af11580156112a2573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561130d575f5ffd5b505af115801561131f573d5f5f3e3d5ffd5b50506029546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801561139f575f5ffd5b505af11580156113b1573d5f5f3e3d5ffd5b50506040517f491cc7c200000000000000000000000000000000000000000000000000000000815260016004820181905260248201819052604482018190526064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063491cc7c291506084015f604051808303815f87803b15801561142d575f5ffd5b505af115801561143f573d5f5f3e3d5ffd5b5050602954602a5460405173ffffffffffffffffffffffffffffffffffffffff9283169450911691507fc7819cb036063a47030dcfe5c7ec9aa238cf78ae59b1d2000fa93abf542b24839061149890602c905f9061691a565b60405180910390a3602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316926314423fde926114ff92911690602c905f9060040161693b565b5f604051808303815f87803b158015611516575f5ffd5b505af1158015611528573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611593575f5ffd5b505af11580156115a5573d5f5f3e3d5ffd5b50505050565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015611627575f5ffd5b505af1158015611639573d5f5f3e3d5ffd5b50506025546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b1580156116a9575f5ffd5b505af11580156116bb573d5f5f3e3d5ffd5b5050601f54602a546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015611730575f5ffd5b505af1158015611742573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156117ad575f5ffd5b505af11580156117bf573d5f5f3e3d5ffd5b50506029546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801561183f575f5ffd5b505af1158015611851573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f471549450000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb393506118f7920161623d565b5f604051808303815f87803b15801561190e575f5ffd5b505af1158015611920573d5f5f3e3d5ffd5b5050602554602b546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde93506114ff9290911690602c905f9060040161693b565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015611a00575f5ffd5b505af1158015611a12573d5f5f3e3d5ffd5b50506025546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b158015611a82575f5ffd5b505af1158015611a94573d5f5f3e3d5ffd5b5050601f54602a546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015611b09575f5ffd5b505af1158015611b1b573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611b86575f5ffd5b505af1158015611b98573d5f5f3e3d5ffd5b50506029546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015611c18575f5ffd5b505af1158015611c2a573d5f5f3e3d5ffd5b5050602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde9350611c8e9290911690602c905f9060040161693b565b5f604051808303815f87803b158015611ca5575f5ffd5b505af1158015611cb7573d5f5f3e3d5ffd5b5050602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde9350611d1c9290911690602c9060019060040161693b565b5f604051808303815f87803b158015611d33575f5ffd5b505af1158015611d45573d5f5f3e3d5ffd5b5050602054602a546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015291169250636a62784291506024015f604051808303815f87803b158015611db5575f5ffd5b505af1158015611dc7573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f471549450000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb39350611e6d920161623d565b5f604051808303815f87803b158015611e84575f5ffd5b505af1158015611e96573d5f5f3e3d5ffd5b5050602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde93506114ff9290911690602c9060029060040161693b565b60606016805480602002602001604051908101604052809291908181526020018280548015611f5e57602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611f33575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b828210156120a8575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b82821015612091578382905f5260205f20018054612006906167bb565b80601f0160208091040260200160405190810160405280929190818152602001828054612032906167bb565b801561207d5780601f106120545761010080835404028352916020019161207d565b820191905f5260205f20905b81548152906001019060200180831161206057829003601f168201915b505050505081526020019060010190611fe9565b505050508152505081526020019060010190611f8b565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015611f5e57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611f33575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015611f5e57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611f33575050505050905090565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015612203575f5ffd5b505af1158015612215573d5f5f3e3d5ffd5b50506026546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b158015612285575f5ffd5b505af1158015612297573d5f5f3e3d5ffd5b5050601f54602a546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b15801561230c575f5ffd5b505af115801561231e573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612389575f5ffd5b505af115801561239b573d5f5f3e3d5ffd5b50506029546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801561241b575f5ffd5b505af115801561242d573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb47f54840000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb393506124d3920161623d565b5f604051808303815f87803b1580156124ea575f5ffd5b505af11580156124fc573d5f5f3e3d5ffd5b5050602654602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde93506114ff9290911690602c905f9060040161693b565b602d805461256d906167bb565b80601f0160208091040260200160405190810160405280929190818152602001828054612599906167bb565b80156125e45780601f106125bb576101008083540402835291602001916125e4565b820191905f5260205f20905b8154815290600101906020018083116125c757829003601f168201915b505050505081565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015612668575f5ffd5b505af115801561267a573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd92e233d0000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb39350612720920161623d565b5f604051808303815f87803b158015612737575f5ffd5b505af1158015612749573d5f5f3e3d5ffd5b50506025546040517f776d1a010000000000000000000000000000000000000000000000000000000081525f600482015273ffffffffffffffffffffffffffffffffffffffff909116925063776d1a0191506024016114ff565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801561281f575f5ffd5b505af1158015612831573d5f5f3e3d5ffd5b50506025546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b1580156128a1575f5ffd5b505af11580156128b3573d5f5f3e3d5ffd5b5050601f54602a546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015612928575f5ffd5b505af115801561293a573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156129a5575f5ffd5b505af11580156129b7573d5f5f3e3d5ffd5b50506029546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015612a37575f5ffd5b505af1158015612a49573d5f5f3e3d5ffd5b5050602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde9350612aad9290911690602c905f9060040161693b565b5f604051808303815f87803b158015612ac4575f5ffd5b505af1158015612ad6573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612b41575f5ffd5b505af1158015612b53573d5f5f3e3d5ffd5b5050602a546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015612bd3575f5ffd5b505af1158015612be5573d5f5f3e3d5ffd5b5050601f54602a546029546040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316600482015290821660248201525f60448201526101009092041692506323b872dd91506064015f604051808303815f87803b158015612c6b575f5ffd5b505af1158015612c7d573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612ce8575f5ffd5b505af1158015612cfa573d5f5f3e3d5ffd5b50506029546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015612d7a575f5ffd5b505af1158015612d8c573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f471549450000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb39350612e32920161623d565b5f604051808303815f87803b158015612e49575f5ffd5b505af1158015612e5b573d5f5f3e3d5ffd5b5050602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde93506114ff9290911690602c9060019060040161693b565b6060601b805480602002602001604051908101604052809291908181526020015f905b828210156120a8578382905f5260205f2090600202016040518060400160405290815f82018054612f13906167bb565b80601f0160208091040260200160405190810160405280929190818152602001828054612f3f906167bb565b8015612f8a5780601f10612f6157610100808354040283529160200191612f8a565b820191905f5260205f20905b815481529060010190602001808311612f6d57829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561302157602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411612fce5790505b50505050508152505081526020019060010190612ee3565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156130b5575f5ffd5b505af11580156130c7573d5f5f3e3d5ffd5b50506025546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b158015613137575f5ffd5b505af1158015613149573d5f5f3e3d5ffd5b5050601f54602a546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b1580156131be575f5ffd5b505af11580156131d0573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561323b575f5ffd5b505af115801561324d573d5f5f3e3d5ffd5b50506029546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156132cd575f5ffd5b505af11580156132df573d5f5f3e3d5ffd5b5050602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde93506133439290911690602c905f9060040161693b565b5f604051808303815f87803b15801561335a575f5ffd5b505af115801561336c573d5f5f3e3d5ffd5b50506040517f491cc7c200000000000000000000000000000000000000000000000000000000815260016004820181905260248201819052604482018190526064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063491cc7c291506084015f604051808303815f87803b1580156133e8575f5ffd5b505af11580156133fa573d5f5f3e3d5ffd5b5050602954602a5460405173ffffffffffffffffffffffffffffffffffffffff9283169450911691507fc7819cb036063a47030dcfe5c7ec9aa238cf78ae59b1d2000fa93abf542b24839061345490602c9060019061691a565b60405180910390a3602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316926314423fde926114ff92911690602c9060019060040161693b565b6060601a805480602002602001604051908101604052809291908181526020015f905b828210156120a8578382905f5260205f200180546134fc906167bb565b80601f0160208091040260200160405190810160405280929190818152602001828054613528906167bb565b80156135735780601f1061354a57610100808354040283529160200191613573565b820191905f5260205f20905b81548152906001019060200180831161355657829003601f168201915b5050505050815260200190600101906134df565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015613603575f5ffd5b505af1158015613615573d5f5f3e3d5ffd5b50506040517f491cc7c200000000000000000000000000000000000000000000000000000000815260016004820181905260248201819052604482018190526064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063491cc7c291506084015f604051808303815f87803b158015613691575f5ffd5b505af11580156136a3573d5f5f3e3d5ffd5b505060295460405173ffffffffffffffffffffffffffffffffffffffff90911692507f3bfb4bbf112628248058745a3c57e35b13369386e474b8e56c552f3063a4a19691505f90a26025546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015291169063776d1a01906024016114ff565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156137c1575f5ffd5b505af11580156137d3573d5f5f3e3d5ffd5b50506025546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b158015613843575f5ffd5b505af1158015613855573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156138c0575f5ffd5b505af11580156138d2573d5f5f3e3d5ffd5b5050602a546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015613952575f5ffd5b505af1158015613964573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7d24b6fc0000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb39350611e6d920161623d565b602554604080517fce343deb0000000000000000000000000000000000000000000000000000000081529051613af89273ffffffffffffffffffffffffffffffffffffffff169163ce343deb916004808301925f9291908290030181865afa158015613a78573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613abd9190810190616980565b6040518060400160405280600e81526020017f416476616e636564455243373231000000000000000000000000000000000000815250615f25565b565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015613b76575f5ffd5b505af1158015613b88573d5f5f3e3d5ffd5b50506025546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b158015613bf8575f5ffd5b505af1158015613c0a573d5f5f3e3d5ffd5b5050601f54602a546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015613c7f575f5ffd5b505af1158015613c91573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015613cfc575f5ffd5b505af1158015613d0e573d5f5f3e3d5ffd5b50506029546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015613d8e575f5ffd5b505af1158015613da0573d5f5f3e3d5ffd5b5050602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde9350613e049290911690602c905f9060040161693b565b5f604051808303815f87803b158015613e1b575f5ffd5b505af1158015613e2d573d5f5f3e3d5ffd5b50506040517f491cc7c200000000000000000000000000000000000000000000000000000000815260016004820181905260248201819052604482018190526064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063491cc7c291506084015f604051808303815f87803b158015613ea9575f5ffd5b505af1158015613ebb573d5f5f3e3d5ffd5b5050602954602a5460405173ffffffffffffffffffffffffffffffffffffffff9283169450911691507fc7819cb036063a47030dcfe5c7ec9aa238cf78ae59b1d2000fa93abf542b248390613f1590602c9060019061691a565b60405180910390a3602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff928316926314423fde9261334392911690602c9060019060040161693b565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015613ff9575f5ffd5b505af115801561400b573d5f5f3e3d5ffd5b50506026546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b15801561407b575f5ffd5b505af115801561408d573d5f5f3e3d5ffd5b5050601f54602a546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015614102575f5ffd5b505af1158015614114573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561417f575f5ffd5b505af1158015614191573d5f5f3e3d5ffd5b50506029546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015614211575f5ffd5b505af1158015614223573d5f5f3e3d5ffd5b5050602654602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde93506142889290911690602c9060019060040161693b565b5f604051808303815f87803b15801561429f575f5ffd5b505af11580156142b1573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb0ee30f30000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb39350614357920161623d565b5f604051808303815f87803b15801561436e575f5ffd5b505af1158015614380573d5f5f3e3d5ffd5b5050602654602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde93506114ff9290911690602c9060029060040161693b565b6060601d805480602002602001604051908101604052809291908181526020015f905b828210156120a8575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156144d057602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161447d5790505b50505050508152505081526020019060010190614408565b6028546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015614564575f5ffd5b505af1158015614576573d5f5f3e3d5ffd5b50506025546029546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b1580156145e6575f5ffd5b505af11580156145f8573d5f5f3e3d5ffd5b5050601f54602a546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b15801561466d575f5ffd5b505af115801561467f573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156146ea575f5ffd5b505af11580156146fc573d5f5f3e3d5ffd5b50506029546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801561477c575f5ffd5b505af115801561478e573d5f5f3e3d5ffd5b5050602554602a546040517f14423fde00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831694506314423fde93506147f29290911690602c905f9060040161693b565b5f604051808303815f87803b158015614809575f5ffd5b505af115801561481b573d5f5f3e3d5ffd5b505060