EVM Transaction
EVM-initiated transaction processed through Canton consensus
Gateway_FinalizeBlock
Block timestamp → commit, incl. the gateway-build-block call for block #45156
Measured from on-chain timestamps only: the EVM block timestamp, which the producer chose when it planned the block (whole seconds), and the record time (commit) of the Gateway_FinalizeBlock transaction; a commit that reads slightly before the block timestamp (rounding) shows as 0. The gateway-build-block external call runs inside that transaction and is not timed on its own; the import into the execution layers follows the commit and its time is not observable here, so those steps are markers without a duration.
0x608060405234801561000f575f80fd5b50615fea806200001e5f395ff3fe6080604052600436106101dd575f3560e01c8063715018a6116100fd578063b78e703f11610092578063f242432a11610062578063f242432a14610639578063f2fde38b14610658578063f62d188814610677578063fd8d652f14610696575f80fd5b8063b78e703f146105a8578063c8ece4a0146105c7578063dbacc237146105e6578063e985e9c51461061a575f80fd5b80638d3c100a116100cd5780638d3c100a1461050f5780638da5cb5b1461052e578063a03f5a681461056a578063a22cb46514610589575f80fd5b8063715018a61461048557806375794a3c1461049957806383966021146104ae57806388a86ef9146104e2575f80fd5b80632eb2c2d6116101735780634629eefe116101435780634629eefe146103fb57806346f960231461040e578063473597a01461043a5780634e1273f414610459575f80fd5b80632eb2c2d614610367578063303e74df146103865780634219dc40146103bd57806342966c68146103dc575f80fd5b80630e89341c116101ae5780630e89341c146102ae5780631416d8a0146102da578063211df48c146103075780632b8a395814610333575f80fd5b8062fdd58e146101e857806301b9a3971461021a57806301ffc9a71461023b578063070057b11461026a575f80fd5b366101e457005b5f80fd5b3480156101f3575f80fd5b50610207610202366004614a6c565b6106b6565b6040519081526020015b60405180910390f35b348015610225575f80fd5b50610239610234366004614a96565b6106eb565b005b348015610246575f80fd5b5061025a610255366004614ac6565b61073c565b6040519015158152602001610211565b348015610275575f80fd5b50610289610284366004614b03565b61078b565b604080516001600160801b039094168452602084019290925290820152606001610211565b3480156102b9575f80fd5b506102cd6102c8366004614b82565b61089a565b6040516102119190614be6565b3480156102e5575f80fd5b506102f96102f4366004614c45565b61098e565b604051610211929190614d59565b348015610312575f80fd5b50610326610321366004614d71565b610a76565b6040516102119190614f82565b34801561033e575f80fd5b5061035261034d366004614fe4565b610b23565b60408051928352602083019190915201610211565b348015610372575f80fd5b506102396103813660046151af565b610c28565b348015610391575f80fd5b506004546103a5906001600160a01b031681565b6040516001600160a01b039091168152602001610211565b3480156103c8575f80fd5b506003546103a5906001600160a01b031681565b3480156103e7575f80fd5b506102396103f6366004614b82565b610c8f565b6102f9610409366004615255565b610e2b565b348015610419575f80fd5b5061042d610428366004614b82565b610f70565b604051610211919061528b565b348015610445575f80fd5b50610239610454366004614a96565b6111ca565b348015610464575f80fd5b5061047861047336600461529d565b6111f4565b6040516102119190615387565b348015610490575f80fd5b506102396112be565b3480156104a4575f80fd5b5061020760025481565b3480156104b9575f80fd5b506103a56104c8366004614b82565b5f908152602081905260409020546001600160a01b031690565b3480156104ed575f80fd5b506105016104fc366004615399565b6112d1565b6040516102119291906153eb565b34801561051a575f80fd5b5061035261052936600461540f565b6114f0565b348015610539575f80fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166103a5565b348015610575575f80fd5b5061035261058436600461543d565b611597565b348015610594575f80fd5b506102396105a3366004615473565b61166c565b3480156105b3575f80fd5b506103526105c23660046154b0565b61167b565b3480156105d2575f80fd5b506103526105e13660046154b0565b611771565b3480156105f1575f80fd5b506103a5610600366004614b82565b5f908152600160205260409020546001600160a01b031690565b348015610625575f80fd5b5061025a610634366004615508565b6119c1565b348015610644575f80fd5b50610239610653366004615534565b611a0d565b348015610663575f80fd5b50610239610672366004614a96565b611a6c565b348015610682575f80fd5b50610239610691366004615597565b611aa6565b6106a96106a43660046155db565b611bb2565b60405161021191906156aa565b5f8181525f80516020615f95833981519152602090815260408083206001600160a01b03861684529091529020545b92915050565b6106f3611c13565b600480546001600160a01b0319166001600160a01b0383169081179091556040517f1d74f7ade49690cfc8a3fecddc21793cd3f8324fd22dd79cc4aa9bfd420cd589905f90a250565b5f6001600160e01b03198216636cdb3d1360e11b148061076c57506001600160e01b031982166303a24d0760e21b145b806106e557506301ffc9a760e01b6001600160e01b03198316146106e5565b5f805f610796611c6e565b836107a081611cb8565b8a6107aa81611ce2565b5f8c8152602081905260409081902054905163e14e6e8160e01b81526001600160a01b039091169063e14e6e81906107ee908f908f908f908f908e906004016156bc565b6060604051808303815f875af115801561080a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082e9190615701565b919650945092506001600160801b03808916908616101561088357604051634a7991fb60e11b815260ff8b1660048201526001600160801b038087166024830152891660448201526064015b60405180910390fd5b505061088d611d12565b9750975097945050505050565b6004546060906001600160a01b0316806108be576108b783611d38565b9392505050565b604051306024820152604481018490525f9081906001600160a01b0384169060640160408051601f198184030181529181526020820180516001600160e01b031663e9dc637560e01b179052516109159190615735565b5f60405180830381855afa9150503d805f811461094d576040519150601f19603f3d011682016040523d82523d5f602084013e610952565b606091505b509150915081158061096357508051155b1561097a5761097185611d38565b95945050505050565b808060200190518101906109719190615750565b5f6060610999611c6e565b826109a381611cb8565b6109ac8d611dfa565b60028054905f6109bb836157cc565b91905055925060405180604001604052808e6001600160a01b031681526020016109e442611ff4565b6001600160401b039081169091525f85815260208181526040909120835181549490920151909216600160a01b026001600160e01b03199093166001600160a01b0390911617919091179055610a418d848e8e8e8e8e8e8e61202d565b9150610a5e8584600160405180602001604052805f8152506123df565b50610a67611d12565b9a509a98505050505050505050565b6060816001600160401b03811115610a9057610a9061503a565b604051908082528060200260200182016040528015610ac957816020015b610ab66149a5565b815260200190600190039081610aae5790505b5090505f5b82811015610b1c57610af7848483818110610aeb57610aeb6157e4565b90506020020135610f70565b828281518110610b0957610b096157e4565b6020908102919091010152600101610ace565b5092915050565b5f80610b2d611c6e565b82610b3781611cb8565b89610b4181611ce2565b5f8b815260208190526040908190205490516316163d6760e31b8152600481018d905260ff8c1660248201526001600160801b038b1660448201526001600160a01b0388811660648301529091169063b0b1eb389060840160408051808303815f875af1158015610bb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd891906157f8565b909450925087841080610bea57508683105b15610c125760405163180cb56f60e11b8152600481018590526024810184905260440161087a565b5050610c1c611d12565b97509795505050505050565b336001600160a01b0386168114801590610c495750610c4786826119c1565b155b15610c7a5760405163711bec9160e11b81526001600160a01b0380831660048301528716602482015260440161087a565b610c87868686868661243a565b505050505050565b610c97611c6e565b80610ca181611ce2565b5f8281526020819052604090819020549051633447395f60e21b8152600481018490526001600160a01b0390911690819063d11ce57c90602401602060405180830381865afa158015610cf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1a9190615825565b60ff1615610d3e5760405163b06a702760e01b81526004810184905260240161087a565b6040516309bcafd960e01b8152600481018490525f9081906001600160a01b038416906309bcafd9906024015f60405180830381865afa158015610d84573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610dab9190810190615874565b9250925050815f141580610dbe57508015155b15610ddf5760405163b06a702760e01b81526004810186905260240161087a565b5f8581526020818152604080832080546001600160e01b031916905560019182905290912054610e1c916001600160a01b0390911690879061249f565b50505050610e28611d12565b50565b5f6060610e36611c6e565b8260c00135610e4481611cb8565b610e59610e546020860186614a96565b611dfa565b60028054905f610e68836157cc565b909155506040805180820190915290935080610e876020870187614a96565b6001600160a01b03168152602001610e9e42611ff4565b6001600160401b039081169091525f858152602081815260409091208351815494830151909316600160a01b026001600160e01b03199094166001600160a01b0390931692909217929092179055610f3690610efc90860186614a96565b84610f0a6020880188615a0a565b610f1760408a018a615a0a565b610f2460608c018c615a0a565b610f3160808e018e615a0a565b612505565b9150610f62610f4b60c0860160a08701614a96565b84600160405180602001604052805f8152506123df565b50610f6b611d12565b915091565b610f786149a5565b5f828152602081815260408083208151808301835290546001600160a01b038082168352600160a01b9091046001600160401b039081168386019081528888528351831688870152888752600190955292909420548416608086015291511660a08401528051909116610feb5750919050565b805f01516001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104e9190615a4f565b82604001906001600160a01b031690816001600160a01b031681525050805f01516001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ce9190615a4f565b6001600160a01b0390811660608401528151604051633447395f60e21b81526004810186905291169063d11ce57c90602401602060405180830381865afa15801561111b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113f9190615825565b60ff1660c083015280516040516309bcafd960e01b8152600481018590526001600160a01b03909116906309bcafd9906024015f60405180830381865afa15801561118c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526111b39190810190615874565b61012085015261010084015260e083015250919050565b6111d2611c13565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b606081518351146112255781518351604051635b05999160e01b81526004810192909252602482015260440161087a565b5f83516001600160401b0381111561123f5761123f61503a565b604051908082528060200260200182016040528015611268578160200160208202803683370190505b5090505f5b84518110156112b657602080820286010151611291906020808402870101516106b6565b8282815181106112a3576112a36157e4565b602090810291909101015260010161126d565b509392505050565b6112c6611c13565b6112cf5f612677565b565b6060806112dc611c6e565b836001600160401b038111156112f4576112f461503a565b60405190808252806020026020018201604052801561131d578160200160208202803683370190505b509150836001600160401b038111156113385761133861503a565b604051908082528060200260200182016040528015611361578160200160208202803683370190505b5090505f5b848110156114df5761139033878784818110611384576113846157e4565b905060200201356126e7565b6113da57338686838181106113a7576113a76157e4565b6040516372ee75f960e11b81526001600160a01b039094166004850152602002919091013560248301525060440161087a565b5f808787848181106113ee576113ee6157e4565b602090810292909201358352508101919091526040015f20546001600160a01b0316638d3c100a878784818110611427576114276157e4565b90506020020135866040518363ffffffff1660e01b815260040161145e9291909182526001600160a01b0316602082015260400190565b60408051808303815f875af1158015611479573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061149d91906157f8565b8483815181106114af576114af6157e4565b602002602001018484815181106114c8576114c86157e4565b602090810291909101019190915252600101611366565b506114e8611d12565b935093915050565b5f806114fa611c6e565b8361150481611ce2565b5f858152602081905260409081902054905163469e080560e11b8152600481018790526001600160a01b03868116602483015290911690638d3c100a9060440160408051808303815f875af115801561155f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061158391906157f8565b9250925050611590611d12565b9250929050565b5f806115a1611c6e565b8260a001356115af81611cb8565b83356115ba81611ce2565b84355f908152602081905260408120546001600160a01b0316906115de8288612739565b90506115fc828835836115f760a08c0160808d01614a96565b612d43565b909650945061160b8288612e6a565b86357f1303d3dcfc8f0fc6379d9be3e338bb90609441c6a41f75889616fc4e1ee7ab8361163b60208a018a615a0a565b61164860408c018c615a0a565b6040516116589493929190615aa0565b60405180910390a250505050610f6b611d12565b61167733838361306c565b5050565b5f80611685611c6e565b8261168f81611cb8565b8861169981611ce2565b5f8a8152602081905260409081902054905163e1b5a22360e01b8152600481018c905261ffff8b1660248201526001600160a01b0388811660448301529091169063e1b5a2239060640160408051808303815f875af11580156116fe573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061172291906157f8565b90945092508784108061173457508683105b1561175c5760405163180cb56f60e11b8152600481018590526024810184905260440161087a565b5050611766611d12565b965096945050505050565b5f8061177b611c6e565b8261178581611cb8565b8861178f81611ce2565b5f8a8152602081905260409020546001600160a01b031661ffff8a161561182c5760405163e1b5a22360e01b8152600481018c905261ffff8b1660248201523060448201526001600160a01b0382169063e1b5a2239060640160408051808303815f875af1158015611803573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061182791906157f8565b611899565b60405163469e080560e11b8152600481018c90523060248201526001600160a01b03821690638d3c100a9060440160408051808303815f875af1158015611875573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061189991906157f8565b9095509350888510806118ab57508784105b156118d35760405163180cb56f60e11b8152600481018690526024810185905260440161087a565b5f6118dd82613111565b905061194a826001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561191e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119429190615a4f565b898884613253565b6119b5826001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611989573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119ad9190615a4f565b898784613253565b50505050611766611d12565b6001600160a01b039182165f9081527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c45016020908152604080832093909416825291909152205460ff1690565b336001600160a01b0386168114801590611a2e5750611a2c86826119c1565b155b15611a5f5760405163711bec9160e11b81526001600160a01b0380831660048301528716602482015260440161087a565b610c8786868686866132e1565b611a74611c13565b6001600160a01b038116611a9d57604051631e4fbdf760e01b81525f600482015260240161087a565b610e2881612677565b5f611aaf61336d565b805490915060ff600160401b82041615906001600160401b03165f81158015611ad55750825b90505f826001600160401b03166001148015611af05750303b155b905081158015611afe575080155b15611b1c5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b4657845460ff60401b1916600160401b1785555b611b4f86613395565b611b58336133a6565b611b606133b7565b60016002558315610c8757845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050505050565b6060611bbc611c6e565b81611bc681611cb8565b8b611bd081611ce2565b5f8d815260208190526040902054611bf9906001600160a01b03168e8e8e8e8e8e8e8e8e612505565b92505050611c05611d12565b9a9950505050505050505050565b33611c457f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146112cf5760405163118cdaa760e01b815233600482015260240161087a565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901611cb257604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b80421115610e285760405163041f95d160e51b81526004810182905242602482015260440161087a565b611cec33826126e7565b610e28576040516372ee75f960e11b81523360048201526024810182905260440161087a565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b7f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c450280546060915f80516020615f9583398151915291611d7690615afc565b80601f0160208091040260200160405190810160405280929190818152602001828054611da290615afc565b8015611ded5780601f10611dc457610100808354040283529160200191611ded565b820191905f5260205f20905b815481529060010190602001808311611dd057829003601f168201915b5050505050915050919050565b6001600160a01b0381161580611e77575060035460405162571b3b60e11b81526001600160a01b0383811660048301529091169062ae367690602401602060405180830381865afa158015611e51573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e759190615b34565b155b80611fcb575060035460408051635001f3b560e01b815290516001600160a01b0380851693169163531aa03e918491635001f3b59160048083019260209291908290030181865afa158015611ece573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ef29190615a4f565b846001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f2e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f529190615a4f565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015611f9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbf9190615a4f565b6001600160a01b031614155b15610e2857604051635af1012f60e11b81526001600160a01b038216600482015260240161087a565b5f6001600160401b0382111561202957604080516306dfcc6560e41b815260048101919091526024810183905260440161087a565b5090565b60608680158061203d5750858114155b806120485750828114155b15612069576040516001621398b960e31b0319815260040160405180910390fd5b5f856120d4578b6001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120cf9190615a4f565b612134565b8b6001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015612110573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121349190615a4f565b90505f805b8381101561216f57898982818110612153576121536157e4565b90506020020135826121659190615b4f565b9150600101612139565b5061217c823330846133c7565b826001600160401b038111156121945761219461503a565b6040519080825280602002602001820160405280156121bd578160200160208202803683370190505b5093505f5b838110156123ce575f8111801561223557508b8b6121e1600184615b62565b8181106121f0576121f06157e4565b90506020020160208101906122059190615b75565b60ff168c8c8381811061221a5761221a6157e4565b905060200201602081019061222f9190615b75565b60ff1611155b1561225357604051635fb8b8c360e01b815260040160405180910390fd5b61229e8e8e8e8e8581811061226a5761226a6157e4565b905060200201602081019061227f9190615b75565b8d8d86818110612291576122916157e4565b905060200201358c6134df565b8582815181106122b0576122b06157e4565b60200260200101906001600160801b031690816001600160801b0316815250508686828181106122e2576122e26157e4565b90506020020160208101906122f79190615b90565b6001600160801b0316858281518110612312576123126157e4565b60200260200101516001600160801b031610156123c6578b8b8281811061233b5761233b6157e4565b90506020020160208101906123509190615b75565b858281518110612362576123626157e4565b602002602001015188888481811061237c5761237c6157e4565b90506020020160208101906123919190615b90565b604051634a7991fb60e11b815260ff90931660048401526001600160801b03918216602484015216604482015260640161087a565b6001016121c2565b505050509998505050505050505050565b6001600160a01b03841661240857604051632bfa23e760e11b81525f600482015260240161087a565b60408051600180825260208201869052818301908152606082018590526080820190925290610c875f87848487613743565b6001600160a01b03841661246357604051632bfa23e760e11b81525f600482015260240161087a565b6001600160a01b03851661248b57604051626a0d4560e21b81525f600482015260240161087a565b6124988585858585613743565b5050505050565b6001600160a01b0383166124c757604051626a0d4560e21b81525f600482015260240161087a565b604080516001808252602082018590528183019081526060820184905260a082019092525f6080820181815291929161249891879185908590613743565b6060878015806125155750868114155b806125205750848114155b8061252b5750828114155b1561254c576040516001621398b960e31b0319815260040160405180910390fd5b5f61255a8d8a8a8a8a613796565b905061256d8d8d8d8d8d8d8d8d89613948565b92505f5b8281101561262d5785858281811061258b5761258b6157e4565b90506020020160208101906125a09190615b90565b6001600160801b03168482815181106125bb576125bb6157e4565b60200260200101516001600160801b03161015612625578b8b828181106125e4576125e46157e4565b90506020020160208101906125f99190615b75565b84828151811061260b5761260b6157e4565b602002602001015187878481811061237c5761237c6157e4565b600101612571565b5061264a815f01518e836040015184608001518560c001516139e0565b61266781602001518e83606001518460a001518560c001516139e0565b50509a9950505050505050505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f818152600160205260408120546001600160a01b03168061270c575f9150506106e5565b806001600160a01b0316846001600160a01b03161480612731575061273181856119c1565b949350505050565b60605f6127496020840184615a0a565b9150508015806127675750806127626040850185615a0a565b905014155b8061278057508061277b6060850185615a0a565b905014155b156127a1576040516001621398b960e31b0319815260040160405180910390fd5b5f805b82811015612895575f8111801561282d57506127c36020860186615a0a565b6127ce600184615b62565b8181106127dd576127dd6157e4565b90506020020160208101906127f29190615b75565b60ff166128026020870187615a0a565b83818110612812576128126157e4565b90506020020160208101906128279190615b75565b60ff1611155b1561284b57604051635fb8b8c360e01b815260040160405180910390fd5b6128586040860186615a0a565b82818110612868576128686157e4565b905060200201602081019061287d9190615bab565b61288b9061ffff1683615b4f565b91506001016127a4565b5061271081146128bb57604051636de9c24760e11b81526004810182905260240161087a565b6040516309bcafd960e01b8152843560048201525f906001600160a01b038716906309bcafd9906024015f60405180830381865afa1580156128ff573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129269190810190615874565b505090505f866001600160a01b0316631c0825ee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612967573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061298b9190615bc4565b90505f876001600160a01b031663c18b1d5e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129ee9190615a4f565b9050876001600160a01b031663c76cd69d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a509190615bc4565b6001600160401b03811115612a6757612a6761503a565b604051908082528060200260200182016040528015612ab757816020015b604080516080810182525f8082526020808301829052928201819052606082015282525f19909201910181612a855790505b5095505f805b8751811015612afb57612acf81613a0e565b888281518110612ae157612ae16157e4565b602090810291909101015160ff9091169052600101612abd565b505f5b8451811015612c81575f88868381518110612b1b57612b1b6157e4565b60200260200101515f015160ff1681518110612b3957612b396157e4565b60200260200101519050858281518110612b5557612b556157e4565b60209081029190910181015160c001516001600160801b0316908201528551869083908110612b8657612b866157e4565b602002602001015161012001515f14612c3a57836001600160a01b0316639c0e0bf186888581518110612bbb57612bbb6157e4565b602090810291909101015161012001516040516001600160e01b031960e085901b1681526004810192909252602482015260016044820152606401602060405180830381865afa158015612c11573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c359190615bc4565b612c3c565b5f5b868381518110612c4e57612c4e6157e4565b60200260200101516101400151612c659190615b4f565b60408201819052612c769084615b4f565b925050600101612afe565b505f5b86811015612d3657612710612c9c60408b018b615a0a565b83818110612cac57612cac6157e4565b9050602002016020810190612cc19190615bab565b612ccf9061ffff1684615bdb565b612cd99190615bf2565b88612ce760208c018c615a0a565b84818110612cf757612cf76157e4565b9050602002016020810190612d0c9190615b75565b60ff1681518110612d1f57612d1f6157e4565b602090810291909101015160600152600101612c84565b5050505050505092915050565b5f80612d6060405180604001604052805f81526020015f81525090565b5f805b8651811015612e53575f878281518110612d7f57612d7f6157e4565b602002602001015190508060600151816040015111612d9e5750612e4b565b5f81606001518260400151612db39190615b62565b90505b5f81118015612dc55750885184105b15612e48575f898581518110612ddd57612ddd6157e4565b6020026020010151905080606001518160400151101580612dfd57508385145b15612e155784612e0c816157cc565b95505050612db6565b5f612e258d8d8685878f8d613a3b565b9050805f03612e35575050612e48565b612e3f8184615b62565b92505050612db6565b50505b600101612d63565b505080516020909101519097909650945050505050565b6040516309bcafd960e01b8152813560048201525f906001600160a01b038416906309bcafd9906024015f60405180830381865afa158015612eae573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612ed59190810190615874565b505090505f5b612ee86020840184615a0a565b905081101561306657612efe6060840184615a0a565b82818110612f0e57612f0e6157e4565b9050602002016020810190612f239190615b90565b6001600160801b03161561305e575f805b8351811015612fc057612f4a6020860186615a0a565b84818110612f5a57612f5a6157e4565b9050602002016020810190612f6f9190615b75565b60ff16848281518110612f8457612f846157e4565b60200260200101515f015160ff1603612fb857838181518110612fa957612fa96157e4565b602002602001015160c0015191505b600101612f34565b50612fce6060850185615a0a565b83818110612fde57612fde6157e4565b9050602002016020810190612ff39190615b90565b6001600160801b0316816001600160801b0316101561305c576130196020850185615a0a565b83818110613029576130296157e4565b905060200201602081019061303e9190615b75565b8161304c6060870187615a0a565b8581811061237c5761237c6157e4565b505b600101612edb565b50505050565b5f80516020615f958339815191526001600160a01b0383166130a25760405162ced3e160e81b81525f600482015260240161087a565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b5f80826001600160a01b031663c9d4623f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561314f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131739190615a4f565b9050806001600160a01b03166392cab4936040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131d59190615bc4565b156131f3576040516313a49b9f60e11b815260040160405180910390fd5b806001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561322f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108b79190615a4f565b811561306657806001600160a01b0316846001600160a01b0316146132825761327d848484613b8d565b613066565b604051632e1a7d4d60e01b8152600481018390526001600160a01b03851690632e1a7d4d906024015f604051808303815f87803b1580156132c1575f80fd5b505af11580156132d3573d5f803e3d5ffd5b505050506130668383613c9f565b6001600160a01b03841661330a57604051632bfa23e760e11b81525f600482015260240161087a565b6001600160a01b03851661333257604051626a0d4560e21b81525f600482015260240161087a565b604080516001808252602082018690528183019081526060820185905260808201909252906133648787848487613743565b50505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a006106e5565b61339d613d40565b610e2881613d65565b6133ae613d40565b610e2881613d76565b6133bf613d40565b6112cf613d7e565b5f80856001600160a01b03166323b872dd8686866040516024016133ed93929190615c11565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516134269190615735565b5f604051808303815f865af19150503d805f811461345f576040519150601f19603f3d011682016040523d82523d5f602084013e613464565b606091505b5091509150816134985761347781613d86565b85858585604051630a8dced960e41b815260040161087a9493929190615c35565b8051158015906134b95750808060200190518101906134b79190615b34565b155b15610c8757858585856040516301687c2160e31b815260040161087a9493929190615c35565b5f805f6134ee88878787613d99565b6040805160018082528183019092529294509092505f91906020808301908036833750506040805160018082528183019092529293505f9291506020808301908036833750506040805160018082528183019092529293505f9291506020808301908036833701905050905088835f8151811061356d5761356d6157e4565b602002602001019060ff16908160ff168152505084825f81518110613594576135946157e4565b60200260200101818152505083815f815181106135b3576135b36157e4565b6020026020010181815250506135c76149f7565b8b6001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613603573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136279190615a4f565b6001600160a01b0390811682526040805163999b93af60e01b81529051918e169163999b93af916004808201926020929091908290030181865afa158015613671573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136959190615a4f565b6001600160a01b03166020820152604081018690526060810185905280516136be908d886140c7565b6136cd81602001518d876140c7565b5f6136dc8d8d878787876141d7565b90506136fa825f01518e846040015185608001518660c001516139e0565b61371782602001518e84606001518560a001518660c001516139e0565b805f81518110613729576137296157e4565b602002602001015197505050505050505095945050505050565b61374f85858585614266565b6001600160a01b0384161561249857825133906001036137885760208481015190840151613781838989858589614347565b5050610c87565b610c87818787878787614460565b61379e6149f7565b6137aa85858585614547565b826040018360600182815250828152505050856001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137f8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061381c9190615a4f565b6001600160a01b0390811682526040805163999b93af60e01b815290519188169163999b93af916004808201926020929091908290030181865afa158015613866573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061388a9190615a4f565b6001600160a01b031660208201523415613919576138a786613111565b6001600160a01b0390811660c083018190528251909116146138f45780602001516001600160a01b03168160c001516001600160a01b0316146138ea575f6138fa565b80606001516138fa565b80604001515b34146139195760405163677606af60e01b815260040160405180910390fd5b613930815f01518783604001518460c001516145b1565b61097181602001518783606001518460c001516145b1565b60405163400b462d60e11b81526060906001600160a01b038b16906380168c5a90613983908c908c908c908c908c908c908c90600401615c8f565b5f604051808303815f875af115801561399e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526139c59190810190615cd0565b60a08501526080909301929092525098975050505050505050565b82156124985781831115612498576139f985855f6140c7565b6124988533613a088587615b62565b84613253565b5f60ff821115612029576040516306dfcc6560e41b8152600860048201526024810183905260440161087a565b5f84604001518560600151613a509190615b62565b8410613a6f5784604001518560600151613a6a9190615b62565b613a71565b835b90505f613aa487604001518389602001516001600160801b0316613a959190615bdb565b613a9f9190615bf2565b61463c565b9050806001600160801b03165f03613abf575f915050613b82565b8651865160405163e14e6e8160e01b81525f9283926001600160a01b038e169263e14e6e8192613af7928f9289908d906004016156bc565b6060604051808303815f875af1158015613b13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b379190615701565b925092505081855f01818151613b4d9190615b4f565b905250602085018051829190613b64908390615b4f565b905250604088018051859190613b7b908390615b4f565b9052505050505b979650505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f92839290871691613be89190615735565b5f604051808303815f865af19150503d805f8114613c21576040519150601f19603f3d011682016040523d82523d5f602084013e613c26565b606091505b509150915081613c5857613c3981613d86565b8484846040516317e3057d60e31b815260040161087a93929190615c11565b805115801590613c79575080806020019051810190613c779190615b34565b155b1561249857843085856040516301687c2160e31b815260040161087a9493929190615c35565b604080515f808252602082019092526001600160a01b038416908390604051613cc89190615735565b5f6040518083038185875af1925050503d805f8114613d02576040519150601f19603f3d011682016040523d82523d5f602084013e613d07565b606091505b5050905080613d3b5760405163296c17bb60e21b81526001600160a01b03841660048201526024810183905260440161087a565b505050565b613d4861466f565b6112cf57604051631afcd79f60e31b815260040160405180910390fd5b613d6d613d40565b610e2881614688565b611a74613d40565b611d12613d40565b80515f03613d915750565b805160208201fd5b604051632f27a5cd60e21b815260ff841660048201525f908190819081906001600160a01b0389169063bc9e9734906024016040805180830381865afa158015613de5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e0991906157f8565b915091505f825f148015613e1b575081155b613e2f57613e2a600288615bf2565b613e31565b5f5b90505f81801561408a575f88613ea6578b6001600160a01b031663999b93af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ea19190615a4f565b613f06565b8b6001600160a01b0316635001f3b56040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ee2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f069190615a4f565b90505f8c6001600160a01b031663c9d4623f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f699190615a4f565b6001600160a01b031663c31c9c076040518163ffffffff1660e01b8152600401602060405180830381865afa158015613fa4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613fc89190615a4f565b90505f613fd4836146c1565b9050613fe18383886140c7565b60405163fa37eca560e01b81526001600160a01b038f81166004830152602482018890528c1560448301523060648301525f608483015283169063fa37eca59060a4016020604051808303815f875af1158015614040573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140649190615bc4565b945061407183835f6140c7565b61407a836146c1565b6140849082615b62565b93505050505b87614095578161409f565b61409f818a615b62565b9650876140b5576140b0818a615b62565b6140b7565b815b9550505050505094509492505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291515f928392908716916141229190615735565b5f604051808303815f865af19150503d805f811461415b576040519150601f19603f3d011682016040523d82523d5f602084013e614160565b606091505b5091509150816141925761417381613d86565b848484604051636a93d39160e01b815260040161087a93929190615c11565b8051158015906141b35750808060200190518101906141b19190615b34565b155b1561249857848484604051636a93d39160e01b815260040161087a93929190615c11565b60405163400b462d60e11b81526060906001600160a01b038816906380168c5a9061420c908990899089908990600401615d76565b5f604051808303815f875af1158015614227573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261424e9190810190615cd0565b60a08501526080909301929092525095945050505050565b61427284848484614786565b5f5b82518110156124985781818151811061428f5761428f6157e4565b60200260200101515f031561433f576001600160a01b0384166142f05760015f8483815181106142c1576142c16157e4565b602002602001015181526020019081526020015f205f6101000a8154906001600160a01b03021916905561433f565b8360015f858481518110614306576143066157e4565b602002602001015181526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505b600101614274565b6001600160a01b0384163b15610c875760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061438b9089908990889088908890600401615de4565b6020604051808303815f875af19250505080156143c5575060408051601f3d908101601f191682019092526143c291810190615e1d565b60015b614424573d8080156143f2576040519150601f19603f3d011682016040523d82523d5f602084013e6143f7565b606091505b5080515f03613d9157604051632bfa23e760e11b81526001600160a01b038616600482015260240161087a565b6001600160e01b0319811663f23a6e6160e01b1461336457604051632bfa23e760e11b81526001600160a01b038616600482015260240161087a565b6001600160a01b0384163b15610c875760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906144a49089908990889088908890600401615e38565b6020604051808303815f875af19250505080156144de575060408051601f3d908101601f191682019092526144db91810190615e1d565b60015b61450b573d8080156143f2576040519150601f19603f3d011682016040523d82523d5f602084013e6143f7565b6001600160e01b0319811663bc197c8160e01b1461336457604051632bfa23e760e11b81526001600160a01b038616600482015260240161087a565b5f805f5b858110156145a757868682818110614565576145656157e4565b90506020020135836145779190615b4f565b925084848281811061458b5761458b6157e4565b905060200201358261459d9190615b4f565b915060010161454b565b5094509492505050565b811561306657806001600160a01b0316846001600160a01b03160361462557836001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004015f604051808303818588803b158015614609575f80fd5b505af115801561461b573d5f803e3d5ffd5b5050505050614631565b614631843330856133c7565b6130668484846140c7565b5f6001600160801b03821115612029576040516306dfcc6560e41b8152608060048201526024810183905260440161087a565b5f61467861336d565b54600160401b900460ff16919050565b5f80516020615f958339815191527f88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4502613d3b8382615ed9565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17905290515f91829182916001600160a01b038616916147179190615735565b5f60405180830381855afa9150503d805f811461474f576040519150601f19603f3d011682016040523d82523d5f602084013e614754565b606091505b509150915081801561476857506020815110155b614772575f612731565b808060200190518101906127319190615bc4565b805182515f80516020615f9583398151915291146147c45782518251604051635b05999160e01b81526004810192909252602482015260440161087a565b335f5b84518110156148c6576020818102868101820151908601909101516001600160a01b03891615614878575f828152602086815260408083206001600160a01b038d16845290915290205481811015614852576040516303dee4c560e01b81526001600160a01b038b16600482015260248101829052604481018390526064810184905260840161087a565b5f838152602087815260408083206001600160a01b038e16845290915290209082900390555b6001600160a01b038816156148bc575f828152602086815260408083206001600160a01b038c168452909152812080548392906148b6908490615b4f565b90915550505b50506001016147c7565b5083516001036149465760208401515f906020850151909150866001600160a01b0316886001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051614937929190918252602082015260400190565b60405180910390a45050610c87565b846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516149959291906153eb565b60405180910390a4505050505050565b60408051610140810182525f8082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e0820152610100810182905261012081019190915290565b6040518060e001604052805f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681525090565b6001600160a01b0381168114610e28575f80fd5b8035614a6781614a48565b919050565b5f8060408385031215614a7d575f80fd5b8235614a8881614a48565b946020939093013593505050565b5f60208284031215614aa6575f80fd5b81356108b781614a48565b6001600160e01b031981168114610e28575f80fd5b5f60208284031215614ad6575f80fd5b81356108b781614ab1565b60ff81168114610e28575f80fd5b6001600160801b0381168114610e28575f80fd5b5f805f805f805f60e0888a031215614b19575f80fd5b873596506020880135614b2b81614ae1565b95506040880135614b3b81614ae1565b94506060880135614b4b81614aef565b93506080880135614b5b81614aef565b925060a0880135614b6b81614a48565b8092505060c0880135905092959891949750929550565b5f60208284031215614b92575f80fd5b5035919050565b5f5b83811015614bb3578181015183820152602001614b9b565b50505f910152565b5f8151808452614bd2816020860160208601614b99565b601f01601f19169290920160200192915050565b602081525f6108b76020830184614bbb565b5f8083601f840112614c08575f80fd5b5081356001600160401b03811115614c1e575f80fd5b6020830191508360208260051b8501011115611590575f80fd5b8015158114610e28575f80fd5b5f805f805f805f805f8060e08b8d031215614c5e575f80fd5b8a35614c6981614a48565b995060208b01356001600160401b0380821115614c84575f80fd5b614c908e838f01614bf8565b909b50995060408d0135915080821115614ca8575f80fd5b614cb48e838f01614bf8565b909950975060608d01359150614cc982614c38565b90955060808c01359080821115614cde575f80fd5b50614ceb8d828e01614bf8565b9095509350614cfe905060a08c01614a5c565b915060c08b013590509295989b9194979a5092959850565b5f815180845260208085019450602084015f5b83811015614d4e5781516001600160801b031687529582019590820190600101614d29565b509495945050505050565b828152604060208201525f6127316040830184614d16565b5f8060208385031215614d82575f80fd5b82356001600160401b03811115614d97575f80fd5b614da385828601614bf8565b90969095509350505050565b5f815180845260208085019450602084015f5b83811015614d4e578151805160ff1688528381015163ffffffff908116858a01526040808301518216908a01526060808301518216908a01526080808301518216908a015260a0808301511515908a015260c0808301516001600160801b0316908a015260e080830151908a0152610100808301516001600160401b0316908a015261012080830151908a015261014080830151908a015261016080830151908a015261018080830151908a01526101a080830151908a01526101c080830151908a01526101e09182015116908801526102009096019590820190600101614dc2565b5f610140825184526020830151614ec760208601826001600160a01b03169052565b506040830151614ee260408601826001600160a01b03169052565b506060830151614efd60608601826001600160a01b03169052565b506080830151614f1860808601826001600160a01b03169052565b5060a0830151614f3360a08601826001600160401b03169052565b5060c0830151614f4860c086018260ff169052565b5060e08301518160e0860152614f6082860182614daf565b6101008581015190870152610120948501519490950193909352509192915050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b82811015614fd757603f19888603018452614fc5858351614ea5565b94509285019290850190600101614fa9565b5092979650505050505050565b5f805f805f805f60e0888a031215614ffa575f80fd5b87359650602088013561500c81614ae1565b9550604088013561501c81614aef565b9450606088013593506080880135925060a0880135614b6b81614a48565b634e487b7160e01b5f52604160045260245ffd5b60405161020081016001600160401b03811182821017156150715761507161503a565b60405290565b604051601f8201601f191681016001600160401b038111828210171561509f5761509f61503a565b604052919050565b5f6001600160401b038211156150bf576150bf61503a565b5060051b60200190565b5f82601f8301126150d8575f80fd5b813560206150ed6150e8836150a7565b615077565b8083825260208201915060208460051b87010193508684111561510e575f80fd5b602086015b8481101561512a5780358352918301918301615113565b509695505050505050565b5f6001600160401b0382111561514d5761514d61503a565b50601f01601f191660200190565b5f6151686150e884615135565b905082815283838301111561517b575f80fd5b828260208301375f602084830101529392505050565b5f82601f8301126151a0575f80fd5b6108b78383356020850161515b565b5f805f805f60a086880312156151c3575f80fd5b85356151ce81614a48565b945060208601356151de81614a48565b935060408601356001600160401b03808211156151f9575f80fd5b61520589838a016150c9565b9450606088013591508082111561521a575f80fd5b61522689838a016150c9565b9350608088013591508082111561523b575f80fd5b5061524888828901615191565b9150509295509295909350565b5f60208284031215615265575f80fd5b81356001600160401b0381111561527a575f80fd5b820160e081850312156108b7575f80fd5b602081525f6108b76020830184614ea5565b5f80604083850312156152ae575f80fd5b82356001600160401b03808211156152c4575f80fd5b818501915085601f8301126152d7575f80fd5b813560206152e76150e8836150a7565b82815260059290921b84018101918181019089841115615305575f80fd5b948201945b8386101561532c57853561531d81614a48565b8252948201949082019061530a565b96505086013592505080821115615341575f80fd5b5061534e858286016150c9565b9150509250929050565b5f815180845260208085019450602084015f5b83811015614d4e5781518752958201959082019060010161536b565b602081525f6108b76020830184615358565b5f805f604084860312156153ab575f80fd5b83356001600160401b038111156153c0575f80fd5b6153cc86828701614bf8565b90945092505060208401356153e081614a48565b809150509250925092565b604081525f6153fd6040830185615358565b82810360208401526109718185615358565b5f8060408385031215615420575f80fd5b82359150602083013561543281614a48565b809150509250929050565b5f6020828403121561544d575f80fd5b81356001600160401b03811115615462575f80fd5b820160c081850312156108b7575f80fd5b5f8060408385031215615484575f80fd5b823561548f81614a48565b9150602083013561543281614c38565b803561ffff81168114614a67575f80fd5b5f805f805f8060c087890312156154c5575f80fd5b863595506154d56020880161549f565b9450604087013593506060870135925060808701356154f381614a48565b8092505060a087013590509295509295509295565b5f8060408385031215615519575f80fd5b823561552481614a48565b9150602083013561543281614a48565b5f805f805f60a08688031215615548575f80fd5b853561555381614a48565b9450602086013561556381614a48565b9350604086013592506060860135915060808601356001600160401b0381111561558b575f80fd5b61524888828901615191565b5f602082840312156155a7575f80fd5b81356001600160401b038111156155bc575f80fd5b8201601f810184136155cc575f80fd5b6127318482356020840161515b565b5f805f805f805f805f8060c08b8d0312156155f4575f80fd5b8a35995060208b01356001600160401b0380821115615611575f80fd5b61561d8e838f01614bf8565b909b50995060408d0135915080821115615635575f80fd5b6156418e838f01614bf8565b909950975060608d0135915080821115615659575f80fd5b6156658e838f01614bf8565b909750955060808d013591508082111561567d575f80fd5b5061568a8d828e01614bf8565b9150809450508092505060a08b013590509295989b9194979a5092959850565b602081525f6108b76020830184614d16565b94855260ff93841660208601529190921660408401526001600160801b0390911660608301526001600160a01b0316608082015260a00190565b8051614a6781614aef565b5f805f60608486031215615713575f80fd5b835161571e81614aef565b602085015160409095015190969495509392505050565b5f8251615746818460208701614b99565b9190910192915050565b5f60208284031215615760575f80fd5b81516001600160401b03811115615775575f80fd5b8201601f81018413615785575f80fd5b80516157936150e882615135565b8181528560208385010111156157a7575f80fd5b610971826020830160208601614b99565b634e487b7160e01b5f52601160045260245ffd5b5f600182016157dd576157dd6157b8565b5060010190565b634e487b7160e01b5f52603260045260245ffd5b5f8060408385031215615809575f80fd5b505080516020909101519092909150565b8051614a6781614ae1565b5f60208284031215615835575f80fd5b81516108b781614ae1565b805163ffffffff81168114614a67575f80fd5b8051614a6781614c38565b80516001600160401b0381168114614a67575f80fd5b5f805f6060808587031215615887575f80fd5b84516001600160401b0381111561589c575f80fd5b8501601f810187136158ac575f80fd5b805160206158bc6150e8836150a7565b82815260099290921b8301810191818101908a8411156158da575f80fd5b938201935b838510156159ef57610200858c0312156158f7575f80fd5b6158ff61504e565b6159088661581a565b8152615915848701615840565b848201526040615926818801615840565b90820152615935868801615840565b878201526080615946818801615840565b9082015260a0615957878201615853565b9082015260c06159688782016156f6565b9082015260e0868101519082015261010061598481880161585e565b9082015261012086810151908201526101408087015190820152610160808701519082015261018080870151908201526101a080870151908201526101c080870151908201526101e06159d8818801615840565b9082015282526102009490940193908201906158df565b91890151604090990151919a98995090979650505050505050565b5f808335601e19843603018112615a1f575f80fd5b8301803591506001600160401b03821115615a38575f80fd5b6020019150600581901b3603821315611590575f80fd5b5f60208284031215615a5f575f80fd5b81516108b781614a48565b8183525f60208085019450825f5b85811015614d4e578135615a8b81614ae1565b60ff1687529582019590820190600101615a78565b604081525f615ab3604083018688615a6a565b828103602084810191909152848252859181015f5b86811015615aef5761ffff615adc8561549f565b1682529282019290820190600101615ac8565b5098975050505050505050565b600181811c90821680615b1057607f821691505b602082108103615b2e57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215615b44575f80fd5b81516108b781614c38565b808201808211156106e5576106e56157b8565b818103818111156106e5576106e56157b8565b5f60208284031215615b85575f80fd5b81356108b781614ae1565b5f60208284031215615ba0575f80fd5b81356108b781614aef565b5f60208284031215615bbb575f80fd5b6108b78261549f565b5f60208284031215615bd4575f80fd5b5051919050565b80820281158282048414176106e5576106e56157b8565b5f82615c0c57634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b8183525f6001600160fb1b03831115615c76575f80fd5b8260051b80836020870137939093016020019392505050565b878152608060208201525f615ca860808301888a615a6a565b8281036040840152615cbb818789615c5f565b90508281036060840152611c05818587615c5f565b5f805f60608486031215615ce2575f80fd5b83516001600160401b03811115615cf7575f80fd5b8401601f81018613615d07575f80fd5b80516020615d176150e8836150a7565b82815260059290921b83018101918181019089841115615d35575f80fd5b938201935b83851015615d5c578451615d4d81614aef565b82529382019390820190615d3a565b918801516040909801519199979850909695505050505050565b5f6080820186835260206080602085015281875180845260a0860191506020890193505f5b81811015615dba57845160ff1683529383019391830191600101615d9b565b50508481036040860152615dce8188615358565b925050508281036060840152613b828185615358565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f90613b8290830184614bbb565b5f60208284031215615e2d575f80fd5b81516108b781614ab1565b6001600160a01b0386811682528516602082015260a0604082018190525f90615e6390830186615358565b8281036060840152615e758186615358565b90508281036080840152615e898185614bbb565b98975050505050505050565b601f821115613d3b57805f5260205f20601f840160051c81016020851015615eba5750805b601f840160051c820191505b81811015612498575f8155600101615ec6565b81516001600160401b03811115615ef257615ef261503a565b615f0681615f008454615afc565b84615e95565b602080601f831160018114615f39575f8415615f225750858301515b5f19600386901b1c1916600185901b178555610c87565b5f85815260208120601f198616915b82811015615f6757888601518255948401946001909101908401615f48565b5085821015615f8457878501515f19600388901b60f8161c191681555b5050505050600190811b0190555056fe88be536d5240c274a3b1d3a1be54482fd9caa294f08c62a7cde569f49a3c4500a26469706673582212200029b94ccce6e1d01ad778a338befa31e1c6df46248b0a25e9753ae91b8f7a3464736f6c63430008180033