diff --git a/broadcast/Deploy-all.s.sol/1/run-1763594449915.json b/broadcast/Deploy-all.s.sol/1/run-1763594449915.json
new file mode 100644
index 00000000..9697cdc1
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/1/run-1763594449915.json
@@ -0,0 +1,48 @@
+{
+ "transactions": [
+ {
+ "hash": "0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xd92a36b0000531ef3063ded4de20a0783308446c",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x000000000004444c5dc75cB358380D2e3dE08A90, 0xC36442b4a4522E871399CD717aBDD847Ab11FE88, 0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e, 0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e0000000000000000000000005c7bcd6e7de5423a257d81b442095a1a6ced35c5",
+ "nonce": "0x2f",
+ "chainId": "0x1"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x14edc2c",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e",
+ "transactionIndex": "0x87",
+ "blockHash": "0x85b75cca5f0be78e8d0c54aa89bfec08a0a46058e3e3cb0b9848f2c062b04814",
+ "blockNumber": "0x16bb6bc",
+ "gasUsed": "0x4890a5",
+ "effectiveGasPrice": "0x11f5880f",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0xd92a36b0000531ef3063ded4de20a0783308446c"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763594449915,
+ "chain": 1,
+ "commit": "d2d9c4a"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/1/run-latest.json b/broadcast/Deploy-all.s.sol/1/run-latest.json
index 14d109ca..9697cdc1 100644
--- a/broadcast/Deploy-all.s.sol/1/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/1/run-latest.json
@@ -1,42 +1,20 @@
{
"transactions": [
{
- "hash": "0x8c5526a3239bd3994144bae9d762efa945485ac9da9c51f53734a02ff9c62da2",
+ "hash": "0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e",
"transactionType": "CREATE2",
- "contractName": "WstETHHook",
- "contractAddress": "0xcdde8f9c3414a00f804e5c565eed9949ad17e888",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xd92a36b0000531ef3063ded4de20a0783308446c",
"function": null,
"arguments": [
- "0x000000000004444c5dc75cB358380D2e3dE08A90",
- "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x000000000004444c5dc75cB358380D2e3dE08A90, 0xC36442b4a4522E871399CD717aBDD847Ab11FE88, 0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e, 0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5)"
],
"transaction": {
"from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x0000000000000000000000000000000000000000000000000000000000002172610120806040523461041457604081611f468038038091610020828561045b565b833981010312610414578051906001600160a01b038216820361041457602001516001600160a01b038116918282036104145760405163183fc7c960e31b8152602081600481875afa908115610420575f916103da575b5060018060a01b0316906080525f6101a06040516100948161042b565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a06040516100f68161042b565b60018152826020820152600160408201528260608201528260808201528260a0820152600160c08201528260e08201528261010082015282610120820152600161014082015282610160820152826101808201520152612000301615156001148015906103cd575b80156103bc575b80156103af575b80156103a2575b8015610395575b8015610385575b8015610379575b801561036d575b8015610361575b8015610351575b8015610345575b8015610339575b801561032d575b61031a57825f604492819460209660a0528160c05283821060e052610100526040519263095ea7b360e01b84526004840152811960248401525af13d15601f3d1160015f5114161716156102e457604051611ac7908161047f823960805181818160f7015281816101f301528181610440015281816107200152818161079a01528181610877015281816109e60152818161122b015281816112a3015281816117760152611836015260a05181818161033c01528181610384015281816104ae01528181610b7b0152610de9015260c05181818161025f015281816103ce01528181610a8d01528181610e8a0152611339015260e05181818161021b015281816108fa0152610a3b015261010051818181610b4301528181610d0e01528181610e57015281816110cb01526111dd0152f35b60405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606490fd5b630732d7b560e51b5f523060045260245ffd5b506001301615156101b2565b506002301615156101ab565b506004301615156101a4565b506008301615156001141561019d565b50601030161515610196565b5060203016151561018f565b50604030161515610188565b5060803016151560011415610181565b506101003016151561017a565b5061020030161515610173565b506104003016151561016c565b506108003016151560011415610165565b506110003016151561015e565b90506020813d602011610418575b816103f56020938361045b565b8101031261041457516001600160a01b0381168103610414575f610077565b5f80fd5b3d91506103e8565b6040513d5f823e3d90fd5b6101c081019081106001600160401b0382111761044757604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176104475760405256fe6080806040526004361015610012575f80fd5b5f3560e01c9081630bc6bffc146112f15750806321d0ee7014611279578063259982e5146112015780634aa07e6414611193578063575e24b41461091f5780635d5711a5146108c55780636c2bbe7e1461076e5780636fe7e6eb146107e85780639f063efc1461076e578063b47b2fb114610659578063b6a8b0fa146100cc578063c4e833ce146104d2578063d52f63cf14610464578063dc4c90d3146103f6578063dc98354e146101715763e1b4af69146100cc575f80fd5b3461016d576100da3661156d565b50505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f80fd5b3461016d5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d576101a861135d565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261016d576101db61154a565b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f000000000000000000000000000000000000000000000000000000000000000015610364576102476116f4565b73ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169116148061031b575b156102f35760643562ffffff811680910361016d576102cb5760206040517fdc98354e000000000000000000000000000000000000000000000000000000008152f35b7f1213a0ab000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fdcdedda9000000000000000000000000000000000000000000000000000000005f5260045ffd5b50610324611717565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911614610288565b61036c6116f4565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911614801561028857506103b6611717565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911614610288565b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d575f6101a06040516105108161160e565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201526101c060206040516105738161160e565b60018152818101905f82526040810160018152606082015f8152608083015f815260a084015f815260c085016001815260e08601905f82526101008701925f84526101208801945f8652610140890196600188526101608a01985f8a526101a06101808c019b5f8d52019b5f8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b3461016d576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d5761069161135d565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261016d5760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261016d576101443567ffffffffffffffff811161016d57610707903690600401611380565b505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461016d5761077c36611479565b5050505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461016d576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d5761082061135d565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261016d5761085361154a565b5060e4358060020b0361016d5773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b3461016d576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d5761095761135d565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261016d5760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261016d576101243567ffffffffffffffff811161016d576109cd903690600401611380565b505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168033036101455760e4355f81129182809361118c575b6111645782158061115c575b6111345760c43580151580910361016d577f0000000000000000000000000000000000000000000000000000000000000000151503610dd057508115610ccb5773ffffffffffffffffffffffffffffffffffffffff6020610a8883611699565b610ab47f0000000000000000000000000000000000000000000000000000000000000000913083611757565b6024604051809481937f70a08231000000000000000000000000000000000000000000000000000000008352306004840152165afa908115610c8e575f91610c99575b50604051927fea598cb00000000000000000000000000000000000000000000000000000000084528160048501526020846024815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1938415610c8e575f94610c5a575b50610b9f84307f0000000000000000000000000000000000000000000000000000000000000000611816565b15610c4057505f8212610c1857610bcb610bc0610bc5610bc0606095611749565b6116c5565b92611749565b906fffffffffffffffffffffffffffffffff169060801b175b604051907f575e24b400000000000000000000000000000000000000000000000000000000825260208201525f6040820152f35b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b91505f8212610c1857610bcb610bc0610bc5606094611749565b9093506020813d602011610c86575b81610c7660209383611658565b8101031261016d57519284610b73565b3d9150610c69565b6040513d5f823e3d90fd5b90506020813d602011610cc3575b81610cb460209383611658565b8101031261016d575183610af7565b3d9150610ca7565b6040517f9576a0c800000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c8e575f91610d9e575b507812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218211670de0b6b3a7640000021581021561016d57602073ffffffffffffffffffffffffffffffffffffffff91670de0b6b3a76400008402908082049106151501610a88565b90506020813d602011610dc8575b81610db960209383611658565b8101031261016d575183610d3e565b3d9150610dac565b91801561108257610de082611699565b905b610e0d82307f0000000000000000000000000000000000000000000000000000000000000000611757565b6040517fde0e9a3e0000000000000000000000000000000000000000000000000000000081528260048201526020816024815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610c8e575f91611050575b507f00000000000000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff821695604051917f70a082310000000000000000000000000000000000000000000000000000000083528160048401526020836024818b5afa928315610c8e575f9361101a575b50610f1690602093943090611816565b6024604051809881937f70a0823100000000000000000000000000000000000000000000000000000000835260048301525afa948515610c8e575f95610fe6575b508403938411610fb95715610f9f57505f8212610c1857610f82610bc0610bc5610bc0606095611749565b906fffffffffffffffffffffffffffffffff169060801b17610be4565b91505f8212610c1857610f82610bc0610bc5606094611749565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9094506020813d602011611012575b8161100260209383611658565b8101031261016d57519385610f57565b3d9150610ff5565b9092506020813d602011611048575b8161103660209383611658565b8101031261016d575191610f16610f06565b3d9150611029565b90506020813d60201161107a575b8161106b60209383611658565b8101031261016d575185610e87565b3d915061105e565b6040517fb0e3890000000000000000000000000000000000000000000000000000000000815282600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c8e575f91611102575b5090610de2565b90506020813d60201161112c575b8161111d60209383611658565b8101031261016d5751846110fb565b3d9150611110565b7f21b865b3000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001610a28565b7f0ace433b000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f610a1c565b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461016d5761120f366113ae565b505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f78895c13000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461016d57611287366113ae565b505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361016d57565b9181601f8401121561016d5782359167ffffffffffffffff831161016d576020838186019501011161016d57565b906101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261016d5760043573ffffffffffffffffffffffffffffffffffffffff8116810361016d579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc82011261016d5760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c83011261016d5760c491610144359067ffffffffffffffff821161016d5761147591600401611380565b9091565b906101a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261016d5760043573ffffffffffffffffffffffffffffffffffffffff8116810361016d579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc82011261016d5760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c83011261016d5760c49161014435916101643591610184359067ffffffffffffffff821161016d5761147591600401611380565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361016d57565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261016d5760043573ffffffffffffffffffffffffffffffffffffffff8116810361016d579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc83011261016d5760249160c4359160e43591610104359067ffffffffffffffff821161016d5761147591600401611380565b6101c0810190811067ffffffffffffffff82111761162b57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761162b57604052565b7f80000000000000000000000000000000000000000000000000000000000000008114610fb9575f0390565b600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008114610fb9575f0390565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361016d5790565b60443573ffffffffffffffffffffffffffffffffffffffff8116810361016d5790565b9081602091031261016d575190565b9081600f0b918203610c1857565b909180156118115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803b1561016d575f928360649273ffffffffffffffffffffffffffffffffffffffff948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af18015610c8e576118055750565b5f61180f91611658565b565b505050565b5f915082156118115773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690813b1561016d57604051907fa584119400000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff8116918260048201525f8160248183885af18015610c8e57611aa5575b50816119365750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af190811561192a57506118ff5750565b6119209060203d602011611923575b6119188183611658565b81019061173a565b50565b503d61190e565b604051903d90823e3d90fd5b9091926040602082604481988285519788927fa9059cbb0000000000000000000000000000000000000000000000000000000084528b600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156119d95750602082916004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af190811561192a57506118ff5750565b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d011690604051927f90bfb86500000000000000000000000000000000000000000000000000000000845260048401527fa9059cbb000000000000000000000000000000000000000000000000000000006024840152608060448401528160a00160648401523d60848401523d9060a484013e7ff27f64e40000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b611ab29194505f90611658565b5f925f6118b756fea164736f6c634300081a000a000000000000000000000000000000000004444c5dc75cb358380d2e3de08a900000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0",
- "nonce": "0x28",
- "chainId": "0x1"
- },
- "additionalContracts": [],
- "isFixedGasLimit": false
- },
- {
- "hash": "0xbe0998cacc36d9689aaa6ada9975df5bf480b486cdd568a50b8140007f8fca81",
- "transactionType": "CREATE2",
- "contractName": "WstETHRoutingHook",
- "contractAddress": "0x3ac6e14a142251eb3fe739399e0a8da81ed06888",
- "function": null,
- "arguments": [
- "0x000000000004444c5dc75cB358380D2e3dE08A90",
- "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0"
- ],
- "transaction": {
- "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
- "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "value": "0x0",
- "input": "0x00000000000000000000000000000000000000000000000000000000000055cf610120806040523461040d57604081611f6780380380916100208285610454565b83398101031261040d578051906001600160a01b038216820361040d57602001516001600160a01b0381169182820361040d5760405163183fc7c960e31b8152602081600481875afa908115610419575f916103d3575b5060018060a01b0316906080525f6101a060405161009481610424565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a06040516100f681610424565b60018152826020820152600160408201528260608201528260808201528260a0820152600160c08201528260e08201528261010082015282610120820152600161014082015282610160820152826101808201520152612000301615156001148015906103c6575b80156103b5575b80156103a8575b801561039b575b801561038e575b801561037e575b8015610372575b8015610366575b801561035a575b801561034a575b801561033e575b8015610332575b8015610326575b61031357825f604492819460209660a0528160c05283821060e052610100526040519263095ea7b360e01b84526004840152811960248401525af13d15601f3d1160015f5114161716156102dd57604051611aef9081610478823960805181818160f7015281816101f301528181610440015281816107200152818161079a01528181610877015281816109e601528181611253015281816112cb0152818161179e015261185e015260a05181818161033c01528181610384015281816104ae0152610e11015260c05181818161025f015281816103ce01528181610a8801528181610eb20152611361015260e05181818161021b015281816108fa0152610a3b015261010051818181610b7b01528181610d4e01528181610e7f015281816110f301526112050152f35b60405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b6044820152606490fd5b630732d7b560e51b5f523060045260245ffd5b506001301615156101b2565b506002301615156101ab565b506004301615156101a4565b506008301615156001141561019d565b50601030161515610196565b5060203016151561018f565b50604030161515610188565b5060803016151560011415610181565b506101003016151561017a565b5061020030161515610173565b506104003016151561016c565b506108003016151560011415610165565b506110003016151561015e565b90506020813d602011610411575b816103ee60209383610454565b8101031261040d57516001600160a01b038116810361040d575f610077565b5f80fd5b3d91506103e1565b6040513d5f823e3d90fd5b6101c081019081106001600160401b0382111761044057604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176104405760405256fe6080806040526004361015610012575f80fd5b5f3560e01c9081630bc6bffc146113195750806321d0ee70146112a1578063259982e5146112295780634aa07e64146111bb578063575e24b41461091f5780635d5711a5146108c55780636c2bbe7e1461076e5780636fe7e6eb146107e85780639f063efc1461076e578063b47b2fb114610659578063b6a8b0fa146100cc578063c4e833ce146104d2578063d52f63cf14610464578063dc4c90d3146103f6578063dc98354e146101715763e1b4af69146100cc575f80fd5b3461016d576100da36611595565b50505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f80fd5b3461016d5760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d576101a8611385565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261016d576101db611572565b5073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0000000000000000000000000000000000000000000000000000000000000000156103645761024761171c565b73ffffffffffffffffffffffffffffffffffffffff807f0000000000000000000000000000000000000000000000000000000000000000169116148061031b575b156102f35760643562ffffff811680910361016d576102cb5760206040517fdc98354e000000000000000000000000000000000000000000000000000000008152f35b7f1213a0ab000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fdcdedda9000000000000000000000000000000000000000000000000000000005f5260045ffd5b5061032461173f565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911614610288565b61036c61171c565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911614801561028857506103b661173f565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911614610288565b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d575f6101a060405161051081611636565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201526101c0602060405161057381611636565b60018152818101905f82526040810160018152606082015f8152608083015f815260a084015f815260c085016001815260e08601905f82526101008701925f84526101208801945f8652610140890196600188526101608a01985f8a526101a06101808c019b5f8d52019b5f8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b3461016d576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d57610691611385565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261016d5760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261016d576101443567ffffffffffffffff811161016d576107079036906004016113a8565b505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461016d5761077c366114a1565b5050505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461016d576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d57610820611385565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261016d57610853611572565b5060e4358060020b0361016d5773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b3461016d576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d57610957611385565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc36011261016d5760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c36011261016d576101243567ffffffffffffffff811161016d576109cd9036906004016113a8565b505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168033036101455760e4355f8112918280936111b4575b61118c57821580611184575b61115c5760c43580151580910361016d577f0000000000000000000000000000000000000000000000000000000000000000151503610df857508115610d0b57610a71816116c1565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690604051907f192084510000000000000000000000000000000000000000000000000000000082526004820152602081602481855afa8015610c9b575f90610cd8575b602091506024604051809481937f7a28fb8800000000000000000000000000000000000000000000000000000000835260048301525afa908115610c9b575f91610ca6575b50604051927fb0e3890000000000000000000000000000000000000000000000000000000000845281600485015260208460248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa938415610c9b575f94610c67575b5015610c4d57505f8212610c2557610bd8610bcd610bd2610bcd606095611771565b6116ed565b92611771565b906fffffffffffffffffffffffffffffffff169060801b175b604051907f575e24b400000000000000000000000000000000000000000000000000000000825260208201525f6040820152f35b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b91505f8212610c2557610bd8610bcd610bd2606094611771565b9093506020813d602011610c93575b81610c8360209383611680565b8101031261016d57519284610bab565b3d9150610c76565b6040513d5f823e3d90fd5b90506020813d602011610cd0575b81610cc160209383611680565b8101031261016d575183610b30565b3d9150610cb4565b506020813d602011610d03575b81610cf260209383611680565b8101031261016d5760209051610aeb565b3d9150610ce5565b6040517f9576a0c800000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c9b575f91610dc6575b507812725dd1d243aba0e75fe645cc4873f9e65afe688c928e1f218211670de0b6b3a7640000021581021561016d57670de0b6b3a76400008202908082049106151501610a71565b90506020813d602011610df0575b81610de160209383611680565b8101031261016d575183610d7e565b3d9150610dd4565b9180156110aa57610e08826116c1565b905b610e3582307f000000000000000000000000000000000000000000000000000000000000000061177f565b6040517fde0e9a3e0000000000000000000000000000000000000000000000000000000081528260048201526020816024815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1908115610c9b575f91611078575b507f00000000000000000000000000000000000000000000000000000000000000009073ffffffffffffffffffffffffffffffffffffffff821695604051917f70a082310000000000000000000000000000000000000000000000000000000083528160048401526020836024818b5afa928315610c9b575f93611042575b50610f3e9060209394309061183e565b6024604051809881937f70a0823100000000000000000000000000000000000000000000000000000000835260048301525afa948515610c9b575f9561100e575b508403938411610fe15715610fc757505f8212610c2557610faa610bcd610bd2610bcd606095611771565b906fffffffffffffffffffffffffffffffff169060801b17610bf1565b91505f8212610c2557610faa610bcd610bd2606094611771565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9094506020813d60201161103a575b8161102a60209383611680565b8101031261016d57519385610f7f565b3d915061101d565b9092506020813d602011611070575b8161105e60209383611680565b8101031261016d575191610f3e610f2e565b3d9150611051565b90506020813d6020116110a2575b8161109360209383611680565b8101031261016d575185610eaf565b3d9150611086565b6040517fb0e3890000000000000000000000000000000000000000000000000000000000815282600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c9b575f9161112a575b5090610e0a565b90506020813d602011611154575b8161114560209383611680565b8101031261016d575184611123565b3d9150611138565b7f21b865b3000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001610a28565b7f0ace433b000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f610a1c565b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461016d57611237366113d6565b505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f78895c13000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461016d576112af366113d6565b505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610145577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461016d575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261016d5760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361016d57565b9181601f8401121561016d5782359167ffffffffffffffff831161016d576020838186019501011161016d57565b906101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261016d5760043573ffffffffffffffffffffffffffffffffffffffff8116810361016d579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc82011261016d5760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c83011261016d5760c491610144359067ffffffffffffffff821161016d5761149d916004016113a8565b9091565b906101a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc83011261016d5760043573ffffffffffffffffffffffffffffffffffffffff8116810361016d579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc82011261016d5760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c83011261016d5760c49161014435916101643591610184359067ffffffffffffffff821161016d5761149d916004016113a8565b60c4359073ffffffffffffffffffffffffffffffffffffffff8216820361016d57565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc82011261016d5760043573ffffffffffffffffffffffffffffffffffffffff8116810361016d579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc83011261016d5760249160c4359160e43591610104359067ffffffffffffffff821161016d5761149d916004016113a8565b6101c0810190811067ffffffffffffffff82111761165357604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761165357604052565b7f80000000000000000000000000000000000000000000000000000000000000008114610fe1575f0390565b600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008114610fe1575f0390565b60243573ffffffffffffffffffffffffffffffffffffffff8116810361016d5790565b60443573ffffffffffffffffffffffffffffffffffffffff8116810361016d5790565b9081602091031261016d575190565b9081600f0b918203610c2557565b909180156118395773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803b1561016d575f928360649273ffffffffffffffffffffffffffffffffffffffff948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af18015610c9b5761182d5750565b5f61183791611680565b565b505050565b5f915082156118395773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690813b1561016d57604051907fa584119400000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff8116918260048201525f8160248183885af18015610c9b57611acd575b508161195e5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af190811561195257506119275750565b6119489060203d60201161194b575b6119408183611680565b810190611762565b50565b503d611936565b604051903d90823e3d90fd5b9091926040602082604481988285519788927fa9059cbb0000000000000000000000000000000000000000000000000000000084528b600485015260248401525af13d15601f3d11600185511416171692828152826020820152015215611a015750602082916004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af190811561195257506119275750565b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d011690604051927f90bfb86500000000000000000000000000000000000000000000000000000000845260048401527fa9059cbb000000000000000000000000000000000000000000000000000000006024840152608060448401528160a00160648401523d60848401523d9060a484013e7ff27f64e40000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b611ada9194505f90611680565b5f925f6118df56fea164736f6c634300081a000a000000000000000000000000000000000004444c5dc75cb358380d2e3de08a900000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0",
- "nonce": "0x29",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e0000000000000000000000005c7bcd6e7de5423a257d81b442095a1a6ced35c5",
+ "nonce": "0x2f",
"chainId": "0x1"
},
"additionalContracts": [],
@@ -46,73 +24,25 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0xa920cc",
- "logs": [
- {
- "address": "0xae7ab96520de3a18e5e111b5eaab095312d7fe84",
- "topics": [
- "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
- "0x000000000000000000000000cdde8f9c3414a00f804e5c565eed9949ad17e888",
- "0x0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"
- ],
- "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
- "blockHash": "0xe59d87e984c9ba9b6909681282db6fd15d767b43a6edacaec8516af7dd9bb636",
- "blockNumber": "0x15f5d07",
- "transactionHash": "0x8c5526a3239bd3994144bae9d762efa945485ac9da9c51f53734a02ff9c62da2",
- "transactionIndex": "0x3e",
- "logIndex": "0xfa",
- "removed": false
- }
- ],
- "logsBloom": "0x00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000020000000000000000000000000200000000000000000000000000000400000000000000000000000000000000000080000000000000000000000000000000000010000000000000000000000000000000000000044000000000000000000000",
- "type": "0x2",
- "transactionHash": "0x8c5526a3239bd3994144bae9d762efa945485ac9da9c51f53734a02ff9c62da2",
- "transactionIndex": "0x3e",
- "blockHash": "0xe59d87e984c9ba9b6909681282db6fd15d767b43a6edacaec8516af7dd9bb636",
- "blockNumber": "0x15f5d07",
- "gasUsed": "0x184121",
- "effectiveGasPrice": "0x78bb29cd",
- "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
- "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": "0xcdde8f9c3414a00f804e5c565eed9949ad17e888"
- },
- {
- "status": "0x1",
- "cumulativeGasUsed": "0x7129d1",
- "logs": [
- {
- "address": "0xae7ab96520de3a18e5e111b5eaab095312d7fe84",
- "topics": [
- "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
- "0x0000000000000000000000003ac6e14a142251eb3fe739399e0a8da81ed06888",
- "0x0000000000000000000000007f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"
- ],
- "data": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
- "blockHash": "0x373c7757790d46e89dac19fe4330cce416b377c29b3f669e610fb2dc29774dee",
- "blockNumber": "0x15f5d08",
- "transactionHash": "0xbe0998cacc36d9689aaa6ada9975df5bf480b486cdd568a50b8140007f8fca81",
- "transactionIndex": "0x2d",
- "logIndex": "0xa8",
- "removed": false
- }
- ],
- "logsBloom": "0x00080100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000020000000000000000000000000200000000000000000000000000000000040000000000000000000000000000000080000000000000000000000000000000000010000000000000000000000000000000000000004000000000000000000000",
+ "cumulativeGasUsed": "0x14edc2c",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0xbe0998cacc36d9689aaa6ada9975df5bf480b486cdd568a50b8140007f8fca81",
- "transactionIndex": "0x2d",
- "blockHash": "0x373c7757790d46e89dac19fe4330cce416b377c29b3f669e610fb2dc29774dee",
- "blockNumber": "0x15f5d08",
- "gasUsed": "0x18629c",
- "effectiveGasPrice": "0x748bd1df",
+ "transactionHash": "0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e",
+ "transactionIndex": "0x87",
+ "blockHash": "0x85b75cca5f0be78e8d0c54aa89bfec08a0a46058e3e3cb0b9848f2c062b04814",
+ "blockNumber": "0x16bb6bc",
+ "gasUsed": "0x4890a5",
+ "effectiveGasPrice": "0x11f5880f",
"from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": "0x3ac6e14a142251eb3fe739399e0a8da81ed06888"
+ "contractAddress": "0xd92a36b0000531ef3063ded4de20a0783308446c"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1753818223,
+ "timestamp": 1763594449915,
"chain": 1,
- "commit": "320811c"
+ "commit": "d2d9c4a"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/10/run-1763596337443.json b/broadcast/Deploy-all.s.sol/10/run-1763596337443.json
new file mode 100644
index 00000000..e5929bcf
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/10/run-1763596337443.json
@@ -0,0 +1,54 @@
+{
+ "transactions": [
+ {
+ "hash": "0x5413e69a593fecdb2958f3cf80893172ae24b16ba5bb8482c83814b199a7ece7",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xde20eee5398d3790a4d356e8925bd21ea65d99af",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x9a13F98Cb987694C9F086b1F5eB990EeA8264Ec3, 0xC36442b4a4522E871399CD717aBDD847Ab11FE88, 0x3C3Ea4B57a46241e54610e5f022E5c45859A1017, 0x6f26Bf09B1C792e3228e5467807a900A503c0281)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000c3c1c532f1e39edf36be9fe0be1410313e074bf0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000009a13f98cb987694c9f086b1f5eb990eea8264ec3000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000003c3ea4b57a46241e54610e5f022e5c45859a10170000000000000000000000006f26bf09b1c792e3228e5467807a900a503c0281",
+ "nonce": "0xa",
+ "chainId": "0xa"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x8ada0c",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0x5413e69a593fecdb2958f3cf80893172ae24b16ba5bb8482c83814b199a7ece7",
+ "transactionIndex": "0x13",
+ "blockHash": "0x30f62e8203f5bd8197865ba0256494d0ff6eeca94a24d44706ade9f98d05b067",
+ "blockNumber": "0x8953f31",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x18f",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0xde20eee5398d3790a4d356e8925bd21ea65d99af",
+ "l1BaseFeeScalar": "0x146b",
+ "l1BlobBaseFee": "0x3b7",
+ "l1BlobBaseFeeScalar": "0xf79c5",
+ "l1Fee": "0x395edddf",
+ "l1GasPrice": "0x6dbf43d",
+ "l1GasUsed": "0x2f153"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763596337443,
+ "chain": 10,
+ "commit": "cc18617"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/10/run-latest.json b/broadcast/Deploy-all.s.sol/10/run-latest.json
index 1242c402..e5929bcf 100644
--- a/broadcast/Deploy-all.s.sol/10/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/10/run-latest.json
@@ -1,20 +1,20 @@
{
"transactions": [
{
- "hash": "0x029e91802d7ff5802ee09179c89f6f8ad98c1204405bd51e84fa1185b7239af0",
+ "hash": "0x5413e69a593fecdb2958f3cf80893172ae24b16ba5bb8482c83814b199a7ece7",
"transactionType": "CREATE2",
- "contractName": "ERC7914Detector",
- "contractAddress": "0xc470458fc6a7e43471b31e6a2eb2612215a7102e",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xde20eee5398d3790a4d356e8925bd21ea65d99af",
"function": null,
"arguments": [
- "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00"
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x9a13F98Cb987694C9F086b1F5eB990EeA8264Ec3, 0xC36442b4a4522E871399CD717aBDD847Ab11FE88, 0x3C3Ea4B57a46241e54610e5f022E5c45859A1017, 0x6f26Bf09B1C792e3228e5467807a900A503c0281)"
],
"transaction": {
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b506040516103c53803806103c583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610335610090600039600081816068015260d301526103356000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806337e276381461003b57806385bb2fa814610063575b600080fd5b61004e6100493660046102b7565b6100a2565b60405190151581526020015b60405180910390f35b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161005a565b6000813b8082036100b65750600092915050565b6100bf83610135565b156101255760006100cf84610172565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610114575060019392505050565b61011d81610191565b949350505050565b61012e83610191565b9392505050565b60006017826001600160a01b03163b101561015257506000919050565b61ef0160f01b610161836102a6565b6001600160e81b0319161492915050565b60008061017e836102a6565b60481c6001600160a01b03169392505050565b6040805160006024820181905260448201819052606480830182905283518084039091018152608490920183526020820180516001600160e01b031663789ff70160e01b9081179091529251909291839182916001600160a01b038716916101f991906102e0565b600060405180830381855afa9150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b509150915081801561024c575080516020145b1561027f57600081806020019051810190610267919061030f565b90506001811161027d5750600195945050505050565b505b81801561028b57508051155b1561029b57506000949350505050565b506000949350505050565b60006017600080843c505060005190565b6000602082840312156102c957600080fd5b81356001600160a01b038116811461012e57600080fd5b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b60006020828403121561032157600080fd5b505191905056fea164736f6c6343000813000a000000000000000000000000000000009b1d0af20d8c6d0a44e162d11f9b8f00",
- "nonce": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000c3c1c532f1e39edf36be9fe0be1410313e074bf0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000009a13f98cb987694c9f086b1f5eb990eea8264ec3000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000003c3ea4b57a46241e54610e5f022e5c45859a10170000000000000000000000006f26bf09b1c792e3228e5467807a900a503c0281",
+ "nonce": "0xa",
"chainId": "0xa"
},
"additionalContracts": [],
@@ -24,33 +24,31 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0x1d616a2",
+ "cumulativeGasUsed": "0x8ada0c",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0x029e91802d7ff5802ee09179c89f6f8ad98c1204405bd51e84fa1185b7239af0",
- "transactionIndex": "0x15",
- "blockHash": "0xbe48c7417e6ebbba21616ceef4af28385370ec06e2c6097f3e7acec994796ada",
- "blockNumber": "0x85dca8c",
- "gasUsed": "0x38cb0",
- "effectiveGasPrice": "0x14d0",
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "transactionHash": "0x5413e69a593fecdb2958f3cf80893172ae24b16ba5bb8482c83814b199a7ece7",
+ "transactionIndex": "0x13",
+ "blockHash": "0x30f62e8203f5bd8197865ba0256494d0ff6eeca94a24d44706ade9f98d05b067",
+ "blockNumber": "0x8953f31",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x18f",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": null,
+ "contractAddress": "0xde20eee5398d3790a4d356e8925bd21ea65d99af",
"l1BaseFeeScalar": "0x146b",
- "l1BlobBaseFee": "0x1",
+ "l1BlobBaseFee": "0x3b7",
"l1BlobBaseFeeScalar": "0xf79c5",
- "l1Fee": "0xe1d6a9596",
- "l1GasPrice": "0x3c677bc8",
- "l1GasUsed": "0x2cb4",
- "operatorFeeConstant": "0x0",
- "operatorFeeScalar": "0x0"
+ "l1Fee": "0x395edddf",
+ "l1GasPrice": "0x6dbf43d",
+ "l1GasUsed": "0x2f153"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1756327634,
+ "timestamp": 1763596337443,
"chain": 10,
- "commit": "320811c"
+ "commit": "cc18617"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/130/run-1763599044388.json b/broadcast/Deploy-all.s.sol/130/run-1763599044388.json
new file mode 100644
index 00000000..e9455fe5
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/130/run-1763599044388.json
@@ -0,0 +1,54 @@
+{
+ "transactions": [
+ {
+ "hash": "0xbe465e72ad881676b0fc5d4176c5cf619db9b978cb2a9f5c0f98fd0e24a0bfe9",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xe6039ae5b44f90d56c6b029354fb22999861a9a0",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x1F98400000000000000000000000000000000002, 0x1F98400000000000000000000000000000000003, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x1F98400000000000000000000000000000000004, 0x943e6e07a7E8E791dAFC44083e54041D743C46E9, 0x4529A01c7A0410167c5740C487A8DE60232617bf, 0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000001f984000000000000000000000000000000000020000000000000000000000001f9840000000000000000000000000000000000396e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000001f98400000000000000000000000000000000004000000000000000000000000943e6e07a7e8e791dafc44083e54041d743c46e90000000000000000000000004529a01c7a0410167c5740c487a8de60232617bf00000000000000000000000009aea4b2242abc8bb4bb78d537a67a245a7bec64",
+ "nonce": "0x4",
+ "chainId": "0x82"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x919e71",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0xbe465e72ad881676b0fc5d4176c5cf619db9b978cb2a9f5c0f98fd0e24a0bfe9",
+ "transactionIndex": "0xa",
+ "blockHash": "0xa695f431752861b8df21f5a14d1ec1e5ada0dbcf6e3bcd4eba87b8de3996c8be",
+ "blockNumber": "0x1f542e5",
+ "gasUsed": "0x488dc9",
+ "effectiveGasPrice": "0xf16",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0xe6039ae5b44f90d56c6b029354fb22999861a9a0",
+ "l1BaseFeeScalar": "0x7d0",
+ "l1BlobBaseFee": "0x10e",
+ "l1BlobBaseFeeScalar": "0xdbba0",
+ "l1Fee": "0x200f48e539",
+ "l1GasPrice": "0x155afc32",
+ "l1GasUsed": "0x2ee9b"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763599044388,
+ "chain": 130,
+ "commit": "c0b6b96"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/130/run-latest.json b/broadcast/Deploy-all.s.sol/130/run-latest.json
index 4544ecf2..e9455fe5 100644
--- a/broadcast/Deploy-all.s.sol/130/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/130/run-latest.json
@@ -1,20 +1,20 @@
{
"transactions": [
{
- "hash": "0xbec3c59bc540a2816c38d59072d375bb94ab3eb64d3377f6194e19928e5055b4",
+ "hash": "0xbe465e72ad881676b0fc5d4176c5cf619db9b978cb2a9f5c0f98fd0e24a0bfe9",
"transactionType": "CREATE2",
- "contractName": "ERC7914Detector",
- "contractAddress": "0xc470458fc6a7e43471b31e6a2eb2612215a7102e",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xe6039ae5b44f90d56c6b029354fb22999861a9a0",
"function": null,
"arguments": [
- "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00"
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x1F98400000000000000000000000000000000002, 0x1F98400000000000000000000000000000000003, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x1F98400000000000000000000000000000000004, 0x943e6e07a7E8E791dAFC44083e54041D743C46E9, 0x4529A01c7A0410167c5740C487A8DE60232617bf, 0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64)"
],
"transaction": {
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b506040516103c53803806103c583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610335610090600039600081816068015260d301526103356000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806337e276381461003b57806385bb2fa814610063575b600080fd5b61004e6100493660046102b7565b6100a2565b60405190151581526020015b60405180910390f35b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161005a565b6000813b8082036100b65750600092915050565b6100bf83610135565b156101255760006100cf84610172565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610114575060019392505050565b61011d81610191565b949350505050565b61012e83610191565b9392505050565b60006017826001600160a01b03163b101561015257506000919050565b61ef0160f01b610161836102a6565b6001600160e81b0319161492915050565b60008061017e836102a6565b60481c6001600160a01b03169392505050565b6040805160006024820181905260448201819052606480830182905283518084039091018152608490920183526020820180516001600160e01b031663789ff70160e01b9081179091529251909291839182916001600160a01b038716916101f991906102e0565b600060405180830381855afa9150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b509150915081801561024c575080516020145b1561027f57600081806020019051810190610267919061030f565b90506001811161027d5750600195945050505050565b505b81801561028b57508051155b1561029b57506000949350505050565b506000949350505050565b60006017600080843c505060005190565b6000602082840312156102c957600080fd5b81356001600160a01b038116811461012e57600080fd5b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b60006020828403121561032157600080fd5b505191905056fea164736f6c6343000813000a000000000000000000000000000000009b1d0af20d8c6d0a44e162d11f9b8f00",
- "nonce": "0x73",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000001f984000000000000000000000000000000000020000000000000000000000001f9840000000000000000000000000000000000396e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000001f98400000000000000000000000000000000004000000000000000000000000943e6e07a7e8e791dafc44083e54041d743c46e90000000000000000000000004529a01c7a0410167c5740c487a8de60232617bf00000000000000000000000009aea4b2242abc8bb4bb78d537a67a245a7bec64",
+ "nonce": "0x4",
"chainId": "0x82"
},
"additionalContracts": [],
@@ -24,31 +24,31 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0x4965c",
+ "cumulativeGasUsed": "0x919e71",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0xbec3c59bc540a2816c38d59072d375bb94ab3eb64d3377f6194e19928e5055b4",
- "transactionIndex": "0x2",
- "blockHash": "0x16b62d18bf9a146ad8d0bb6e0578168fca62315bc0ea90dede5c5f6f2e6bd09d",
- "blockNumber": "0x1864ab0",
- "gasUsed": "0x38cb0",
- "effectiveGasPrice": "0x182e",
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "transactionHash": "0xbe465e72ad881676b0fc5d4176c5cf619db9b978cb2a9f5c0f98fd0e24a0bfe9",
+ "transactionIndex": "0xa",
+ "blockHash": "0xa695f431752861b8df21f5a14d1ec1e5ada0dbcf6e3bcd4eba87b8de3996c8be",
+ "blockNumber": "0x1f542e5",
+ "gasUsed": "0x488dc9",
+ "effectiveGasPrice": "0xf16",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": null,
+ "contractAddress": "0xe6039ae5b44f90d56c6b029354fb22999861a9a0",
"l1BaseFeeScalar": "0x7d0",
- "l1BlobBaseFee": "0x1",
+ "l1BlobBaseFee": "0x10e",
"l1BlobBaseFeeScalar": "0xdbba0",
- "l1Fee": "0xd8a83d0a3",
- "l1GasPrice": "0x97458656",
- "l1GasUsed": "0x2cc1"
+ "l1Fee": "0x200f48e539",
+ "l1GasPrice": "0x155afc32",
+ "l1GasUsed": "0x2ee9b"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1756326519,
+ "timestamp": 1763599044388,
"chain": 130,
- "commit": "320811c"
+ "commit": "c0b6b96"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/1301/run-1763598612129.json b/broadcast/Deploy-all.s.sol/1301/run-1763598612129.json
new file mode 100644
index 00000000..6b495f1b
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/1301/run-1763598612129.json
@@ -0,0 +1,31 @@
+{
+ "transactions": [
+ {
+ "hash": null,
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x7f9b8d606e0f35e5073abf93695814530b28a37b",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x9cB26A7183B2F4515945Dc52CB4195B0d2D06C95, 0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075, 0x12A98709BB5D0641D61458f85dcAFbE17AC2d05c, 0x6999526e507Cc3b03b180BbE05E1Ff938259A874)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000009cb26a7183b2f4515945dc52cb4195b0d2d06c95000000000000000000000000b7f724d6dddfd008eff5cc2834edde5f9ef0d07500000000000000000000000012a98709bb5d0641d61458f85dcafbe17ac2d05c0000000000000000000000006999526e507cc3b03b180bbe05e1ff938259a874",
+ "nonce": "0x0",
+ "chainId": "0x515"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763598612129,
+ "chain": 1301,
+ "commit": "c0b6b96"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/1301/run-1763598857268.json b/broadcast/Deploy-all.s.sol/1301/run-1763598857268.json
new file mode 100644
index 00000000..7e9e4641
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/1301/run-1763598857268.json
@@ -0,0 +1,56 @@
+{
+ "transactions": [
+ {
+ "hash": "0x68a2eb98c2e52c2c2a7ec8f690e343b0da2380b63601e86776df836d8392a0a9",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x7f9b8d606e0f35e5073abf93695814530b28a37b",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x9cB26A7183B2F4515945Dc52CB4195B0d2D06C95, 0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075, 0x12A98709BB5D0641D61458f85dcAFbE17AC2d05c, 0x6999526e507Cc3b03b180BbE05E1Ff938259A874)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000009cb26a7183b2f4515945dc52cb4195b0d2d06c95000000000000000000000000b7f724d6dddfd008eff5cc2834edde5f9ef0d07500000000000000000000000012a98709bb5d0641d61458f85dcafbe17ac2d05c0000000000000000000000006999526e507cc3b03b180bbe05e1ff938259a874",
+ "nonce": "0x0",
+ "chainId": "0x515"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x4a1fb8",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0x68a2eb98c2e52c2c2a7ec8f690e343b0da2380b63601e86776df836d8392a0a9",
+ "transactionIndex": "0x3",
+ "blockHash": "0x8e4171f5f81b64f0243a27f54b87bcab3f07c13ec31a2d1079dbba8453ad6e1a",
+ "blockNumber": "0x230b4a5",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x33",
+ "blobGasUsed": "0x4990d0",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0x7f9b8d606e0f35e5073abf93695814530b28a37b",
+ "daFootprintGasScalar": "0x190",
+ "l1BaseFeeScalar": "0x7d0",
+ "l1BlobBaseFee": "0x1",
+ "l1BlobBaseFeeScalar": "0xdbba0",
+ "l1Fee": "0x37ef",
+ "l1GasPrice": "0x9",
+ "l1GasUsed": "0x2f153"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763598857268,
+ "chain": 1301,
+ "commit": "c0b6b96"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/1301/run-latest.json b/broadcast/Deploy-all.s.sol/1301/run-latest.json
index 17bf290c..7e9e4641 100644
--- a/broadcast/Deploy-all.s.sol/1301/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/1301/run-latest.json
@@ -1,20 +1,20 @@
{
"transactions": [
{
- "hash": "0x79223e459e374a931b5cf32f82860ac3980306e7e23a4d3004ad974a3aee1ab4",
+ "hash": "0x68a2eb98c2e52c2c2a7ec8f690e343b0da2380b63601e86776df836d8392a0a9",
"transactionType": "CREATE2",
- "contractName": "ERC7914Detector",
- "contractAddress": "0xc470458fc6a7e43471b31e6a2eb2612215a7102e",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x7f9b8d606e0f35e5073abf93695814530b28a37b",
"function": null,
"arguments": [
- "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00"
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x9cB26A7183B2F4515945Dc52CB4195B0d2D06C95, 0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075, 0x12A98709BB5D0641D61458f85dcAFbE17AC2d05c, 0x6999526e507Cc3b03b180BbE05E1Ff938259A874)"
],
"transaction": {
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b506040516103c53803806103c583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610335610090600039600081816068015260d301526103356000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806337e276381461003b57806385bb2fa814610063575b600080fd5b61004e6100493660046102b7565b6100a2565b60405190151581526020015b60405180910390f35b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161005a565b6000813b8082036100b65750600092915050565b6100bf83610135565b156101255760006100cf84610172565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610114575060019392505050565b61011d81610191565b949350505050565b61012e83610191565b9392505050565b60006017826001600160a01b03163b101561015257506000919050565b61ef0160f01b610161836102a6565b6001600160e81b0319161492915050565b60008061017e836102a6565b60481c6001600160a01b03169392505050565b6040805160006024820181905260448201819052606480830182905283518084039091018152608490920183526020820180516001600160e01b031663789ff70160e01b9081179091529251909291839182916001600160a01b038716916101f991906102e0565b600060405180830381855afa9150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b509150915081801561024c575080516020145b1561027f57600081806020019051810190610267919061030f565b90506001811161027d5750600195945050505050565b505b81801561028b57508051155b1561029b57506000949350505050565b506000949350505050565b60006017600080843c505060005190565b6000602082840312156102c957600080fd5b81356001600160a01b038116811461012e57600080fd5b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b60006020828403121561032157600080fd5b505191905056fea164736f6c6343000813000a000000000000000000000000000000009b1d0af20d8c6d0a44e162d11f9b8f00",
- "nonce": "0x1",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000009cb26a7183b2f4515945dc52cb4195b0d2d06c95000000000000000000000000b7f724d6dddfd008eff5cc2834edde5f9ef0d07500000000000000000000000012a98709bb5d0641d61458f85dcafbe17ac2d05c0000000000000000000000006999526e507cc3b03b180bbe05e1ff938259a874",
+ "nonce": "0x0",
"chainId": "0x515"
},
"additionalContracts": [],
@@ -24,31 +24,33 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0xc95e2",
+ "cumulativeGasUsed": "0x4a1fb8",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0x79223e459e374a931b5cf32f82860ac3980306e7e23a4d3004ad974a3aee1ab4",
+ "transactionHash": "0x68a2eb98c2e52c2c2a7ec8f690e343b0da2380b63601e86776df836d8392a0a9",
"transactionIndex": "0x3",
- "blockHash": "0x81a58be56dca827c71c1fca8dac8c533b26d9042c186d027e27518a2b0f49736",
- "blockNumber": "0x1c1c5b9",
- "gasUsed": "0x38cb0",
- "effectiveGasPrice": "0xfe",
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "blockHash": "0x8e4171f5f81b64f0243a27f54b87bcab3f07c13ec31a2d1079dbba8453ad6e1a",
+ "blockNumber": "0x230b4a5",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x33",
+ "blobGasUsed": "0x4990d0",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": null,
+ "contractAddress": "0x7f9b8d606e0f35e5073abf93695814530b28a37b",
+ "daFootprintGasScalar": "0x190",
"l1BaseFeeScalar": "0x7d0",
- "l1BlobBaseFee": "0x10",
+ "l1BlobBaseFee": "0x1",
"l1BlobBaseFeeScalar": "0xdbba0",
- "l1Fee": "0x53d21af1",
- "l1GasPrice": "0x3a979ce",
- "l1GasUsed": "0x2cb4"
+ "l1Fee": "0x37ef",
+ "l1GasPrice": "0x9",
+ "l1GasUsed": "0x2f153"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1756328710,
+ "timestamp": 1763598857268,
"chain": 1301,
- "commit": "320811c"
+ "commit": "c0b6b96"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/137/run-1763596111610.json b/broadcast/Deploy-all.s.sol/137/run-1763596111610.json
new file mode 100644
index 00000000..3274a553
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/137/run-1763596111610.json
@@ -0,0 +1,66 @@
+{
+ "transactions": [
+ {
+ "hash": "0x696626ea8d2cc585d9d47284996e14cc221e24c67d7b5e46a57002ac79eb7ae5",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xe27610fd9dd05fc061366bc9da414ca6f948f204",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270, 0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x67366782805870060151383F4BbFF9daB53e5cD6, 0xC36442b4a4522E871399CD717aBDD847Ab11FE88, 0x1Ec2eBf4F37E7363FDfe3551602425af0B3ceef9, 0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf12700000000000000000000000009e5a52f57b3038f1b8eee45f28b3c1967e22799c0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5400000000000000000000000067366782805870060151383f4bbff9dab53e5cd6000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000001ec2ebf4f37e7363fdfe3551602425af0b3ceef90000000000000000000000009295ee1d8c5b022be115a2ad3c30c72e34e7f096",
+ "nonce": "0x9",
+ "chainId": "0x89"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x1b08287",
+ "logs": [
+ {
+ "address": "0x0000000000000000000000000000000000001010",
+ "topics": [
+ "0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63",
+ "0x0000000000000000000000000000000000000000000000000000000000001010",
+ "0x0000000000000000000000002179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "0x0000000000000000000000007ee41d8a25641000661b1ef5e6ae8a00400466b0"
+ ],
+ "data": "0x000000000000000000000000000000000000000000000000024f58556373de000000000000000000000000000000000000000000000000759259db13349b9e000000000000000000000000000000000000000000000280cfd2c1b6216dfd3fc2000000000000000000000000000000000000000000000075900a82bdd127c0000000000000000000000000000000000000000000000280cfd5110e76d1711dc2",
+ "blockHash": "0xc3fb45278266e7bc9d2f5499df0a9d18733b1d4951f7031c9f1c4709252c8748",
+ "blockNumber": "0x4b930d4",
+ "blockTimestamp": "0x691e572f",
+ "transactionHash": "0x696626ea8d2cc585d9d47284996e14cc221e24c67d7b5e46a57002ac79eb7ae5",
+ "transactionIndex": "0x46",
+ "logIndex": "0x284",
+ "removed": false
+ }
+ ],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000020000008400000000000000000000000040000000000000200000000000000000000000000000000000000000000000000000000000004000000000000000000001000000000000000000400000000000100000000800000000000000000000000000000000000000000000000000000000000000100000",
+ "type": "0x2",
+ "transactionHash": "0x696626ea8d2cc585d9d47284996e14cc221e24c67d7b5e46a57002ac79eb7ae5",
+ "transactionIndex": "0x46",
+ "blockHash": "0xc3fb45278266e7bc9d2f5499df0a9d18733b1d4951f7031c9f1c4709252c8748",
+ "blockNumber": "0x4b930d4",
+ "gasUsed": "0x4890e1",
+ "effectiveGasPrice": "0xc7b17b4a5",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0xe27610fd9dd05fc061366bc9da414ca6f948f204"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763596111610,
+ "chain": 137,
+ "commit": "da7429d"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/137/run-latest.json b/broadcast/Deploy-all.s.sol/137/run-latest.json
index 65904f1e..3274a553 100644
--- a/broadcast/Deploy-all.s.sol/137/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/137/run-latest.json
@@ -1,18 +1,20 @@
{
"transactions": [
{
- "hash": "0x4acd9888da3c5480fdba3ac1c701c332de7bd25c56c6776701dfb096e4141a4a",
+ "hash": "0x696626ea8d2cc585d9d47284996e14cc221e24c67d7b5e46a57002ac79eb7ae5",
"transactionType": "CREATE2",
- "contractName": "Calibur",
- "contractAddress": "0x3cbad1e3b9049ecdb9588fb48dd61d80faf41bd5",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xe27610fd9dd05fc061366bc9da414ca6f948f204",
"function": null,
- "arguments": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270, 0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x67366782805870060151383F4BbFF9daB53e5cD6, 0xC36442b4a4522E871399CD717aBDD847Ab11FE88, 0x1Ec2eBf4F37E7363FDfe3551602425af0B3ceef9, 0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096)"
+ ],
"transaction": {
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060e0604052346100ce57604080519081016001600160401b038111828210176100ba576040908152600782526621b0b634b13ab960c91b6020830190815281519182016001600160401b038111838210176100ba57604052600582526020820192640312e302e360dc1b845251902060805251902060a0523060c052604051615c3290816100d38239608051818181611e8d0152612526015260a051818181611eb3015261254c015260c05181818161225501526124d80152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe60806040526004361015610015575b3661259657005b5f3560e01c80630f3ebf6e1461024457806312aaac701461023f5780631626ba7e1461023a57806319822f7c146102355780631b71bb6e14610230578063219a260d1461022b57806323d578861461022657806325e5c2431461022157806327258b221461021c57806328495877146102175780632abbf4691461021257806330b1fa3b1461020d5780634223b5c2146102085780636575f6aa146102035780636750aa5f146101fe5780636a1ea88d146101f95780637613e7ba146101f4578063786902f2146101ef578063789ff701146101ea57806384b0196e146101e55780638dd7712f146101e057806394430fa5146101db57806399e1d016146101d6578063a58bb84a146101d1578063ac9650d8146101cc578063b70e36f0146101c7578063b75c7dc6146101c2578063b923614f146101bd578063bf7c5be9146101b8578063c3c16ee4146101b3578063d03c7914146101ae578063e41dae2f146101a9578063e9ae5c53146101a4578063f698da251461019f5763fac750e00361000e57611778565b61175e565b6116b3565b61166a565b61164c565b6114a5565b611462565b611445565b6112a6565b61117f565b61107b565b610f42565b610f0e565b610d6c565b610cc4565b610bee565b610bd5565b610bbc565b610b56565b610b12565b610ae3565b610a79565b6109f2565b610972565b6107b9565b61075a565b610732565b6106b0565b61062b565b610601565b610554565b6103e5565b610393565b610302565b3461026a57602060031936011261026a576020610262600435611792565b604051908152f35b5f80fd5b6003111561027857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9060038210156102785752565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b606060206102ff938184526102ef82850182516102a5565b01519160408082015201906102b2565b90565b3461026a57602060031936011261026a5761032d610321600435611912565b604051918291826102d7565b0390f35b9181601f8401121561026a5782359167ffffffffffffffff831161026a576020838186019501011161026a57565b90604060031983011261026a57600435916024359067ffffffffffffffff821161026a5761038f91600401610331565b9091565b3461026a5760206103ac6103a63661035f565b91611a2f565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b908161012091031261026a5790565b3461026a57606060031936011261026a5760043567ffffffffffffffff811161026a576104169036906004016103d6565b60443560243573ffffffffffffffffffffffffffffffffffffffff610439612290565b1633036105015761032d926104836104d792846104d0956104f1575b5061046d610467610100850185611bc0565b9061283b565b9693928561047e8598949398611912565b6126fe565b9461048d82611792565b95156104e75778ffffffffff000000000000000000000000000000000000000086169788955b73ffffffffffffffffffffffffffffffffffffffff923691610921565b9516612e82565b6040519081529081906020820190565b60019788956104b3565b5f9081803892335af1505f610455565b7fd663742a000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff81160361026a57565b359061055282610529565b565b3461026a57602060031936011261026a5760043561057181610529565b3033036105d95773ffffffffffffffffffffffffffffffffffffffff167f800000000000000000000000000000000000000000000000000000000000000081175f557fea942933e7fb7cb728727281a81e352a20dda96dbc4ee97633a3fa25da48e4ab5f80a2005b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004355f526004602052602060405f2054604051908152f35b3461026a57604060031936011261026a5760043561064881610529565b602435903033036105d95773ffffffffffffffffffffffffffffffffffffffff1690815f5260056020528060405f20556040519081527f30346eac03b1c5913bb026e6d8d0f42783a0c706bb2a86916410dc385cc2723660203092a360405160018152602090f35b3461026a57604060031936011261026a576004356106cd81610529565b602435903033036105d957806106f88373ffffffffffffffffffffffffffffffffffffffff93612f71565b60405192835216907ff8c1385bb618a432aebbaae5bfab911559154982a64e1750b17b50f5782dc98860203092a360405160018152602090f35b3461026a57602060031936011261026a576020610750600435612f90565b6040519015158152f35b3461026a575f60031936011261026a5761032d60405161077b6040826108ba565b601581527f556e69737761702e43616c696275722e312e302e30000000000000000000000060208201526040519182916020835260208301906102b2565b3461026a57602060031936011261026a576004356bffffffffffffffffffffffff811680910361026a573033036105d9576006546bffffffffffffffffffffffff8116820361080457005b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016176006557f0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d315f80a1005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761089957604052565b610850565b6060810190811067ffffffffffffffff82111761089957604052565b90601f601f19910116810190811067ffffffffffffffff82111761089957604052565b6040519061055260c0836108ba565b604051906105526060836108ba565b6003111561026a57565b67ffffffffffffffff811161089957601f01601f191660200190565b92919261092d82610905565b9161093b60405193846108ba565b82948184528183011161026a578281602093845f960137010152565b9080601f8301121561026a578160206102ff93359101610921565b3461026a57602060031936011261026a5760043567ffffffffffffffff811161026a576040600319823603011261026a576040516109af8161087d565b81600401356109bd816108fb565b8152602482013567ffffffffffffffff811161026a576109f09260046109e69236920101610957565b6020820152611c25565b005b3461026a57602060031936011261026a57600435610a0e6117fb565b5080610a266318fb586460045260015f5260245f2090565b015490610a31613416565b1115610a51576103218168fbb67fda52d4bfb8bf61032d93141502611912565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576020610262600435610a9a612499565b604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9060206102ff9281815201906102b2565b3461026a575f60031936011261026a5761032d610afe611e62565b6040519182916020835260208301906102b2565b3461026a57602060031936011261026a5777ffffffffffffffffffffffffffffffffffffffffffffffff600435165f526004602052602060405f2054604051908152f35b3461026a575f60031936011261026a5760206040517f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686008152f35b600319606091011261026a57600435610ba881610529565b90602435610bb581610529565b9060443590565b3461026a576020610750610bcf36610b90565b91611ef6565b3461026a576020610750610be836610b90565b91612028565b3461026a575f60031936011261026a577fff00000000000000000000000000000000000000000000000000000000000000610c7573ffffffffffffffffffffffffffffffffffffffff610c67610c4261217b565b97946040999397919699949294519a8b9a168a5260e060208b015260e08a01906102b2565b9088820360408a01526102b2565b93606087015216608085015260a084015282810360c0840152602080835192838152019201905f5b818110610cab575050500390f35b8251845285945060209384019390920191600101610c9d565b3461026a57604060031936011261026a5760043567ffffffffffffffff811161026a57610cf59036906004016103d6565b73ffffffffffffffffffffffffffffffffffffffff610d12612290565b16330361050157610d3c610d2d610467610100840184611bc0565b50505050916060810190611bc0565b60048193929310610d5f57826004610d5a926109f095019101610ee8565b613160565b633b99b53d5f526004601cfd5b3461026a575f60031936011261026a576020610d86612290565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b67ffffffffffffffff81116108995760051b60200190565b9080601f8301121561026a57813591610dd483610da4565b92610de260405194856108ba565b80845260208085019160051b8301019183831161026a5760208101915b838310610e0e57505050505090565b823567ffffffffffffffff811161026a578201906060601f19838803011261026a5760405190610e3d8261089e565b6020830135610e4b81610529565b82526040830135602083015260608301359167ffffffffffffffff831161026a57610e7e88602080969581960101610957565b6040820152815201920191610dff565b8015150361026a57565b91909160408184031261026a5760405190610eb28261087d565b819381359167ffffffffffffffff831161026a57610ed66020939284938301610dbc565b8452013591610ee483610e8e565b0152565b9060208282031261026a57813567ffffffffffffffff811161026a576102ff9201610e98565b602060031936011261026a5760043567ffffffffffffffff811161026a57610f3d6109f0913690600401610e98565b6122ec565b3461026a57604060031936011261026a576004356024353033036105d9578115610fd657610f6f82612f90565b15610fae5760207f55194732cd17a56216773dcef66731844f1900f9b878633e3be2b6cce1e542c991835f52600382528060405f2055604051908152a2005b7fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fb37b2fa0000000000000000000000000000000000000000000000000000000005f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061103057505050505090565b909192939460208061106c837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516102b2565b97019301930191939290611021565b602060031936011261026a5760043567ffffffffffffffff811161026a573660238201121561026a5780600401359067ffffffffffffffff821161026a576024810190602436918460051b01011161026a576110d682610da4565b916110e460405193846108ba565b808352601f196110f382610da4565b015f5b81811061116e5750505f5b818110611116576040518061032d8682610ffe565b5f80611123838587612339565b9061113360405180938193612355565b0390305af4611140612362565b901561116657906001916111548287612391565b5261115f8186612391565b5001611101565b602081519101fd5b8060606020809388010152016110f6565b3461026a57602060031936011261026a576004353033036105d9578060401c805f5260046020526111bb60405f205467ffffffffffffffff1690565b9167ffffffffffffffff81169267ffffffffffffffff811684111561127e5767ffffffffffffffff61ffff9185031611611256577f4d9dbebf1d909894d9c26fe228c27cec643b2cb490124e5b658f4edd203c20c1926112406112519377ffffffffffffffffffffffffffffffffffffffffffffffff165f52600460205260405f2090565b556040519081529081906020820190565b0390a1005b7f24d35a26000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f756688fe000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004353033036105d957805f906112da6318fb586460045260015f5260245f2090565b9068fbb67fda52d4bfb8bf8414611438578315611428575b811980549182159260011c5f19810191600183811b17946113bc57856020525f5260405f209485549283156113ad575f97505f1984010361138f575b505050555561133d60015b1590565b610fae5761135b611356825f52600260205260405f2090565b612407565b5f818152600360205260408120557fe5af7daed5ab2a2dc5f98d53619f05089c0c14d11a6621f6b906a2366c9a7ab35f80a2005b5f1980849383010154928392010155855260408520555f808061132e565b5050505050505061133d901590565b9550505050506001908281541461140c57818101838154146113f85750600201918254146113ee57506001905061133d565b5f61133d92551590565b61133d935060025f92019081549055551590565b61133d9250806002835f93019182548155019081549055551590565b5068fbb67fda52d4bfb8bf6112f2565b63f5a267f15f526004601cfd5b3461026a575f60031936011261026a576020600154604051908152f35b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff60043561149481610529565b165f526020805f205c604051908152f35b604060031936011261026a5760043567ffffffffffffffff811161026a57806004019060a0600319823603011261026a5760243567ffffffffffffffff811161026a576114f6903690600401610331565b91909273ffffffffffffffffffffffffffffffffffffffff606483013561151c81610529565b168015908115611642575b50156105d95760848201358015159081611638575b506116105761155e6113399361158e956115596024860135613b28565b613b5a565b9691604461158061157b611576999496993689613342565b613b9a565b611e56565b960135968661047e89611912565b6115e8576109f094610d5a938573ffffffffffffffffffffffffffffffffffffffff6115d16115d8956115c084611792565b956115ca87612ad7565b3691610921565b9316613d4b565b6115e3369180612466565b610e98565b7f8baa579f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f0819bdcd000000000000000000000000000000000000000000000000000000005f5260045ffd5b905042115f61153c565b905033145f611527565b3461026a57602060031936011261026a5760206107506004356133c1565b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff60043561169c81610529565b165f526005602052602060405f2054604051908152f35b6116bc3661035f565b6116c78392936133c1565b156117365782019160208184031261026a5780359067ffffffffffffffff821161026a576109f0937eff0000000000000000000000000000000000000000000000000000000000009261171a9201610dbc565b91604051926117288461087d565b8352161560208201526122ec565b7f7f181275000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a575f60031936011261026a576020610262612499565b3461026a575f60031936011261026a576020610262613416565b80156117dc576117a181612f90565b6117cd577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f52600360205260405f205490565b5079010000000000000000000000000000000000000000000000000090565b604051906118088261087d565b60606020835f81520152565b90600182811c9216801561185b575b602083101461182e57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611823565b81601f8201121561026a5780519061187c82610905565b9261188a60405194856108ba565b8284526020838301011161026a57815f9260208093018386015e8301015290565b60208183031261026a5780519067ffffffffffffffff821161026a570160408183031261026a57604051916118df8361087d565b81516118ea816108fb565b8352602082015167ffffffffffffffff811161026a5761190a9201611865565b602082015290565b61191a6117fb565b508015611a265761192a81612f90565b611956577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f52600260205260405f206040515f82549261197184611814565b9081845260208401946001811690815f146119eb57506001146119ae575b5050816119a46102ff949360209303826108ba565b80510101906118ab565b5f908152602081209092505b8183106119d15750508101602001816119a461198f565b6001816020929493945483858801015201910191906119ba565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686525050151560051b82016020019050816119a461198f565b506102ff6125cc565b9180611b4e5761773961ffff821904028314611b2757611a4e9161283b565b9391611a5d8396949296611912565b91611a728282611a6b611e62565b888761288e565b928315611b0b575b50505015611ae357611ab9611abf94611a9283611792565b611a9b81612ad7565b73ffffffffffffffffffffffffffffffffffffffff16943691610921565b92612b83565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b505050507fffffffff0000000000000000000000000000000000000000000000000000000090565b611b1f935085611b19612499565b91612a75565b5f8080611a7a565b5050507f773900010000000000000000000000000000000000000000000000000000000090565b90611b598282612606565b611b675790611a4e9161283b565b611b739261047e6125cc565b15611b9c577f1626ba7e0000000000000000000000000000000000000000000000000000000090565b7fffffffff0000000000000000000000000000000000000000000000000000000090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561026a570180359067ffffffffffffffff821161026a5760200191813603831361026a57565b60405190611c206020836108ba565b5f8252565b3033036105d957805160038110156102785780611c4360029261026e565b1480611cfb575b611cd3577f8df00f8e3bbfb2c3024a60b74e1d4e520f7cbe1da3476726241146ecf6328832611cce611c7b8361300e565b92611cb8604051611ca181611c9385602083016102d7565b03601f1981018352826108ba565b611cb3865f52600260205260405f2090565b611d8b565b611cc18461304b565b50604051918291826102d7565b0390a2565b7f41e2e8f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b50602081015173ffffffffffffffffffffffffffffffffffffffff611d2b825192602080309583010191016126e9565b1614611c4a565b818110611d3d575050565b5f8155600101611d32565b9190601f8111611d5757505050565b610552925f5260205f20906020601f840160051c83019310611d81575b601f0160051c0190611d32565b9091508190611d74565b919091825167ffffffffffffffff811161089957611db381611dad8454611814565b84611d48565b6020601f8211600114611df1578190611de29394955f92611de6575b50505f198260011b9260031b1c19161790565b9055565b015190505f80611dcf565b601f19821690611e04845f5260205f2090565b915f5b818110611e3e57509583600195969710611e26575b505050811b019055565b01515f1960f88460031b161c191690555f8080611e1c565b9192602060018192868b015181550194019201611e07565b6102ff90610a9a612499565b73ffffffffffffffffffffffffffffffffffffffff611e7f61217b565b5094509150939150604051937f000000000000000000000000000000000000000000000000000000000000000060208601527f00000000000000000000000000000000000000000000000000000000000000006040860152606085015216608083015260a082015260a081526102ff60c0826108ba565b82156120205773ffffffffffffffffffffffffffffffffffffffff30911603611ff857335f908152602090205c90828210611fd05781835f1973ffffffffffffffffffffffffffffffffffffffff9410611fbe575b505016905f80808084865af1611f5f612362565b5015611f96576040519081527f3f1beca043a9fe9118bbaeca0035e81e02d6d7cf184bf32fa9dfbd73fdd027c060203092a3600190565b7fb06a467a000000000000000000000000000000000000000000000000000000005f5260045ffd5b611fc9910333612f71565b5f83611f4b565b7fc45cb513000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f7d1c29f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b505050600190565b91905f9282156121725773ffffffffffffffffffffffffffffffffffffffff30911603611ff857335f90815260056020526040902054828110611fd0575f1981106120f6575b5073ffffffffffffffffffffffffffffffffffffffff16918080808085875af1612096612362565b50156120ce57506040519081527fed1cf8378e55f85e35be72eebdbef1b7347825916e51aa538d1855113f8c259d60203092a3600190565b807fb06a467a0000000000000000000000000000000000000000000000000000000060049252fd5b73ffffffffffffffffffffffffffffffffffffffff919350829003925f938061213d3373ffffffffffffffffffffffffffffffffffffffff165f52600560205260405f2090565b5560405190815233907f85b16643b7d42712d1470a1ed9822d6e8cadad23eb1141cabefa28da0944c5b790602090a29061206e565b50505050600190565b7f1f000000000000000000000000000000000000000000000000000000000000009060408051906121ac81836108ba565b600782527f43616c6962757200000000000000000000000000000000000000000000000000602083015280516121e282826108ba565b600581527f312e302e3000000000000000000000000000000000000000000000000000000060208201526006549293909246923092909160a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161791516122836020826108ba565b5f80825236602083013790565b5f547f80000000000000000000000000000000000000000000000000000000000000008116156122d35773ffffffffffffffffffffffffffffffffffffffff1690565b50734337084d9e255ff0702461cf8895ce9e3b5ff10890565b6122f5336132b6565b6122fe8161330f565b156105d95761055291613160565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b908210156123505761038f9160051b810190611bc0565b61230c565b908092918237015f815290565b3d1561238c573d9061237382610905565b9161238160405193846108ba565b82523d5f602084013e565b606090565b80518210156123505760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81160361240257565b6123a5565b6124118154611814565b908161241b575050565b81601f5f931160011461242c575055565b8183526020832061244891601f0160051c810190600101611d32565b808252602082209081548360011b905f198560031b1c191617905555565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18136030182121561026a570190565b60065460a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161760405160208101917fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647283527f000000000000000000000000000000000000000000000000000000000000000060408301527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a083015260c082015260c0815261259060e0826108ba565b51902090565b5f3560e01c63bc197c81811463f23a6e6182141763150b7a028214176125c357633c10b94e5f526004601cfd5b6020526020603cf35b6125d46117fb565b50604051306020820152602081526125ed6040826108ba565b604051906125fa8261087d565b60028252602082015290565b5060418114908115612616575090565b604091501490565b919082604091031261026a576020825192015190565b60208183031261026a5780359067ffffffffffffffff821161026a57019060c08282031261026a576126646108dd565b91803567ffffffffffffffff811161026a5782612682918301610957565b8352602081013567ffffffffffffffff811161026a5760a0926126a6918301610957565b6020840152604081013560408401526060810135606084015260808101356080840152013560a082015290565b919082604091031261026a576020823592013590565b9081602091031261026a57516102ff81610529565b92906002845161270d8161026e565b6127168161026e565b0361277f579073ffffffffffffffffffffffffffffffffffffffff9261273b926137c8565b1690816127485750505f90565b612762602061277b920151602080825183010191016126e9565b73ffffffffffffffffffffffffffffffffffffffff1690565b1490565b835161278a8161026e565b6127938161026e565b6127d0576127cb906127c36127b860206102ff9701516020808251830101910161261e565b9590948101906126d3565b929091613785565b61379d565b600184516127dd8161026e565b6127e68161026e565b0361283357611c9361282e61281961280e60206102ff9801516020808251830101910161261e565b969095810190612634565b92604051928391602083019190602083019252565b613577565b505050505f90565b919082359261284a8282613856565b9093819363ffffffff60408501351684019063ffffffff82351694602080840193870101910110610d5f5760409093921061288157565b634be6321b5f526004601cfd5b909193929361289d84866142da565b9490936128b460208801359260408901359861430a565b90916128f38985604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b03612a695761290191613919565b82959299939199158015612a61575b612a5357611c936129ee61293b6102ff9c612933612a1196612a4d9b3691610921565b943691610921565b604051928391605c61297860208501977f5479706564446174615369676e280000000000000000000000000000000000008952602e8601906134a2565b7f20636f6e74656e74732c737472696e67206e616d652c737472696e672076657281527f73696f6e2c75696e7432353620636861696e49642c616464726573732076657260208201527f696679696e67436f6e74726163742c627974657333322073616c742900000000604082015201906134a2565b51902092611c9360405193849260208401968752604084015260608301906134a2565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b906126fe565b505050505050505050505f90565b508015612910565b50505050505050505f90565b906102ff949392612a4d91604090601c60208351612a9385826108ba565b828152017f506572736f6e616c5369676e28627974657320707265666978656429000000008152209180519160208301938452818301528152612a116060826108ba565b612ae090613b09565b90612ae85750565b64ffffffffff907f48c76fe1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b51907fffffffff000000000000000000000000000000000000000000000000000000008216820361026a57565b9081602091031261026a576102ff90612b1b565b6102ff93926060928252602082015281604082015201906102b2565b6040513d5f823e3d90fd5b9290919260048116612b96575b50505050565b612be89373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f9ac4eafd00000000000000000000000000000000000000000000000000000000855260048501612b5c565b0392165afa908115612ca6577f9ac4eafd00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612c77575b501603612c4f575f808080612b90565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b612c99915060203d602011612c9f575b612c9181836108ba565b810190612b48565b5f612c3f565b503d612c87565b612b78565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561026a57016020813591019167ffffffffffffffff821161026a57813603831361026a57565b601f8260209493601f1993818652868601375f8582860101520116010190565b91612e6a906102ff96949592845260a06020850152612d5a60a08501612d4083610547565b73ffffffffffffffffffffffffffffffffffffffff169052565b602081013560c0850152612e39612e2d612dce612d90612d7d6040860186612cab565b61012060e08b01526101c08a0191612cfb565b612d9d6060860186612cab565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608a8403016101008b0152612cfb565b608084013561012088015260a084013561014088015260c0840135610160880152612dfc60e0850185612cab565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60898403016101808a0152612cfb565b91610100810190612cab565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868403016101a0870152612cfb565b936040830152606082015260808184039101526102b2565b9190939460028316612e97575b505050505050565b602094612ee973ffffffffffffffffffffffffffffffffffffffff92604051988997889687957f9e364dba00000000000000000000000000000000000000000000000000000000875260048701612d1b565b0392165afa908115612ca6577f9e364dba00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f52575b501603612c4f575f8080808080612e8f565b612f6b915060203d602011612c9f57612c9181836108ba565b5f612f40565b73ffffffffffffffffffffffffffffffffffffffff165f5260205f205d565b612fa660016318fb58646004525f5260245f2090565b68fbb67fda52d4bfb8bf8214611438578115612ffd575b80195415612fd4576020525f5260405f2054151590565b9060019181815414612ff857818382015414612ff85760020154146102ff57505f90565b505090565b68fbb67fda52d4bfb8bf9150612fbd565b8051906003821015610278576020015160208151910120604051906130376020830180946102a5565b6040820152604081526125906060826108ba565b905f9161306460016318fb58646004525f5260245f2090565b9068fbb67fda52d4bfb8bf8114611438578015613150575b8119918254918160205282156130c4575b805f5260405f20928354156130a3575050505050565b9091929394955060011c8092015560010180915560011b6001179055600190565b91508054801561314757828114612b9057600182018054908115613139575083811461313257600283019182549283156131235750848314612e8f575f52600160405f20555f52600260405f20555f52600360405f205560079161308d565b95505050505091925055600190565b5050505050565b945050505091925055600190565b50555060019150565b5068fbb67fda52d4bfb8bf61307c565b5f5b81518051821015612b90578161317791612391565b51805173ffffffffffffffffffffffffffffffffffffffff16806132b0575030905b6131a285611792565b60ff60c882901c161580613291575b6132695785925f8073ffffffffffffffffffffffffffffffffffffffff61320e94169460208101936131ee60408651930192835190838b8b614453565b9451915191602083519301915af19283613206612362565b9586926145e0565b158061325c575b6132225750600101613162565b613258906040519182917fa5fa8d2b00000000000000000000000000000000000000000000000000000000835260048301610ad2565b0390fd5b5060208301511515613215565b7f3ceb88d9000000000000000000000000000000000000000000000000000000005f5260045ffd5b503073ffffffffffffffffffffffffffffffffffffffff8416146131b1565b90613199565b73ffffffffffffffffffffffffffffffffffffffff1630811461330a576102ff90604051906020820152602081526132ef6040826108ba565b604051906132fc8261087d565b60028252602082015261300e565b505f90565b801561333c5761331e81612f90565b1561330a575f52600360205261333760405f2054613b09565b501590565b50600190565b91909160a08184031261026a576040519060a0820182811067ffffffffffffffff82111761089957604052819381359167ffffffffffffffff831161026a576133916080939284938301610e98565b8452602081013560208501526040810135604085015260608101356133b581610529565b60608501520135910152565b7f010000000000000000000000000000000000000000000000000000000000000081149081156133ef575090565b7f010100000000000000000000000000000000000000000000000000000000000091501490565b6318fb586460045260015f5260245f2090811954918260011c92151590805415600260018301541592015415921561344d57505050565b90919293505f90613473575060019061346e57506002906102ff5750600390565b919050565b92915050565b906015820180921161240257565b906002820180921161240257565b9190820180921161240257565b805191908290602001825e015f815290565b9061055260016134f4936040519485917f226368616c6c656e6765223a22000000000000000000000000000000000000006020840152602d8301906134a2565b7f22000000000000000000000000000000000000000000000000000000000000008152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18101855201836108ba565b8051602010156123505760400190565b61356190602093926134a2565b9081520190565b9081602091031261026a575190565b92919060a081019384517f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8106137725760208201907fff1a2a9176d650e4a99dedb58f1793003935130579fe17b5a3f698ac5b00e6346135e6835160608601516135e081613479565b916148bc565b602081519101200361377b576135fe61360391613e15565b6134b4565b613618825160408501516135e0845182613495565b60208151910120906020815191012003613772577f01000000000000000000000000000000000000000000000000000000000000008061368161365b8551613544565b517fff000000000000000000000000000000000000000000000000000000000000001690565b1603613772575f61369b60209251604051918280926134a2565b039060025afa15612ca65760205f6136d081516136c48551611c93604051938492888401613554565b604051918280926134a2565b039060025afa15612ca65760805f519101935f808651856137218551611c938a60405194859360208501978c899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa94613731612362565b80519680613769575b61374d57506102ff955051905191613e7c565b60019661277b9650810160209081019550019250613568915050565b5086151561373a565b50505050505f90565b5050505050505f90565b5f5260206001815f60025afa51903d1561379b57565bfe5b939291906137ae8484848489613fd6565b909590156137be57505050505090565b6102ff9550614091565b604080515f95949093918114613813576041146137e457505050565b604080929395508101355f1a60205281375b5f526020604060805f60015afa505f6060523d6060185191604052565b507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91929450602081013590601b8260ff1c0160205235604052166060526137f6565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110610d5f57565b905f19820191821161240257565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255103907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551821161240257565b90821015612350570190565b8015612402575f190190565b90929192831161026a579190565b9093929384831161026a57841161026a578101920390565b908061392c575b50505f905f905f905f90565b7f29000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000006139aa61398461397d85613881565b85876138db565b357fff000000000000000000000000000000000000000000000000000000000000001690565b1603613a50575f5b8181106139c5575b5050505b5f80613920565b6139d36139848284866138db565b7fff0000000000000000000000000000000000000000000000000000000000000081167f280000000000000000000000000000000000000000000000000000000000000003613a3b57508015613a3657613a2e9082846138f3565b939093929190565b6139ba565b613a4490614335565b613a36576001016139b2565b9081805b613a61575b5050506139be565b613a7b613984613a748396949596613881565b86866138db565b7fff0000000000000000000000000000000000000000000000000000000000000081167f290000000000000000000000000000000000000000000000000000000000000003613ae4575080613ad585613add938187613901565b9590946138f3565b9293929091565b613af19094939294614335565b613b0457613afe906138e7565b80613a54565b613a59565b60a01c64ffffffffff16908115613b21574282109190565b5f91508190565b8060401c5f52600460205260405f208054915f1983146124025767ffffffffffffffff91600184019055160361127e57565b909163ffffffff82351682019063ffffffff8235169060208084019383010184860110610d5f57613b8f604093958395613856565b939093921061288157565b60c1610100613bac60405191826108ba565b8181527f290000000000000000000000000000000000000000000000000000000000000060e060208301927f5369676e65644261746368656443616c6c284261746368656443616c6c20626184527f746368656443616c6c2c75696e74323536206e6f6e63652c627974657333322060408201527f6b6579486173682c61646472657373206578656375746f722c75696e7432353660608201527f20646561646c696e65294261746368656443616c6c2843616c6c5b5d2063616c60808201527f6c732c626f6f6c207265766572744f6e4661696c7572652943616c6c2861646460a08201527f7265737320746f2c75696e743235362076616c75652c6279746573206461746160c082015201522090612590613cc982516146cb565b611c936020840151936040810151906080613cfb606083015173ffffffffffffffffffffffffffffffffffffffff1690565b9101519160405196879560208701998a929360a09473ffffffffffffffffffffffffffffffffffffffff93989796929860c086019986526020860152604085015260608401521660808201520152565b9290919260018116613d5d5750505050565b613daf9373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f33dd593c00000000000000000000000000000000000000000000000000000000855260048501612b5c565b0392165afa908115612ca6577f33dd593c00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612c7757501603612c4f575f808080612b90565b6040516102ff91613e276060836108ba565b604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f6040830152614966565b939190929383158015613f97575b8015613f8f575b8015613f65575b61377257613ea68386614a0d565b156137725760405191602083526020808401526020604084015260608301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f60808301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255160a083015260208260c08160055f19fa1561026a577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255194613f5f9386613f59945181818909940991614ad9565b9161388f565b90081590565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551821015613e98565b508115613e91565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551841015613e8a565b9081602091031261026a57516102ff81610e8e565b919093613fe66113398387615378565b801561407e575b614072575f94611c9361402c9287966040519586946020860198899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa61403b612362565b9080614067575b15614060578060208061405a93518301019101613fc1565b90600190565b505f905f90565b506020815114614042565b50505050505f90600190565b5061408c61133982866153ef565b613fed565b90939291926140a08486615378565b1580156142c9575b613772577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255161429661277b9561428b6142a2966140e361547e565b956140ec6108ec565b5f81525f60208201525f604082015287526141056108ec565b91825260208201526001604082015261411e8660200190565b9081526141296108ec565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29681527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f56020820152600160408201526080870190815261428161418d835161573c565b604089019081526142726142636141a4855161573c565b6101008c019081526141b98751855190615779565b9560608d019687528c6141d96141d28a51845190615779565b9160a00190565b528c6141f26141eb8751845190615779565b9160c00190565b528c61420b6142048951845190615779565b9160e00190565b528c61422561421d8a51855190615779565b916101200190565b528c61423f6142378751855190615779565b916101400190565b528c6142596142518951855190615779565b916101600190565b5251905190615779565b6101808b018181529551615779565b6101a08a015251835190615779565b6101c08801614259565b6101e0850152615798565b818188099309906154c4565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551900690565b506142d481846153ef565b156140a8565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061430257565b9150505f5f91565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061430257565b7fff000000000000000000000000000000000000000000000000000000000000001680159081156143f4575b81156143ca575b81156143a0575b8115614379575090565b7f290000000000000000000000000000000000000000000000000000000000000091501490565b7f28000000000000000000000000000000000000000000000000000000000000008114915061436f565b7f2c0000000000000000000000000000000000000000000000000000000000000081149150614368565b7f200000000000000000000000000000000000000000000000000000000000000081149150614361565b91909160408184031261026a5761443481612b1b565b92602082015167ffffffffffffffff811161026a576102ff9201611865565b60609594909291906008841661446a575050505050565b5f94965073ffffffffffffffffffffffffffffffffffffffff809493926144da87936040519a8b98899788957fec9b4ee4000000000000000000000000000000000000000000000000000000008752600487015216602485015260448401526080606484015260848301906102b2565b0393165af18015612ca6575f925f91614543575b507fffffffff000000000000000000000000000000000000000000000000000000007fec9b4ee40000000000000000000000000000000000000000000000000000000091931603612c4f575f80808080613132565b7fffffffff0000000000000000000000000000000000000000000000000000000093507fec9b4ee40000000000000000000000000000000000000000000000000000000091506145a4903d805f833e61459c81836108ba565b81019061441e565b93909391506144ee565b926102ff94926145d2928552151560208501526080604085015260808401906102b2565b9160608184039101526102b2565b909291601082166145f2575050505050565b5f73ffffffffffffffffffffffffffffffffffffffff602095614644604051988997889687947fc82b1759000000000000000000000000000000000000000000000000000000008652600486016145ae565b0393165af1908115612ca6577fc82b175900000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f916146ac575b501603612c4f575f80808080613132565b6146c5915060203d602011612c9f57612c9181836108ba565b5f61469b565b608060576040516146dd6080826108ba565b8181527f6e743235362076616c75652c6279746573206461746129000000000000000000606060208301927f4261746368656443616c6c2843616c6c5b5d2063616c6c732c626f6f6c20726584527f766572744f6e4661696c7572652943616c6c286164647265737320746f2c75696040820152015220908251805194601f1961477f61476988610da4565b97614777604051998a6108ba565b808952610da4565b013660208801376060935f5b835181101561486857806147a160019286612391565b5160296040516147b18a826108ba565b8181527f7465732064617461290000000000000000000000000000000000000000000000604060208301927f43616c6c286164647265737320746f2c75696e743235362076616c75652c627984520152209073ffffffffffffffffffffffffffffffffffffffff81511690604060208201519101516020815191012090604051926020840194855260408401528a8301528882015287815261485460a0826108ba565b519020614861828b612391565b520161478b565b50949350946125909250614899915060209060405161488e81611c9385820180956155d5565b519020930151151590565b604080516020810195865290810193909352151560608301528160808101611c93565b80516060949392908381111561492d575b81811115614925575b508281106148e357505050565b6040519450918290039101601f19601f830181165b808301518187015201801561491057601f19906148f8565b505060408184015f6020820152016040528252565b90505f6148d6565b9250826148cd565b9061493f82610905565b61494c60405191826108ba565b828152601f1961495c8294610905565b0190602036910137565b90815115614a03579061499361498e61498761498284516123d2565b613487565b6003900490565b614935565b916020830190828051019060208201928351945f85525b8381106149b957505050505290565b600360049101916001603f845182828260121c16880101518453828282600c1c16880101518385015382828260061c168801015160028501531685010151600382015301906149aa565b50506102ff611c11565b6ffffffffeffffffffffffffffffffffff60601b198110801590614abb575b8015614aaa575b614aa4576ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b818381807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81970991818180090908089180091490565b50505f90565b5080158015614a3357508115614a33565b506ffffffffeffffffffffffffffffffffff60601b19821015614a2c565b90915f925f9160ff95811580615370575b61536557614af88386615602565b94909788158061535d575b61530f575b83811c60028460fe1c16015b156152f757600184821c16600284831c60011b1601600181146152ac575b6002811461529f575b600314615294575b5f1990969493929196019460019889975b875f1911614beb5750505050505050505060405191606083015260208252602080830152602060408301527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808301526ffffffffeffffffffffffffffffffffff60601b1960a083015260208260c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b199151900990565b6ffffffffeffffffffffffffffffffffff60601b198160029c989a9c9b959697999b09936ffffffffeffffffffffffffffffffffff60601b1985800980956ffffffffeffffffffffffffffffffffff60601b19828409966ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b198a8208908a6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b19906003099c6ffffffffeffffffffffffffffffffffff60601b19908309986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19828009906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199087086ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1981938309906ffffffffeffffffffffffffffffffffff60601b19910891878c1c600116878d1c60011b60021601801561526f5760018114615224575b60028114615219575b600314615210575b8c156151fb578c916ffffffffeffffffffffffffffffffffff60601b198085818d8196090893888203920908948115614fe6575b6ffffffffeffffffffffffffffffffffff60601b19868009986ffffffffeffffffffffffffffffffffff60601b198a9788099d8e976ffffffffeffffffffffffffffffffffff60601b1991099d6ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09866ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b19848009906ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19910991856ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b19910892985f19905b0196949392979597614b54565b8c8615614ff35750614e48565b989150919a94506ffffffffeffffffffffffffffffffffff60601b198b7fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b198180099283916ffffffffeffffffffffffffffffffffff60601b19838309946ffffffffeffffffffffffffffffffffff60601b1991099d8e916ffffffffeffffffffffffffffffffffff60601b198281038208916ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1990600309926ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19838009906ffffffffeffffffffffffffffffffffff60601b1991089b6ffffffffeffffffffffffffffffffffff60601b199109918b6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b1991086ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b199108925f1990614fd9565b60019c50909a8c98509094505f199150614fd9565b50508183614e14565b8b92508a9150614e0c565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29692507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59150614e03565b5050505f19906ffffffffeffffffffffffffffffffffff60601b199a949a0393614fd9565b889750859150614b43565b9697508796859250614b3b565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29698507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59250614b32565b5f1901600184821c16600284831c60011b1601614b14565b91927fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551919382039008915f91831580615355575b15614b08575050505050505050505f90565b506001615343565b508515614b03565b505050505050505f90565b508015614aea565b9081151591826153c5575b50816153bb575b81615393575090565b7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89150111590565b801515915061538a565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325511191505f615383565b6ffffffffeffffffffffffffffffffffff60601b1980807f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b8185817fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81838009080908818580091493109110161690565b6040519061546d8261089e565b5f6040838281528260208201520152565b6040519061020061548f81846108ba565b825f5b82811061549e57505050565b6020906154a9615460565b8184015201615492565b9060108110156123505760051b0190565b5f9392849283929183915b608083106154e5575050505061038f9293615a2e565b856155b3575b600c6154f78260fc1c90565b1660036155048460fe1c90565b1617604061551282876154b3565b51015161553a575b5061553161552a60019260021b90565b9260021b90565b920191906154cf565b959194909782155f146155895750505061555484836154b3565b515192600161553161552a604061557a60206155708b8a6154b3565b51015199886154b3565b5101519796995b92505061551a565b61552a95926001926155a8926155a26155319a896154b3565b51615885565b979196909699615581565b96946155c491946155ca93966157fe565b916157fe565b9491939093966154eb565b80516020909101905f5b8181106155ec5750505090565b82518452602093840193909201916001016155df565b91907f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5918015615736578461038f949583148061572d575b156157185750506ffffffffeffffffffffffffffffffffff60601b1982600209916ffffffffeffffffffffffffffffffffff60601b198084800993818080808881818a09950996817fffffffff00000001000000000000000000000000fffffffffffffffffffffffe816001840892080960030981808080867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd0981858009089681600181818c099b099809810393868203900890090890615b4b565b90919261572493615aad565b92909190615b4b565b5081841461565b565b50925090565b61575c90615748615460565b5080519060406020820151910151916157fe565b906040519261576a8461089e565b83526020830152604082015290565b61575c91615785615460565b5080516040602083015192015192615885565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f6157e392615be1565b90156157ec5790565b634e487b715f5260126020526024601cfd5b9290916ffffffffeffffffffffffffffffffffff60601b1980918180868009968180808a818080808a800980097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b82039008900908940960020990565b91939092935f945f945f946040810151906ffffffffeffffffffffffffffffffffff60601b198280096ffffffffeffffffffffffffffffffffff60601b19858009926ffffffffeffffffffffffffffffffffff60601b1980878609602085015109916ffffffffeffffffffffffffffffffffff60601b19808681868103818d8189890990090896510991818381039189090890811585151694855f146159c95750505050506001146159375750505050565b6ffffffffeffffffffffffffffffffffff60601b198080809a508699508097985080969381808087819998099d838f94097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b820390089009089409600209905f808080612b90565b929b50935096506ffffffffeffffffffffffffffffffffff60601b1980808080809c9d50809a995080985080969f508b8009809709958a098180876002098103818381038188800908089d098103938c8203900890090895099009905f808080612b90565b92918015615aa3576ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffd615a7592615be1565b9190156157ec576ffffffffeffffffffffffffffffffffff60601b1991829081808280098097099509900990565b505090505f905f90565b9392908015615b3e576ffffffffeffffffffffffffffffffffff60601b19806001969481808080809a9881809981039d8e920908938160018b820392090881818009998a9182099809918180898180877fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09818381038188800908089c09938b820390080908946001099260010990565b5092509190600190600190565b9092919260405192602084526020808501526020604085015260608401527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808401526ffffffffeffffffffffffffffffffffff60601b1960a084015260208360c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b198093918180935180920995098009900991565b91908115615c1c576020925f9260c0926040519286845286808501528660408501526060840152608083015260a082015260055afa905f5190565b5050505f905f9056fea164736f6c634300081d000a",
- "nonce": "0x5",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf12700000000000000000000000009e5a52f57b3038f1b8eee45f28b3c1967e22799c0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5400000000000000000000000067366782805870060151383f4bbff9dab53e5cd6000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000001ec2ebf4f37e7363fdfe3551602425af0b3ceef90000000000000000000000009295ee1d8c5b022be115a2ad3c30c72e34e7f096",
+ "nonce": "0x9",
"chainId": "0x89"
},
"additionalContracts": [],
@@ -22,42 +24,43 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0xbf27d8",
+ "cumulativeGasUsed": "0x1b08287",
"logs": [
{
"address": "0x0000000000000000000000000000000000001010",
"topics": [
"0x4dfe1bbbcf077ddc3e01291eea2d5c70c2b422b415d95645b9adcfd678cb1d63",
"0x0000000000000000000000000000000000000000000000000000000000001010",
- "0x000000000000000000000000e49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
- "0x0000000000000000000000001efecb61a2f80aa34d3b9218b564a64d05946290"
+ "0x0000000000000000000000002179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "0x0000000000000000000000007ee41d8a25641000661b1ef5e6ae8a00400466b0"
],
- "data": "0x00000000000000000000000000000000000000000000000001f8997fa3c5bed90000000000000000000000000000000000000000000000003a6dd1a3026dff1b000000000000000000000000000000000000000000003d494d37f6fc2cb400f4000000000000000000000000000000000000000000000000387538235ea84042000000000000000000000000000000000000000000003d494f30907bd079bfcd",
- "blockHash": "0x1816c6c1153826b64eb751d544f1c4c9d99786193fa191d25e468ee49f6b48fb",
- "blockNumber": "0x4477655",
- "transactionHash": "0x4acd9888da3c5480fdba3ac1c701c332de7bd25c56c6776701dfb096e4141a4a",
- "transactionIndex": "0x35",
- "logIndex": "0x119",
+ "data": "0x000000000000000000000000000000000000000000000000024f58556373de000000000000000000000000000000000000000000000000759259db13349b9e000000000000000000000000000000000000000000000280cfd2c1b6216dfd3fc2000000000000000000000000000000000000000000000075900a82bdd127c0000000000000000000000000000000000000000000000280cfd5110e76d1711dc2",
+ "blockHash": "0xc3fb45278266e7bc9d2f5499df0a9d18733b1d4951f7031c9f1c4709252c8748",
+ "blockNumber": "0x4b930d4",
+ "blockTimestamp": "0x691e572f",
+ "transactionHash": "0x696626ea8d2cc585d9d47284996e14cc221e24c67d7b5e46a57002ac79eb7ae5",
+ "transactionIndex": "0x46",
+ "logIndex": "0x284",
"removed": false
}
],
- "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000200000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000002000004000000100000000000001000000800000000000000000000000100000000001002000000000000000000000000000000000000000000000000000000000100000",
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000800000000000000000000100000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000020000008400000000000000000000000040000000000000200000000000000000000000000000000000000000000000000000000000004000000000000000000001000000000000000000400000000000100000000800000000000000000000000000000000000000000000000000000000000000100000",
"type": "0x2",
- "transactionHash": "0x4acd9888da3c5480fdba3ac1c701c332de7bd25c56c6776701dfb096e4141a4a",
- "transactionIndex": "0x35",
- "blockHash": "0x1816c6c1153826b64eb751d544f1c4c9d99786193fa191d25e468ee49f6b48fb",
- "blockNumber": "0x4477655",
- "gasUsed": "0x4e6255",
- "effectiveGasPrice": "0x9ec431d82",
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "transactionHash": "0x696626ea8d2cc585d9d47284996e14cc221e24c67d7b5e46a57002ac79eb7ae5",
+ "transactionIndex": "0x46",
+ "blockHash": "0xc3fb45278266e7bc9d2f5499df0a9d18733b1d4951f7031c9f1c4709252c8748",
+ "blockNumber": "0x4b930d4",
+ "gasUsed": "0x4890e1",
+ "effectiveGasPrice": "0xc7b17b4a5",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": null
+ "contractAddress": "0xe27610fd9dd05fc061366bc9da414ca6f948f204"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1747837203,
+ "timestamp": 1763596111610,
"chain": 137,
- "commit": "0a52cd5"
+ "commit": "da7429d"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/143/run-1763599362037.json b/broadcast/Deploy-all.s.sol/143/run-1763599362037.json
new file mode 100644
index 00000000..eb85f7a4
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/143/run-1763599362037.json
@@ -0,0 +1,48 @@
+{
+ "transactions": [
+ {
+ "hash": "0xccf467c3c20e45ba72c4d092272db1d214140bd1d2004865e2cb954e213fd8c2",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xbc2a036e5027b9ae57bba847ef88e1b14823f7b1",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A, 0x182a927119D56008d921126764bF884221b10f59, 0x204FAca1764B154221e35c0d20aBb3c525710498, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x188d586Ddcf52439676Ca21A244753fA19F9Ea8e, 0x7197E214c0b767cFB76Fb734ab638E2c192F4E53, 0x5b7eC4a94fF9beDb700fb82aB09d5846972F4016, 0x0000000000000000000000000000000000000000)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000003bd359c1119da7da1d913d1c4d2b7c461115433a000000000000000000000000182a927119d56008d921126764bf884221b10f59000000000000000000000000204faca1764b154221e35c0d20abb3c52571049896e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000188d586ddcf52439676ca21a244753fa19f9ea8e0000000000000000000000007197e214c0b767cfb76fb734ab638e2c192f4e530000000000000000000000005b7ec4a94ff9bedb700fb82ab09d5846972f40160000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x24",
+ "chainId": "0x8f"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x5fdfe6",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0xccf467c3c20e45ba72c4d092272db1d214140bd1d2004865e2cb954e213fd8c2",
+ "transactionIndex": "0x1",
+ "blockHash": "0xb3fdf7b57ae2595979fccae1dabcaac5353f05411a535d6c628528307b732fb7",
+ "blockNumber": "0x23050b9",
+ "gasUsed": "0x5fdfe6",
+ "effectiveGasPrice": "0x17bfac7c00",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0xbc2a036e5027b9ae57bba847ef88e1b14823f7b1"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763599362037,
+ "chain": 143,
+ "commit": "7d170b7"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/143/run-latest.json b/broadcast/Deploy-all.s.sol/143/run-latest.json
index f45a5767..eb85f7a4 100644
--- a/broadcast/Deploy-all.s.sol/143/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/143/run-latest.json
@@ -1,21 +1,20 @@
{
"transactions": [
{
- "hash": "0xf7d33e2d187de2fb75db98198c1e840d5ac7394cd3a756524699710bf3575e06",
+ "hash": "0xccf467c3c20e45ba72c4d092272db1d214140bd1d2004865e2cb954e213fd8c2",
"transactionType": "CREATE2",
- "contractName": "WETHHook",
- "contractAddress": "0x3fad8a7205f943528915e67cf94fc792c8fce888",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xbc2a036e5027b9ae57bba847ef88e1b14823f7b1",
"function": null,
"arguments": [
- "0x188d586Ddcf52439676Ca21A244753fA19F9Ea8e",
- "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A"
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A, 0x182a927119D56008d921126764bF884221b10f59, 0x204FAca1764B154221e35c0d20aBb3c525710498, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x188d586Ddcf52439676Ca21A244753fA19F9Ea8e, 0x7197E214c0b767cFB76Fb734ab638E2c192F4E53, 0x5b7eC4a94fF9beDb700fb82aB09d5846972F4016, 0x0000000000000000000000000000000000000000)"
],
"transaction": {
"from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x00000000000000000000000000000000000000000000000000000000000031016101206040523461034457604051601f611bee38819003918201601f19168301916001600160401b03831184841017610348578084926040948552833981010312610344578051906001600160a01b038216820361034457602001516001600160a01b0381169190829003610344576080525f6101a061007d61035c565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a06100db61035c565b60018152826020820152600160408201528260608201528260808201528260a0820152600160c08201528260e0820152826101008201528261012082015260016101408201528261016082015282610180820152015261200030161515600114801590610337575b8015610326575b8015610319575b801561030c575b80156102ff575b80156102ef575b80156102e3575b80156102d7575b80156102cb575b80156102bb575b80156102af575b80156102a3575b8015610297575b610284578060a0525f60c05280151560e05261010052604051611871908161037d8239608051818181610102015281816101f80152818161047201528181610768015281816107e3015281816108c101528181610a2f01528181610f8001528181610ff80152818161152001526115e0015260a0518181816103450152818161038d015281816104e101528181610afe0152610d15015260c051818181610264015281816103d701528181610b7c01528181610dc1015261108e015260e051818181610220015281816109420152610a83015261010051818181610b5a01528181610d500152610f320152f35b630732d7b560e51b5f523060045260245ffd5b50600130161515610197565b50600230161515610190565b50600430161515610189565b5060083016151560011415610182565b5060103016151561017b565b50602030161515610174565b5060403016151561016d565b5060803016151560011415610166565b506101003016151561015f565b5061020030161515610158565b5061040030161515610151565b50610800301615156001141561014a565b5061100030161515610143565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051906101c082016001600160401b038111838210176103485760405256fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c9081630bc6bffc146110465750806321d0ee7014610fce578063259982e514610f565780633fc8cef314610ee8578063575e24b4146109675780635d5711a51461090c5780636c2bbe7e146107b35780636fe7e6eb1461082e5780639f063efc146107b3578063b47b2fb11461069e578063b6a8b0fa1461068c578063c4e833ce14610505578063d52f63cf14610496578063dc4c90d314610427578063dc98354e146101755763e1b4af690361000f5734610172576004906100e5366112c2565b50505050505073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361014d577f0a85dc29000000000000000000000000000000000000000000000000000000008152fd5b7fae18210a000000000000000000000000000000000000000000000000000000008152fd5b80fd5b50346101725760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610172576101ad6110b2565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610172576101e061129f565b5073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036103ff577f00000000000000000000000000000000000000000000000000000000000000001561036d5761024c611476565b73ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691161480610324575b156102fc5760643562ffffff81168091036102f8576102d05760206040517fdc98354e000000000000000000000000000000000000000000000000000000008152f35b807f1213a0ab0000000000000000000000000000000000000000000000000000000060049252fd5b5080fd5b807fdcdedda90000000000000000000000000000000000000000000000000000000060049252fd5b5061032d611499565b73ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691161461028d565b610375611476565b73ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911614801561028d57506103bf611499565b73ffffffffffffffffffffffffffffffffffffffff807f00000000000000000000000000000000000000000000000000000000000000001691161461028d565b807fae18210a0000000000000000000000000000000000000000000000000000000060049252fd5b503461017257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461017257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461017257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610172576020816101c0926101a060405161054a81611363565b82815282858201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152826101208201528261014082015282610160820152826101808201520152806040516105a881611363565b600181528381018281526040820160018152606083018481526080840185815260a0850186815260c08601906001825260e08701928884526101008801948986526101208901968a88526101408a019860018a526101a06101608c019b8d8d5261018081019d8e52019c8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b5034610172576004906100e5366112c2565b5034610172576101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610172576106d76110b2565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126101725760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610172576101443567ffffffffffffffff81116102f8579061074f600492369084016110d5565b505073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361014d577f0a85dc29000000000000000000000000000000000000000000000000000000008152fd5b5034610172576004906107c5366111ce565b5050505050505073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361014d577f0a85dc29000000000000000000000000000000000000000000000000000000008152fd5b5034610172576101007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610172576108676110b2565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126101725761089a61129f565b5060e4358060020b036101725760049073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361014d577f0a85dc29000000000000000000000000000000000000000000000000000000008152fd5b503461017257807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b5034610cb9576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610cb9576109a06110b2565b5060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc360112610cb95760607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c360112610cb9576101243567ffffffffffffffff8111610cb957610a169036906004016110d5565b505073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690813303610ec05760e4355f81128080610eb9575b610e9157801580610e8a575b610e625760c435801515809103610cb9577f0000000000000000000000000000000000000000000000000000000000000000151503610cfb578015610cf457610ab8826113ee565b935b803b15610ce5576040517fa584119400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166004820152848160248183865af18015610ce957908591610cd0575b5090602090610ba08773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000611501565b6004604051809481937f11da60b40000000000000000000000000000000000000000000000000000000083525af18015610cc557610c92575b5015610c7a57818312610c5257610c05610bfa610bff610bfa6060966114bc565b611447565b926114bc565b906fffffffffffffffffffffffffffffffff169060801b17905b604051917f575e24b400000000000000000000000000000000000000000000000000000000835260208301526040820152f35b6004827f93dafdf1000000000000000000000000000000000000000000000000000000008152fd5b818312610c5257610c05610bfa610bff6060956114bc565b6020813d602011610cbd575b81610cab602093836113ad565b81010312610cb95751610bd9565b5f80fd5b3d9150610c9e565b6040513d86823e3d90fd5b81610cda916113ad565b610ce557835f610b3a565b8380fd5b6040513d87823e3d90fd5b8193610aba565b92508215610e5b57610d0c816113ee565b925b610d3984307f0000000000000000000000000000000000000000000000000000000000000000611501565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803b15610cb9575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528a60048401525af18015610e5057610e3b575b50610de584307f00000000000000000000000000000000000000000000000000000000000000006115c0565b15610e2357818312610c5257610e05610bfa610bff610bfa6060966114bc565b906fffffffffffffffffffffffffffffffff169060801b1790610c1f565b818312610c5257610e05610bfa610bff6060956114bc565b610e489193505f906113ad565b5f915f610db9565b6040513d5f823e3d90fd5b8092610d0e565b7f21b865b3000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f610a70565b7f0ace433b000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f610a64565b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610cb9575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610cb957602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610cb957610f6436611103565b505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610ec0577f78895c13000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610cb957610fdc36611103565b505050505073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610ec0577f0a85dc29000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610cb9575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610cb95760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610cb957565b9181601f84011215610cb95782359167ffffffffffffffff8311610cb95760208381860195010111610cb957565b906101607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610cb95760043573ffffffffffffffffffffffffffffffffffffffff81168103610cb9579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc820112610cb95760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c830112610cb95760c491610144359067ffffffffffffffff8211610cb9576111ca916004016110d5565b9091565b906101a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc830112610cb95760043573ffffffffffffffffffffffffffffffffffffffff81168103610cb9579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc820112610cb95760249160807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c830112610cb95760c49161014435916101643591610184359067ffffffffffffffff8211610cb9576111ca916004016110d5565b60c4359073ffffffffffffffffffffffffffffffffffffffff82168203610cb957565b6101207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc820112610cb95760043573ffffffffffffffffffffffffffffffffffffffff81168103610cb9579160a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc830112610cb95760249160c4359160e43591610104359067ffffffffffffffff8211610cb9576111ca916004016110d5565b6101c0810190811067ffffffffffffffff82111761138057604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761138057604052565b7f8000000000000000000000000000000000000000000000000000000000000000811461141a575f0390565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b600f0b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000811461141a575f0390565b60243573ffffffffffffffffffffffffffffffffffffffff81168103610cb95790565b60443573ffffffffffffffffffffffffffffffffffffffff81168103610cb95790565b9081600f0b9182036114ca57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b90816020910312610cb9575190565b909180156115bb5773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803b15610cb9575f928360649273ffffffffffffffffffffffffffffffffffffffff948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af18015610e50576115af5750565b5f6115b9916113ad565b565b505050565b5f915082156115bb5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690813b15610cb957604051907fa584119400000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff8116918260048201525f8160248183885af18015610e505761184f575b50816116e05750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af19081156116d457506116a95750565b6116ca9060203d6020116116cd575b6116c281836113ad565b8101906114f2565b50565b503d6116b8565b604051903d90823e3d90fd5b9091926040602082604481988285519788927fa9059cbb0000000000000000000000000000000000000000000000000000000084528b600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156117835750602082916004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af19081156116d457506116a95750565b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f3d011690604051927f90bfb86500000000000000000000000000000000000000000000000000000000845260048401527fa9059cbb000000000000000000000000000000000000000000000000000000006024840152608060448401528160a00160648401523d60848401523d9060a484013e7ff27f64e40000000000000000000000000000000000000000000000000000000060c4828401600460a4820152015260e40190fd5b61185c9194505f906113ad565b5f925f61166156fea164736f6c634300081a000a000000000000000000000000188d586ddcf52439676ca21a244753fa19f9ea8e0000000000000000000000003bd359c1119da7da1d913d1c4d2b7c461115433a",
- "nonce": "0x22",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000003bd359c1119da7da1d913d1c4d2b7c461115433a000000000000000000000000182a927119d56008d921126764bf884221b10f59000000000000000000000000204faca1764b154221e35c0d20abb3c52571049896e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000188d586ddcf52439676ca21a244753fa19f9ea8e0000000000000000000000007197e214c0b767cfb76fb734ab638e2c192f4e530000000000000000000000005b7ec4a94ff9bedb700fb82ab09d5846972f40160000000000000000000000000000000000000000000000000000000000000000",
+ "nonce": "0x24",
"chainId": "0x8f"
},
"additionalContracts": [],
@@ -25,25 +24,25 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0x1c5cde",
+ "cumulativeGasUsed": "0x5fdfe6",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0xf7d33e2d187de2fb75db98198c1e840d5ac7394cd3a756524699710bf3575e06",
+ "transactionHash": "0xccf467c3c20e45ba72c4d092272db1d214140bd1d2004865e2cb954e213fd8c2",
"transactionIndex": "0x1",
- "blockHash": "0x1d44b95e9716e8edfe1a5ce63f84425be8eb1ef5e2ee99badb7cb63c384def7f",
- "blockNumber": "0x21c84b2",
- "gasUsed": "0x1c5cde",
- "effectiveGasPrice": "0x174876e801",
+ "blockHash": "0xb3fdf7b57ae2595979fccae1dabcaac5353f05411a535d6c628528307b732fb7",
+ "blockNumber": "0x23050b9",
+ "gasUsed": "0x5fdfe6",
+ "effectiveGasPrice": "0x17bfac7c00",
"from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": "0x3fad8a7205f943528915e67cf94fc792c8fce888"
+ "contractAddress": "0xbc2a036e5027b9ae57bba847ef88e1b14823f7b1"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1763074970811,
+ "timestamp": 1763599362037,
"chain": 143,
- "commit": "efab318"
+ "commit": "7d170b7"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/1868/run-1763599220737.json b/broadcast/Deploy-all.s.sol/1868/run-1763599220737.json
new file mode 100644
index 00000000..656ac13a
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/1868/run-1763599220737.json
@@ -0,0 +1,54 @@
+{
+ "transactions": [
+ {
+ "hash": "0xa02d7efb0af9f039fa29c7dc2a1064e37b2c62520cca156203d8167892167f75",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x97FeBbC2AdBD5644ba22736E962564B23F5828CE, 0x42aE7Ec7ff020412639d443E245D936429Fbe717, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32, 0x56C1205B0244332011C1E866F4eA5384EB6Bfa2c, 0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566, 0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000420000000000000000000000000000000000000600000000000000000000000097febbc2adbd5644ba22736e962564b23f5828ce00000000000000000000000042ae7ec7ff020412639d443e245d936429fbe71796e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000360e68faccca8ca495c1b759fd9eee466db9fb3200000000000000000000000056c1205b0244332011c1e866f4ea5384eb6bfa2c0000000000000000000000001b35d13a2e2528f192637f14b05f0dc0e7deb5660000000000000000000000003bad7ad0728f9917d1bf08af5782dcbd516cdd96",
+ "nonce": "0x8",
+ "chainId": "0x74c"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x6d2088",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0xa02d7efb0af9f039fa29c7dc2a1064e37b2c62520cca156203d8167892167f75",
+ "transactionIndex": "0x16",
+ "blockHash": "0xac8549b2abb97e614f86a34311c1b654c642c6f4e43a6c80e4e035a507288edc",
+ "blockNumber": "0xe86cdf",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x189cd",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef",
+ "l1BaseFeeScalar": "0x2608",
+ "l1BlobBaseFee": "0x115",
+ "l1BlobBaseFeeScalar": "0x177fef",
+ "l1Fee": "0xacef5ccb7f",
+ "l1GasPrice": "0x179197ab",
+ "l1GasUsed": "0x2f1a3"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763599220737,
+ "chain": 1868,
+ "commit": "f9b945f"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/1868/run-latest.json b/broadcast/Deploy-all.s.sol/1868/run-latest.json
index 93b2e9b4..656ac13a 100644
--- a/broadcast/Deploy-all.s.sol/1868/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/1868/run-latest.json
@@ -1,18 +1,20 @@
{
"transactions": [
{
- "hash": "0x1116d385e06fd7121a0d5a071d3f49b0ac3ea07030557dfd3e617316a4eb3ba6",
+ "hash": "0xa02d7efb0af9f039fa29c7dc2a1064e37b2c62520cca156203d8167892167f75",
"transactionType": "CREATE2",
- "contractName": "Calibur",
- "contractAddress": "0x3cbad1e3b9049ecdb9588fb48dd61d80faf41bd5",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef",
"function": null,
- "arguments": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x97FeBbC2AdBD5644ba22736E962564B23F5828CE, 0x42aE7Ec7ff020412639d443E245D936429Fbe717, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32, 0x56C1205B0244332011C1E866F4eA5384EB6Bfa2c, 0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566, 0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96)"
+ ],
"transaction": {
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060e0604052346100ce57604080519081016001600160401b038111828210176100ba576040908152600782526621b0b634b13ab960c91b6020830190815281519182016001600160401b038111838210176100ba57604052600582526020820192640312e302e360dc1b845251902060805251902060a0523060c052604051615c3290816100d38239608051818181611e8d0152612526015260a051818181611eb3015261254c015260c05181818161225501526124d80152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe60806040526004361015610015575b3661259657005b5f3560e01c80630f3ebf6e1461024457806312aaac701461023f5780631626ba7e1461023a57806319822f7c146102355780631b71bb6e14610230578063219a260d1461022b57806323d578861461022657806325e5c2431461022157806327258b221461021c57806328495877146102175780632abbf4691461021257806330b1fa3b1461020d5780634223b5c2146102085780636575f6aa146102035780636750aa5f146101fe5780636a1ea88d146101f95780637613e7ba146101f4578063786902f2146101ef578063789ff701146101ea57806384b0196e146101e55780638dd7712f146101e057806394430fa5146101db57806399e1d016146101d6578063a58bb84a146101d1578063ac9650d8146101cc578063b70e36f0146101c7578063b75c7dc6146101c2578063b923614f146101bd578063bf7c5be9146101b8578063c3c16ee4146101b3578063d03c7914146101ae578063e41dae2f146101a9578063e9ae5c53146101a4578063f698da251461019f5763fac750e00361000e57611778565b61175e565b6116b3565b61166a565b61164c565b6114a5565b611462565b611445565b6112a6565b61117f565b61107b565b610f42565b610f0e565b610d6c565b610cc4565b610bee565b610bd5565b610bbc565b610b56565b610b12565b610ae3565b610a79565b6109f2565b610972565b6107b9565b61075a565b610732565b6106b0565b61062b565b610601565b610554565b6103e5565b610393565b610302565b3461026a57602060031936011261026a576020610262600435611792565b604051908152f35b5f80fd5b6003111561027857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9060038210156102785752565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b606060206102ff938184526102ef82850182516102a5565b01519160408082015201906102b2565b90565b3461026a57602060031936011261026a5761032d610321600435611912565b604051918291826102d7565b0390f35b9181601f8401121561026a5782359167ffffffffffffffff831161026a576020838186019501011161026a57565b90604060031983011261026a57600435916024359067ffffffffffffffff821161026a5761038f91600401610331565b9091565b3461026a5760206103ac6103a63661035f565b91611a2f565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b908161012091031261026a5790565b3461026a57606060031936011261026a5760043567ffffffffffffffff811161026a576104169036906004016103d6565b60443560243573ffffffffffffffffffffffffffffffffffffffff610439612290565b1633036105015761032d926104836104d792846104d0956104f1575b5061046d610467610100850185611bc0565b9061283b565b9693928561047e8598949398611912565b6126fe565b9461048d82611792565b95156104e75778ffffffffff000000000000000000000000000000000000000086169788955b73ffffffffffffffffffffffffffffffffffffffff923691610921565b9516612e82565b6040519081529081906020820190565b60019788956104b3565b5f9081803892335af1505f610455565b7fd663742a000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff81160361026a57565b359061055282610529565b565b3461026a57602060031936011261026a5760043561057181610529565b3033036105d95773ffffffffffffffffffffffffffffffffffffffff167f800000000000000000000000000000000000000000000000000000000000000081175f557fea942933e7fb7cb728727281a81e352a20dda96dbc4ee97633a3fa25da48e4ab5f80a2005b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004355f526004602052602060405f2054604051908152f35b3461026a57604060031936011261026a5760043561064881610529565b602435903033036105d95773ffffffffffffffffffffffffffffffffffffffff1690815f5260056020528060405f20556040519081527f30346eac03b1c5913bb026e6d8d0f42783a0c706bb2a86916410dc385cc2723660203092a360405160018152602090f35b3461026a57604060031936011261026a576004356106cd81610529565b602435903033036105d957806106f88373ffffffffffffffffffffffffffffffffffffffff93612f71565b60405192835216907ff8c1385bb618a432aebbaae5bfab911559154982a64e1750b17b50f5782dc98860203092a360405160018152602090f35b3461026a57602060031936011261026a576020610750600435612f90565b6040519015158152f35b3461026a575f60031936011261026a5761032d60405161077b6040826108ba565b601581527f556e69737761702e43616c696275722e312e302e30000000000000000000000060208201526040519182916020835260208301906102b2565b3461026a57602060031936011261026a576004356bffffffffffffffffffffffff811680910361026a573033036105d9576006546bffffffffffffffffffffffff8116820361080457005b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016176006557f0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d315f80a1005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761089957604052565b610850565b6060810190811067ffffffffffffffff82111761089957604052565b90601f601f19910116810190811067ffffffffffffffff82111761089957604052565b6040519061055260c0836108ba565b604051906105526060836108ba565b6003111561026a57565b67ffffffffffffffff811161089957601f01601f191660200190565b92919261092d82610905565b9161093b60405193846108ba565b82948184528183011161026a578281602093845f960137010152565b9080601f8301121561026a578160206102ff93359101610921565b3461026a57602060031936011261026a5760043567ffffffffffffffff811161026a576040600319823603011261026a576040516109af8161087d565b81600401356109bd816108fb565b8152602482013567ffffffffffffffff811161026a576109f09260046109e69236920101610957565b6020820152611c25565b005b3461026a57602060031936011261026a57600435610a0e6117fb565b5080610a266318fb586460045260015f5260245f2090565b015490610a31613416565b1115610a51576103218168fbb67fda52d4bfb8bf61032d93141502611912565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576020610262600435610a9a612499565b604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9060206102ff9281815201906102b2565b3461026a575f60031936011261026a5761032d610afe611e62565b6040519182916020835260208301906102b2565b3461026a57602060031936011261026a5777ffffffffffffffffffffffffffffffffffffffffffffffff600435165f526004602052602060405f2054604051908152f35b3461026a575f60031936011261026a5760206040517f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686008152f35b600319606091011261026a57600435610ba881610529565b90602435610bb581610529565b9060443590565b3461026a576020610750610bcf36610b90565b91611ef6565b3461026a576020610750610be836610b90565b91612028565b3461026a575f60031936011261026a577fff00000000000000000000000000000000000000000000000000000000000000610c7573ffffffffffffffffffffffffffffffffffffffff610c67610c4261217b565b97946040999397919699949294519a8b9a168a5260e060208b015260e08a01906102b2565b9088820360408a01526102b2565b93606087015216608085015260a084015282810360c0840152602080835192838152019201905f5b818110610cab575050500390f35b8251845285945060209384019390920191600101610c9d565b3461026a57604060031936011261026a5760043567ffffffffffffffff811161026a57610cf59036906004016103d6565b73ffffffffffffffffffffffffffffffffffffffff610d12612290565b16330361050157610d3c610d2d610467610100840184611bc0565b50505050916060810190611bc0565b60048193929310610d5f57826004610d5a926109f095019101610ee8565b613160565b633b99b53d5f526004601cfd5b3461026a575f60031936011261026a576020610d86612290565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b67ffffffffffffffff81116108995760051b60200190565b9080601f8301121561026a57813591610dd483610da4565b92610de260405194856108ba565b80845260208085019160051b8301019183831161026a5760208101915b838310610e0e57505050505090565b823567ffffffffffffffff811161026a578201906060601f19838803011261026a5760405190610e3d8261089e565b6020830135610e4b81610529565b82526040830135602083015260608301359167ffffffffffffffff831161026a57610e7e88602080969581960101610957565b6040820152815201920191610dff565b8015150361026a57565b91909160408184031261026a5760405190610eb28261087d565b819381359167ffffffffffffffff831161026a57610ed66020939284938301610dbc565b8452013591610ee483610e8e565b0152565b9060208282031261026a57813567ffffffffffffffff811161026a576102ff9201610e98565b602060031936011261026a5760043567ffffffffffffffff811161026a57610f3d6109f0913690600401610e98565b6122ec565b3461026a57604060031936011261026a576004356024353033036105d9578115610fd657610f6f82612f90565b15610fae5760207f55194732cd17a56216773dcef66731844f1900f9b878633e3be2b6cce1e542c991835f52600382528060405f2055604051908152a2005b7fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fb37b2fa0000000000000000000000000000000000000000000000000000000005f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061103057505050505090565b909192939460208061106c837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516102b2565b97019301930191939290611021565b602060031936011261026a5760043567ffffffffffffffff811161026a573660238201121561026a5780600401359067ffffffffffffffff821161026a576024810190602436918460051b01011161026a576110d682610da4565b916110e460405193846108ba565b808352601f196110f382610da4565b015f5b81811061116e5750505f5b818110611116576040518061032d8682610ffe565b5f80611123838587612339565b9061113360405180938193612355565b0390305af4611140612362565b901561116657906001916111548287612391565b5261115f8186612391565b5001611101565b602081519101fd5b8060606020809388010152016110f6565b3461026a57602060031936011261026a576004353033036105d9578060401c805f5260046020526111bb60405f205467ffffffffffffffff1690565b9167ffffffffffffffff81169267ffffffffffffffff811684111561127e5767ffffffffffffffff61ffff9185031611611256577f4d9dbebf1d909894d9c26fe228c27cec643b2cb490124e5b658f4edd203c20c1926112406112519377ffffffffffffffffffffffffffffffffffffffffffffffff165f52600460205260405f2090565b556040519081529081906020820190565b0390a1005b7f24d35a26000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f756688fe000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004353033036105d957805f906112da6318fb586460045260015f5260245f2090565b9068fbb67fda52d4bfb8bf8414611438578315611428575b811980549182159260011c5f19810191600183811b17946113bc57856020525f5260405f209485549283156113ad575f97505f1984010361138f575b505050555561133d60015b1590565b610fae5761135b611356825f52600260205260405f2090565b612407565b5f818152600360205260408120557fe5af7daed5ab2a2dc5f98d53619f05089c0c14d11a6621f6b906a2366c9a7ab35f80a2005b5f1980849383010154928392010155855260408520555f808061132e565b5050505050505061133d901590565b9550505050506001908281541461140c57818101838154146113f85750600201918254146113ee57506001905061133d565b5f61133d92551590565b61133d935060025f92019081549055551590565b61133d9250806002835f93019182548155019081549055551590565b5068fbb67fda52d4bfb8bf6112f2565b63f5a267f15f526004601cfd5b3461026a575f60031936011261026a576020600154604051908152f35b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff60043561149481610529565b165f526020805f205c604051908152f35b604060031936011261026a5760043567ffffffffffffffff811161026a57806004019060a0600319823603011261026a5760243567ffffffffffffffff811161026a576114f6903690600401610331565b91909273ffffffffffffffffffffffffffffffffffffffff606483013561151c81610529565b168015908115611642575b50156105d95760848201358015159081611638575b506116105761155e6113399361158e956115596024860135613b28565b613b5a565b9691604461158061157b611576999496993689613342565b613b9a565b611e56565b960135968661047e89611912565b6115e8576109f094610d5a938573ffffffffffffffffffffffffffffffffffffffff6115d16115d8956115c084611792565b956115ca87612ad7565b3691610921565b9316613d4b565b6115e3369180612466565b610e98565b7f8baa579f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f0819bdcd000000000000000000000000000000000000000000000000000000005f5260045ffd5b905042115f61153c565b905033145f611527565b3461026a57602060031936011261026a5760206107506004356133c1565b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff60043561169c81610529565b165f526005602052602060405f2054604051908152f35b6116bc3661035f565b6116c78392936133c1565b156117365782019160208184031261026a5780359067ffffffffffffffff821161026a576109f0937eff0000000000000000000000000000000000000000000000000000000000009261171a9201610dbc565b91604051926117288461087d565b8352161560208201526122ec565b7f7f181275000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a575f60031936011261026a576020610262612499565b3461026a575f60031936011261026a576020610262613416565b80156117dc576117a181612f90565b6117cd577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f52600360205260405f205490565b5079010000000000000000000000000000000000000000000000000090565b604051906118088261087d565b60606020835f81520152565b90600182811c9216801561185b575b602083101461182e57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611823565b81601f8201121561026a5780519061187c82610905565b9261188a60405194856108ba565b8284526020838301011161026a57815f9260208093018386015e8301015290565b60208183031261026a5780519067ffffffffffffffff821161026a570160408183031261026a57604051916118df8361087d565b81516118ea816108fb565b8352602082015167ffffffffffffffff811161026a5761190a9201611865565b602082015290565b61191a6117fb565b508015611a265761192a81612f90565b611956577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f52600260205260405f206040515f82549261197184611814565b9081845260208401946001811690815f146119eb57506001146119ae575b5050816119a46102ff949360209303826108ba565b80510101906118ab565b5f908152602081209092505b8183106119d15750508101602001816119a461198f565b6001816020929493945483858801015201910191906119ba565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686525050151560051b82016020019050816119a461198f565b506102ff6125cc565b9180611b4e5761773961ffff821904028314611b2757611a4e9161283b565b9391611a5d8396949296611912565b91611a728282611a6b611e62565b888761288e565b928315611b0b575b50505015611ae357611ab9611abf94611a9283611792565b611a9b81612ad7565b73ffffffffffffffffffffffffffffffffffffffff16943691610921565b92612b83565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b505050507fffffffff0000000000000000000000000000000000000000000000000000000090565b611b1f935085611b19612499565b91612a75565b5f8080611a7a565b5050507f773900010000000000000000000000000000000000000000000000000000000090565b90611b598282612606565b611b675790611a4e9161283b565b611b739261047e6125cc565b15611b9c577f1626ba7e0000000000000000000000000000000000000000000000000000000090565b7fffffffff0000000000000000000000000000000000000000000000000000000090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561026a570180359067ffffffffffffffff821161026a5760200191813603831361026a57565b60405190611c206020836108ba565b5f8252565b3033036105d957805160038110156102785780611c4360029261026e565b1480611cfb575b611cd3577f8df00f8e3bbfb2c3024a60b74e1d4e520f7cbe1da3476726241146ecf6328832611cce611c7b8361300e565b92611cb8604051611ca181611c9385602083016102d7565b03601f1981018352826108ba565b611cb3865f52600260205260405f2090565b611d8b565b611cc18461304b565b50604051918291826102d7565b0390a2565b7f41e2e8f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b50602081015173ffffffffffffffffffffffffffffffffffffffff611d2b825192602080309583010191016126e9565b1614611c4a565b818110611d3d575050565b5f8155600101611d32565b9190601f8111611d5757505050565b610552925f5260205f20906020601f840160051c83019310611d81575b601f0160051c0190611d32565b9091508190611d74565b919091825167ffffffffffffffff811161089957611db381611dad8454611814565b84611d48565b6020601f8211600114611df1578190611de29394955f92611de6575b50505f198260011b9260031b1c19161790565b9055565b015190505f80611dcf565b601f19821690611e04845f5260205f2090565b915f5b818110611e3e57509583600195969710611e26575b505050811b019055565b01515f1960f88460031b161c191690555f8080611e1c565b9192602060018192868b015181550194019201611e07565b6102ff90610a9a612499565b73ffffffffffffffffffffffffffffffffffffffff611e7f61217b565b5094509150939150604051937f000000000000000000000000000000000000000000000000000000000000000060208601527f00000000000000000000000000000000000000000000000000000000000000006040860152606085015216608083015260a082015260a081526102ff60c0826108ba565b82156120205773ffffffffffffffffffffffffffffffffffffffff30911603611ff857335f908152602090205c90828210611fd05781835f1973ffffffffffffffffffffffffffffffffffffffff9410611fbe575b505016905f80808084865af1611f5f612362565b5015611f96576040519081527f3f1beca043a9fe9118bbaeca0035e81e02d6d7cf184bf32fa9dfbd73fdd027c060203092a3600190565b7fb06a467a000000000000000000000000000000000000000000000000000000005f5260045ffd5b611fc9910333612f71565b5f83611f4b565b7fc45cb513000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f7d1c29f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b505050600190565b91905f9282156121725773ffffffffffffffffffffffffffffffffffffffff30911603611ff857335f90815260056020526040902054828110611fd0575f1981106120f6575b5073ffffffffffffffffffffffffffffffffffffffff16918080808085875af1612096612362565b50156120ce57506040519081527fed1cf8378e55f85e35be72eebdbef1b7347825916e51aa538d1855113f8c259d60203092a3600190565b807fb06a467a0000000000000000000000000000000000000000000000000000000060049252fd5b73ffffffffffffffffffffffffffffffffffffffff919350829003925f938061213d3373ffffffffffffffffffffffffffffffffffffffff165f52600560205260405f2090565b5560405190815233907f85b16643b7d42712d1470a1ed9822d6e8cadad23eb1141cabefa28da0944c5b790602090a29061206e565b50505050600190565b7f1f000000000000000000000000000000000000000000000000000000000000009060408051906121ac81836108ba565b600782527f43616c6962757200000000000000000000000000000000000000000000000000602083015280516121e282826108ba565b600581527f312e302e3000000000000000000000000000000000000000000000000000000060208201526006549293909246923092909160a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161791516122836020826108ba565b5f80825236602083013790565b5f547f80000000000000000000000000000000000000000000000000000000000000008116156122d35773ffffffffffffffffffffffffffffffffffffffff1690565b50734337084d9e255ff0702461cf8895ce9e3b5ff10890565b6122f5336132b6565b6122fe8161330f565b156105d95761055291613160565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b908210156123505761038f9160051b810190611bc0565b61230c565b908092918237015f815290565b3d1561238c573d9061237382610905565b9161238160405193846108ba565b82523d5f602084013e565b606090565b80518210156123505760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81160361240257565b6123a5565b6124118154611814565b908161241b575050565b81601f5f931160011461242c575055565b8183526020832061244891601f0160051c810190600101611d32565b808252602082209081548360011b905f198560031b1c191617905555565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18136030182121561026a570190565b60065460a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161760405160208101917fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647283527f000000000000000000000000000000000000000000000000000000000000000060408301527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a083015260c082015260c0815261259060e0826108ba565b51902090565b5f3560e01c63bc197c81811463f23a6e6182141763150b7a028214176125c357633c10b94e5f526004601cfd5b6020526020603cf35b6125d46117fb565b50604051306020820152602081526125ed6040826108ba565b604051906125fa8261087d565b60028252602082015290565b5060418114908115612616575090565b604091501490565b919082604091031261026a576020825192015190565b60208183031261026a5780359067ffffffffffffffff821161026a57019060c08282031261026a576126646108dd565b91803567ffffffffffffffff811161026a5782612682918301610957565b8352602081013567ffffffffffffffff811161026a5760a0926126a6918301610957565b6020840152604081013560408401526060810135606084015260808101356080840152013560a082015290565b919082604091031261026a576020823592013590565b9081602091031261026a57516102ff81610529565b92906002845161270d8161026e565b6127168161026e565b0361277f579073ffffffffffffffffffffffffffffffffffffffff9261273b926137c8565b1690816127485750505f90565b612762602061277b920151602080825183010191016126e9565b73ffffffffffffffffffffffffffffffffffffffff1690565b1490565b835161278a8161026e565b6127938161026e565b6127d0576127cb906127c36127b860206102ff9701516020808251830101910161261e565b9590948101906126d3565b929091613785565b61379d565b600184516127dd8161026e565b6127e68161026e565b0361283357611c9361282e61281961280e60206102ff9801516020808251830101910161261e565b969095810190612634565b92604051928391602083019190602083019252565b613577565b505050505f90565b919082359261284a8282613856565b9093819363ffffffff60408501351684019063ffffffff82351694602080840193870101910110610d5f5760409093921061288157565b634be6321b5f526004601cfd5b909193929361289d84866142da565b9490936128b460208801359260408901359861430a565b90916128f38985604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b03612a695761290191613919565b82959299939199158015612a61575b612a5357611c936129ee61293b6102ff9c612933612a1196612a4d9b3691610921565b943691610921565b604051928391605c61297860208501977f5479706564446174615369676e280000000000000000000000000000000000008952602e8601906134a2565b7f20636f6e74656e74732c737472696e67206e616d652c737472696e672076657281527f73696f6e2c75696e7432353620636861696e49642c616464726573732076657260208201527f696679696e67436f6e74726163742c627974657333322073616c742900000000604082015201906134a2565b51902092611c9360405193849260208401968752604084015260608301906134a2565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b906126fe565b505050505050505050505f90565b508015612910565b50505050505050505f90565b906102ff949392612a4d91604090601c60208351612a9385826108ba565b828152017f506572736f6e616c5369676e28627974657320707265666978656429000000008152209180519160208301938452818301528152612a116060826108ba565b612ae090613b09565b90612ae85750565b64ffffffffff907f48c76fe1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b51907fffffffff000000000000000000000000000000000000000000000000000000008216820361026a57565b9081602091031261026a576102ff90612b1b565b6102ff93926060928252602082015281604082015201906102b2565b6040513d5f823e3d90fd5b9290919260048116612b96575b50505050565b612be89373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f9ac4eafd00000000000000000000000000000000000000000000000000000000855260048501612b5c565b0392165afa908115612ca6577f9ac4eafd00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612c77575b501603612c4f575f808080612b90565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b612c99915060203d602011612c9f575b612c9181836108ba565b810190612b48565b5f612c3f565b503d612c87565b612b78565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561026a57016020813591019167ffffffffffffffff821161026a57813603831361026a57565b601f8260209493601f1993818652868601375f8582860101520116010190565b91612e6a906102ff96949592845260a06020850152612d5a60a08501612d4083610547565b73ffffffffffffffffffffffffffffffffffffffff169052565b602081013560c0850152612e39612e2d612dce612d90612d7d6040860186612cab565b61012060e08b01526101c08a0191612cfb565b612d9d6060860186612cab565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608a8403016101008b0152612cfb565b608084013561012088015260a084013561014088015260c0840135610160880152612dfc60e0850185612cab565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60898403016101808a0152612cfb565b91610100810190612cab565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868403016101a0870152612cfb565b936040830152606082015260808184039101526102b2565b9190939460028316612e97575b505050505050565b602094612ee973ffffffffffffffffffffffffffffffffffffffff92604051988997889687957f9e364dba00000000000000000000000000000000000000000000000000000000875260048701612d1b565b0392165afa908115612ca6577f9e364dba00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f52575b501603612c4f575f8080808080612e8f565b612f6b915060203d602011612c9f57612c9181836108ba565b5f612f40565b73ffffffffffffffffffffffffffffffffffffffff165f5260205f205d565b612fa660016318fb58646004525f5260245f2090565b68fbb67fda52d4bfb8bf8214611438578115612ffd575b80195415612fd4576020525f5260405f2054151590565b9060019181815414612ff857818382015414612ff85760020154146102ff57505f90565b505090565b68fbb67fda52d4bfb8bf9150612fbd565b8051906003821015610278576020015160208151910120604051906130376020830180946102a5565b6040820152604081526125906060826108ba565b905f9161306460016318fb58646004525f5260245f2090565b9068fbb67fda52d4bfb8bf8114611438578015613150575b8119918254918160205282156130c4575b805f5260405f20928354156130a3575050505050565b9091929394955060011c8092015560010180915560011b6001179055600190565b91508054801561314757828114612b9057600182018054908115613139575083811461313257600283019182549283156131235750848314612e8f575f52600160405f20555f52600260405f20555f52600360405f205560079161308d565b95505050505091925055600190565b5050505050565b945050505091925055600190565b50555060019150565b5068fbb67fda52d4bfb8bf61307c565b5f5b81518051821015612b90578161317791612391565b51805173ffffffffffffffffffffffffffffffffffffffff16806132b0575030905b6131a285611792565b60ff60c882901c161580613291575b6132695785925f8073ffffffffffffffffffffffffffffffffffffffff61320e94169460208101936131ee60408651930192835190838b8b614453565b9451915191602083519301915af19283613206612362565b9586926145e0565b158061325c575b6132225750600101613162565b613258906040519182917fa5fa8d2b00000000000000000000000000000000000000000000000000000000835260048301610ad2565b0390fd5b5060208301511515613215565b7f3ceb88d9000000000000000000000000000000000000000000000000000000005f5260045ffd5b503073ffffffffffffffffffffffffffffffffffffffff8416146131b1565b90613199565b73ffffffffffffffffffffffffffffffffffffffff1630811461330a576102ff90604051906020820152602081526132ef6040826108ba565b604051906132fc8261087d565b60028252602082015261300e565b505f90565b801561333c5761331e81612f90565b1561330a575f52600360205261333760405f2054613b09565b501590565b50600190565b91909160a08184031261026a576040519060a0820182811067ffffffffffffffff82111761089957604052819381359167ffffffffffffffff831161026a576133916080939284938301610e98565b8452602081013560208501526040810135604085015260608101356133b581610529565b60608501520135910152565b7f010000000000000000000000000000000000000000000000000000000000000081149081156133ef575090565b7f010100000000000000000000000000000000000000000000000000000000000091501490565b6318fb586460045260015f5260245f2090811954918260011c92151590805415600260018301541592015415921561344d57505050565b90919293505f90613473575060019061346e57506002906102ff5750600390565b919050565b92915050565b906015820180921161240257565b906002820180921161240257565b9190820180921161240257565b805191908290602001825e015f815290565b9061055260016134f4936040519485917f226368616c6c656e6765223a22000000000000000000000000000000000000006020840152602d8301906134a2565b7f22000000000000000000000000000000000000000000000000000000000000008152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18101855201836108ba565b8051602010156123505760400190565b61356190602093926134a2565b9081520190565b9081602091031261026a575190565b92919060a081019384517f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8106137725760208201907fff1a2a9176d650e4a99dedb58f1793003935130579fe17b5a3f698ac5b00e6346135e6835160608601516135e081613479565b916148bc565b602081519101200361377b576135fe61360391613e15565b6134b4565b613618825160408501516135e0845182613495565b60208151910120906020815191012003613772577f01000000000000000000000000000000000000000000000000000000000000008061368161365b8551613544565b517fff000000000000000000000000000000000000000000000000000000000000001690565b1603613772575f61369b60209251604051918280926134a2565b039060025afa15612ca65760205f6136d081516136c48551611c93604051938492888401613554565b604051918280926134a2565b039060025afa15612ca65760805f519101935f808651856137218551611c938a60405194859360208501978c899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa94613731612362565b80519680613769575b61374d57506102ff955051905191613e7c565b60019661277b9650810160209081019550019250613568915050565b5086151561373a565b50505050505f90565b5050505050505f90565b5f5260206001815f60025afa51903d1561379b57565bfe5b939291906137ae8484848489613fd6565b909590156137be57505050505090565b6102ff9550614091565b604080515f95949093918114613813576041146137e457505050565b604080929395508101355f1a60205281375b5f526020604060805f60015afa505f6060523d6060185191604052565b507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91929450602081013590601b8260ff1c0160205235604052166060526137f6565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110610d5f57565b905f19820191821161240257565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255103907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551821161240257565b90821015612350570190565b8015612402575f190190565b90929192831161026a579190565b9093929384831161026a57841161026a578101920390565b908061392c575b50505f905f905f905f90565b7f29000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000006139aa61398461397d85613881565b85876138db565b357fff000000000000000000000000000000000000000000000000000000000000001690565b1603613a50575f5b8181106139c5575b5050505b5f80613920565b6139d36139848284866138db565b7fff0000000000000000000000000000000000000000000000000000000000000081167f280000000000000000000000000000000000000000000000000000000000000003613a3b57508015613a3657613a2e9082846138f3565b939093929190565b6139ba565b613a4490614335565b613a36576001016139b2565b9081805b613a61575b5050506139be565b613a7b613984613a748396949596613881565b86866138db565b7fff0000000000000000000000000000000000000000000000000000000000000081167f290000000000000000000000000000000000000000000000000000000000000003613ae4575080613ad585613add938187613901565b9590946138f3565b9293929091565b613af19094939294614335565b613b0457613afe906138e7565b80613a54565b613a59565b60a01c64ffffffffff16908115613b21574282109190565b5f91508190565b8060401c5f52600460205260405f208054915f1983146124025767ffffffffffffffff91600184019055160361127e57565b909163ffffffff82351682019063ffffffff8235169060208084019383010184860110610d5f57613b8f604093958395613856565b939093921061288157565b60c1610100613bac60405191826108ba565b8181527f290000000000000000000000000000000000000000000000000000000000000060e060208301927f5369676e65644261746368656443616c6c284261746368656443616c6c20626184527f746368656443616c6c2c75696e74323536206e6f6e63652c627974657333322060408201527f6b6579486173682c61646472657373206578656375746f722c75696e7432353660608201527f20646561646c696e65294261746368656443616c6c2843616c6c5b5d2063616c60808201527f6c732c626f6f6c207265766572744f6e4661696c7572652943616c6c2861646460a08201527f7265737320746f2c75696e743235362076616c75652c6279746573206461746160c082015201522090612590613cc982516146cb565b611c936020840151936040810151906080613cfb606083015173ffffffffffffffffffffffffffffffffffffffff1690565b9101519160405196879560208701998a929360a09473ffffffffffffffffffffffffffffffffffffffff93989796929860c086019986526020860152604085015260608401521660808201520152565b9290919260018116613d5d5750505050565b613daf9373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f33dd593c00000000000000000000000000000000000000000000000000000000855260048501612b5c565b0392165afa908115612ca6577f33dd593c00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612c7757501603612c4f575f808080612b90565b6040516102ff91613e276060836108ba565b604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f6040830152614966565b939190929383158015613f97575b8015613f8f575b8015613f65575b61377257613ea68386614a0d565b156137725760405191602083526020808401526020604084015260608301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f60808301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255160a083015260208260c08160055f19fa1561026a577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255194613f5f9386613f59945181818909940991614ad9565b9161388f565b90081590565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551821015613e98565b508115613e91565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551841015613e8a565b9081602091031261026a57516102ff81610e8e565b919093613fe66113398387615378565b801561407e575b614072575f94611c9361402c9287966040519586946020860198899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa61403b612362565b9080614067575b15614060578060208061405a93518301019101613fc1565b90600190565b505f905f90565b506020815114614042565b50505050505f90600190565b5061408c61133982866153ef565b613fed565b90939291926140a08486615378565b1580156142c9575b613772577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255161429661277b9561428b6142a2966140e361547e565b956140ec6108ec565b5f81525f60208201525f604082015287526141056108ec565b91825260208201526001604082015261411e8660200190565b9081526141296108ec565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29681527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f56020820152600160408201526080870190815261428161418d835161573c565b604089019081526142726142636141a4855161573c565b6101008c019081526141b98751855190615779565b9560608d019687528c6141d96141d28a51845190615779565b9160a00190565b528c6141f26141eb8751845190615779565b9160c00190565b528c61420b6142048951845190615779565b9160e00190565b528c61422561421d8a51855190615779565b916101200190565b528c61423f6142378751855190615779565b916101400190565b528c6142596142518951855190615779565b916101600190565b5251905190615779565b6101808b018181529551615779565b6101a08a015251835190615779565b6101c08801614259565b6101e0850152615798565b818188099309906154c4565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551900690565b506142d481846153ef565b156140a8565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061430257565b9150505f5f91565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061430257565b7fff000000000000000000000000000000000000000000000000000000000000001680159081156143f4575b81156143ca575b81156143a0575b8115614379575090565b7f290000000000000000000000000000000000000000000000000000000000000091501490565b7f28000000000000000000000000000000000000000000000000000000000000008114915061436f565b7f2c0000000000000000000000000000000000000000000000000000000000000081149150614368565b7f200000000000000000000000000000000000000000000000000000000000000081149150614361565b91909160408184031261026a5761443481612b1b565b92602082015167ffffffffffffffff811161026a576102ff9201611865565b60609594909291906008841661446a575050505050565b5f94965073ffffffffffffffffffffffffffffffffffffffff809493926144da87936040519a8b98899788957fec9b4ee4000000000000000000000000000000000000000000000000000000008752600487015216602485015260448401526080606484015260848301906102b2565b0393165af18015612ca6575f925f91614543575b507fffffffff000000000000000000000000000000000000000000000000000000007fec9b4ee40000000000000000000000000000000000000000000000000000000091931603612c4f575f80808080613132565b7fffffffff0000000000000000000000000000000000000000000000000000000093507fec9b4ee40000000000000000000000000000000000000000000000000000000091506145a4903d805f833e61459c81836108ba565b81019061441e565b93909391506144ee565b926102ff94926145d2928552151560208501526080604085015260808401906102b2565b9160608184039101526102b2565b909291601082166145f2575050505050565b5f73ffffffffffffffffffffffffffffffffffffffff602095614644604051988997889687947fc82b1759000000000000000000000000000000000000000000000000000000008652600486016145ae565b0393165af1908115612ca6577fc82b175900000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f916146ac575b501603612c4f575f80808080613132565b6146c5915060203d602011612c9f57612c9181836108ba565b5f61469b565b608060576040516146dd6080826108ba565b8181527f6e743235362076616c75652c6279746573206461746129000000000000000000606060208301927f4261746368656443616c6c2843616c6c5b5d2063616c6c732c626f6f6c20726584527f766572744f6e4661696c7572652943616c6c286164647265737320746f2c75696040820152015220908251805194601f1961477f61476988610da4565b97614777604051998a6108ba565b808952610da4565b013660208801376060935f5b835181101561486857806147a160019286612391565b5160296040516147b18a826108ba565b8181527f7465732064617461290000000000000000000000000000000000000000000000604060208301927f43616c6c286164647265737320746f2c75696e743235362076616c75652c627984520152209073ffffffffffffffffffffffffffffffffffffffff81511690604060208201519101516020815191012090604051926020840194855260408401528a8301528882015287815261485460a0826108ba565b519020614861828b612391565b520161478b565b50949350946125909250614899915060209060405161488e81611c9385820180956155d5565b519020930151151590565b604080516020810195865290810193909352151560608301528160808101611c93565b80516060949392908381111561492d575b81811115614925575b508281106148e357505050565b6040519450918290039101601f19601f830181165b808301518187015201801561491057601f19906148f8565b505060408184015f6020820152016040528252565b90505f6148d6565b9250826148cd565b9061493f82610905565b61494c60405191826108ba565b828152601f1961495c8294610905565b0190602036910137565b90815115614a03579061499361498e61498761498284516123d2565b613487565b6003900490565b614935565b916020830190828051019060208201928351945f85525b8381106149b957505050505290565b600360049101916001603f845182828260121c16880101518453828282600c1c16880101518385015382828260061c168801015160028501531685010151600382015301906149aa565b50506102ff611c11565b6ffffffffeffffffffffffffffffffffff60601b198110801590614abb575b8015614aaa575b614aa4576ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b818381807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81970991818180090908089180091490565b50505f90565b5080158015614a3357508115614a33565b506ffffffffeffffffffffffffffffffffff60601b19821015614a2c565b90915f925f9160ff95811580615370575b61536557614af88386615602565b94909788158061535d575b61530f575b83811c60028460fe1c16015b156152f757600184821c16600284831c60011b1601600181146152ac575b6002811461529f575b600314615294575b5f1990969493929196019460019889975b875f1911614beb5750505050505050505060405191606083015260208252602080830152602060408301527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808301526ffffffffeffffffffffffffffffffffff60601b1960a083015260208260c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b199151900990565b6ffffffffeffffffffffffffffffffffff60601b198160029c989a9c9b959697999b09936ffffffffeffffffffffffffffffffffff60601b1985800980956ffffffffeffffffffffffffffffffffff60601b19828409966ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b198a8208908a6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b19906003099c6ffffffffeffffffffffffffffffffffff60601b19908309986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19828009906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199087086ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1981938309906ffffffffeffffffffffffffffffffffff60601b19910891878c1c600116878d1c60011b60021601801561526f5760018114615224575b60028114615219575b600314615210575b8c156151fb578c916ffffffffeffffffffffffffffffffffff60601b198085818d8196090893888203920908948115614fe6575b6ffffffffeffffffffffffffffffffffff60601b19868009986ffffffffeffffffffffffffffffffffff60601b198a9788099d8e976ffffffffeffffffffffffffffffffffff60601b1991099d6ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09866ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b19848009906ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19910991856ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b19910892985f19905b0196949392979597614b54565b8c8615614ff35750614e48565b989150919a94506ffffffffeffffffffffffffffffffffff60601b198b7fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b198180099283916ffffffffeffffffffffffffffffffffff60601b19838309946ffffffffeffffffffffffffffffffffff60601b1991099d8e916ffffffffeffffffffffffffffffffffff60601b198281038208916ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1990600309926ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19838009906ffffffffeffffffffffffffffffffffff60601b1991089b6ffffffffeffffffffffffffffffffffff60601b199109918b6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b1991086ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b199108925f1990614fd9565b60019c50909a8c98509094505f199150614fd9565b50508183614e14565b8b92508a9150614e0c565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29692507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59150614e03565b5050505f19906ffffffffeffffffffffffffffffffffff60601b199a949a0393614fd9565b889750859150614b43565b9697508796859250614b3b565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29698507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59250614b32565b5f1901600184821c16600284831c60011b1601614b14565b91927fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551919382039008915f91831580615355575b15614b08575050505050505050505f90565b506001615343565b508515614b03565b505050505050505f90565b508015614aea565b9081151591826153c5575b50816153bb575b81615393575090565b7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89150111590565b801515915061538a565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325511191505f615383565b6ffffffffeffffffffffffffffffffffff60601b1980807f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b8185817fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81838009080908818580091493109110161690565b6040519061546d8261089e565b5f6040838281528260208201520152565b6040519061020061548f81846108ba565b825f5b82811061549e57505050565b6020906154a9615460565b8184015201615492565b9060108110156123505760051b0190565b5f9392849283929183915b608083106154e5575050505061038f9293615a2e565b856155b3575b600c6154f78260fc1c90565b1660036155048460fe1c90565b1617604061551282876154b3565b51015161553a575b5061553161552a60019260021b90565b9260021b90565b920191906154cf565b959194909782155f146155895750505061555484836154b3565b515192600161553161552a604061557a60206155708b8a6154b3565b51015199886154b3565b5101519796995b92505061551a565b61552a95926001926155a8926155a26155319a896154b3565b51615885565b979196909699615581565b96946155c491946155ca93966157fe565b916157fe565b9491939093966154eb565b80516020909101905f5b8181106155ec5750505090565b82518452602093840193909201916001016155df565b91907f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5918015615736578461038f949583148061572d575b156157185750506ffffffffeffffffffffffffffffffffff60601b1982600209916ffffffffeffffffffffffffffffffffff60601b198084800993818080808881818a09950996817fffffffff00000001000000000000000000000000fffffffffffffffffffffffe816001840892080960030981808080867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd0981858009089681600181818c099b099809810393868203900890090890615b4b565b90919261572493615aad565b92909190615b4b565b5081841461565b565b50925090565b61575c90615748615460565b5080519060406020820151910151916157fe565b906040519261576a8461089e565b83526020830152604082015290565b61575c91615785615460565b5080516040602083015192015192615885565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f6157e392615be1565b90156157ec5790565b634e487b715f5260126020526024601cfd5b9290916ffffffffeffffffffffffffffffffffff60601b1980918180868009968180808a818080808a800980097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b82039008900908940960020990565b91939092935f945f945f946040810151906ffffffffeffffffffffffffffffffffff60601b198280096ffffffffeffffffffffffffffffffffff60601b19858009926ffffffffeffffffffffffffffffffffff60601b1980878609602085015109916ffffffffeffffffffffffffffffffffff60601b19808681868103818d8189890990090896510991818381039189090890811585151694855f146159c95750505050506001146159375750505050565b6ffffffffeffffffffffffffffffffffff60601b198080809a508699508097985080969381808087819998099d838f94097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b820390089009089409600209905f808080612b90565b929b50935096506ffffffffeffffffffffffffffffffffff60601b1980808080809c9d50809a995080985080969f508b8009809709958a098180876002098103818381038188800908089d098103938c8203900890090895099009905f808080612b90565b92918015615aa3576ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffd615a7592615be1565b9190156157ec576ffffffffeffffffffffffffffffffffff60601b1991829081808280098097099509900990565b505090505f905f90565b9392908015615b3e576ffffffffeffffffffffffffffffffffff60601b19806001969481808080809a9881809981039d8e920908938160018b820392090881818009998a9182099809918180898180877fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09818381038188800908089c09938b820390080908946001099260010990565b5092509190600190600190565b9092919260405192602084526020808501526020604085015260608401527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808401526ffffffffeffffffffffffffffffffffff60601b1960a084015260208360c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b198093918180935180920995098009900991565b91908115615c1c576020925f9260c0926040519286845286808501528660408501526060840152608083015260a082015260055afa905f5190565b5050505f905f9056fea164736f6c634300081d000a",
- "nonce": "0x3",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000420000000000000000000000000000000000000600000000000000000000000097febbc2adbd5644ba22736e962564b23f5828ce00000000000000000000000042ae7ec7ff020412639d443e245d936429fbe71796e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000360e68faccca8ca495c1b759fd9eee466db9fb3200000000000000000000000056c1205b0244332011c1e866f4ea5384eb6bfa2c0000000000000000000000001b35d13a2e2528f192637f14b05f0dc0e7deb5660000000000000000000000003bad7ad0728f9917d1bf08af5782dcbd516cdd96",
+ "nonce": "0x8",
"chainId": "0x74c"
},
"additionalContracts": [],
@@ -22,31 +24,31 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0x74cd08",
+ "cumulativeGasUsed": "0x6d2088",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0x1116d385e06fd7121a0d5a071d3f49b0ac3ea07030557dfd3e617316a4eb3ba6",
+ "transactionHash": "0xa02d7efb0af9f039fa29c7dc2a1064e37b2c62520cca156203d8167892167f75",
"transactionIndex": "0x16",
- "blockHash": "0xf593d5189f5b4bb610c105c96ebec418da800be25b761061de77fd24bacb7bd5",
- "blockNumber": "0x702cbd",
- "gasUsed": "0x4e6255",
- "effectiveGasPrice": "0x6ac84",
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "blockHash": "0xac8549b2abb97e614f86a34311c1b654c642c6f4e43a6c80e4e035a507288edc",
+ "blockNumber": "0xe86cdf",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x189cd",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": "0x3cbad1e3b9049ecdb9588fb48dd61d80faf41bd5",
+ "contractAddress": "0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef",
"l1BaseFeeScalar": "0x2608",
- "l1BlobBaseFee": "0x1",
+ "l1BlobBaseFee": "0x115",
"l1BlobBaseFeeScalar": "0x177fef",
- "l1Fee": "0x7d63098c677",
- "l1GasPrice": "0x1187b5185",
- "l1GasUsed": "0x2dea9"
+ "l1Fee": "0xacef5ccb7f",
+ "l1GasPrice": "0x179197ab",
+ "l1GasUsed": "0x2f1a3"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1747837790,
+ "timestamp": 1763599220737,
"chain": 1868,
- "commit": "0a52cd5"
+ "commit": "f9b945f"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/42161/run-1763596641168.json b/broadcast/Deploy-all.s.sol/42161/run-1763596641168.json
new file mode 100644
index 00000000..4efb5625
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/42161/run-1763596641168.json
@@ -0,0 +1,51 @@
+{
+ "transactions": [
+ {
+ "hash": "0xde24f0ec9dc554b2ca4dfc07d86e916f3f137c1c41b7804bdc904dee8bac023c",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x96b2fd2f80e9428daa65d859653117d453981ab4",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1, 0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32, 0xC36442b4a4522E871399CD717aBDD847Ab11FE88, 0xd88F38F930b7952f2DB2432Cb002E7abbF3dD869, 0xe35e9842fceaCA96570B734083f4a58e8F7C5f2A)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1000000000000000000000000f1d7cc64fb4452f05c498126312ebe29f30fbcf90000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000360e68faccca8ca495c1b759fd9eee466db9fb32000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88000000000000000000000000d88f38f930b7952f2db2432cb002e7abbf3dd869000000000000000000000000e35e9842fceaca96570b734083f4a58e8f7c5f2a",
+ "nonce": "0xf",
+ "chainId": "0xa4b1"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x4ae95c",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0xde24f0ec9dc554b2ca4dfc07d86e916f3f137c1c41b7804bdc904dee8bac023c",
+ "transactionIndex": "0x2",
+ "blockHash": "0xcf97ce7ddc1fcaaa93f6d0ee7a4b0f87018013d23f4f773a20e122b6fd7fcf13",
+ "blockNumber": "0x17f6f341",
+ "gasUsed": "0x495e04",
+ "effectiveGasPrice": "0x989680",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0x96b2fd2f80e9428daa65d859653117d453981ab4",
+ "gasUsedForL1": "0xcd23",
+ "l1BlockNumber": "0x16bb771",
+ "timeboosted": false
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763596641168,
+ "chain": 42161,
+ "commit": "f13ad62"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/42161/run-latest.json b/broadcast/Deploy-all.s.sol/42161/run-latest.json
index d9b08815..4efb5625 100644
--- a/broadcast/Deploy-all.s.sol/42161/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/42161/run-latest.json
@@ -1,20 +1,20 @@
{
"transactions": [
{
- "hash": "0x6da2799ec55636467d4eb25b495ba970a105150a478be5c1299acb2707803b7a",
+ "hash": "0xde24f0ec9dc554b2ca4dfc07d86e916f3f137c1c41b7804bdc904dee8bac023c",
"transactionType": "CREATE2",
- "contractName": "ERC7914Detector",
- "contractAddress": "0xc470458fc6a7e43471b31e6a2eb2612215a7102e",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x96b2fd2f80e9428daa65d859653117d453981ab4",
"function": null,
"arguments": [
- "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00"
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1, 0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32, 0xC36442b4a4522E871399CD717aBDD847Ab11FE88, 0xd88F38F930b7952f2DB2432Cb002E7abbF3dD869, 0xe35e9842fceaCA96570B734083f4a58e8F7C5f2A)"
],
"transaction": {
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b506040516103c53803806103c583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610335610090600039600081816068015260d301526103356000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806337e276381461003b57806385bb2fa814610063575b600080fd5b61004e6100493660046102b7565b6100a2565b60405190151581526020015b60405180910390f35b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161005a565b6000813b8082036100b65750600092915050565b6100bf83610135565b156101255760006100cf84610172565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610114575060019392505050565b61011d81610191565b949350505050565b61012e83610191565b9392505050565b60006017826001600160a01b03163b101561015257506000919050565b61ef0160f01b610161836102a6565b6001600160e81b0319161492915050565b60008061017e836102a6565b60481c6001600160a01b03169392505050565b6040805160006024820181905260448201819052606480830182905283518084039091018152608490920183526020820180516001600160e01b031663789ff70160e01b9081179091529251909291839182916001600160a01b038716916101f991906102e0565b600060405180830381855afa9150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b509150915081801561024c575080516020145b1561027f57600081806020019051810190610267919061030f565b90506001811161027d5750600195945050505050565b505b81801561028b57508051155b1561029b57506000949350505050565b506000949350505050565b60006017600080843c505060005190565b6000602082840312156102c957600080fd5b81356001600160a01b038116811461012e57600080fd5b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b60006020828403121561032157600080fd5b505191905056fea164736f6c6343000813000a000000000000000000000000000000009b1d0af20d8c6d0a44e162d11f9b8f00",
- "nonce": "0x79",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1000000000000000000000000f1d7cc64fb4452f05c498126312ebe29f30fbcf90000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000360e68faccca8ca495c1b759fd9eee466db9fb32000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88000000000000000000000000d88f38f930b7952f2db2432cb002e7abbf3dd869000000000000000000000000e35e9842fceaca96570b734083f4a58e8f7c5f2a",
+ "nonce": "0xf",
"chainId": "0xa4b1"
},
"additionalContracts": [],
@@ -24,28 +24,28 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0xfd669",
+ "cumulativeGasUsed": "0x4ae95c",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0x6da2799ec55636467d4eb25b495ba970a105150a478be5c1299acb2707803b7a",
- "transactionIndex": "0x3",
- "blockHash": "0x35abf46bfc242e6bab88d713e0c391d168d1be19fc28c38728b373385bfaf91a",
- "blockNumber": "0x17b5bf0f",
- "gasUsed": "0x39773",
- "effectiveGasPrice": "0x60d9b38",
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "transactionHash": "0xde24f0ec9dc554b2ca4dfc07d86e916f3f137c1c41b7804bdc904dee8bac023c",
+ "transactionIndex": "0x2",
+ "blockHash": "0xcf97ce7ddc1fcaaa93f6d0ee7a4b0f87018013d23f4f773a20e122b6fd7fcf13",
+ "blockNumber": "0x17f6f341",
+ "gasUsed": "0x495e04",
+ "effectiveGasPrice": "0x989680",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": null,
- "gasUsedForL1": "0xac3",
- "l1BlockNumber": "0x16a5ea5",
+ "contractAddress": "0x96b2fd2f80e9428daa65d859653117d453981ab4",
+ "gasUsedForL1": "0xcd23",
+ "l1BlockNumber": "0x16bb771",
"timeboosted": false
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1762529020,
+ "timestamp": 1763596641168,
"chain": 42161,
- "commit": "952bce9"
+ "commit": "f13ad62"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/42220/run-1763596982364.json b/broadcast/Deploy-all.s.sol/42220/run-1763596982364.json
new file mode 100644
index 00000000..04b0c95d
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/42220/run-1763596982364.json
@@ -0,0 +1,54 @@
+{
+ "transactions": [
+ {
+ "hash": "0x726881966384acd626060bb8fa0f9332ca5110b4d8a3e4037c3224d8e283dd73",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xbb8ed9bf0bff210652ae5f473a849f82e990ddf6",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x471EcE3750Da237f93B8E339c536989b8978a438, 0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f, 0xAfE208a311B21f13EF87E33A90049fC17A7acDEc, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x288dc841A52FCA2707c6947B3A777c5E56cd87BC, 0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A, 0xf7965f3981e4D5BC383BfBCb61501763e9068CA9, 0x5Dc88340E1c5c6366864Ee415d6034cadd1A9897)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000471ece3750da237f93b8e339c536989b8978a43800000000000000000000000079a530c8e2fa8748b7b40dd3629c0520c2ccf03f000000000000000000000000afe208a311b21f13ef87e33a90049fc17a7acdec96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000288dc841a52fca2707c6947b3a777c5e56cd87bc0000000000000000000000003d79edaabc0eab6f08ed885c05fc0b014290d95a000000000000000000000000f7965f3981e4d5bc383bfbcb61501763e9068ca90000000000000000000000005dc88340e1c5c6366864ee415d6034cadd1a9897",
+ "nonce": "0x6",
+ "chainId": "0xa4ec"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x762dbb",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0x726881966384acd626060bb8fa0f9332ca5110b4d8a3e4037c3224d8e283dd73",
+ "transactionIndex": "0x12",
+ "blockHash": "0x41d8bfdc8659477d224cc939dfc08d81af49ac5ccf7ede606087cd52fc3e7e81",
+ "blockNumber": "0x314d247",
+ "gasUsed": "0x4890e1",
+ "effectiveGasPrice": "0x5d22cfc3b",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0xbb8ed9bf0bff210652ae5f473a849f82e990ddf6",
+ "l1BaseFeeScalar": "0x0",
+ "l1BlobBaseFee": "0xa95",
+ "l1BlobBaseFeeScalar": "0x0",
+ "l1Fee": "0x0",
+ "l1GasPrice": "0x9ce5189",
+ "l1GasUsed": "0x2f294"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763596982364,
+ "chain": 42220,
+ "commit": "d94995c"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/42220/run-latest.json b/broadcast/Deploy-all.s.sol/42220/run-latest.json
index 446b7209..04b0c95d 100644
--- a/broadcast/Deploy-all.s.sol/42220/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/42220/run-latest.json
@@ -1,21 +1,20 @@
{
"transactions": [
{
- "hash": "0x00b870a8790b751759c2c968ef624ab7ed0f2599c7defe4e2bae35c21db53f67",
- "transactionType": "CREATE",
- "contractName": "MixedRouteQuoterV2",
- "contractAddress": "0x182a927119d56008d921126764bf884221b10f59",
+ "hash": "0x726881966384acd626060bb8fa0f9332ca5110b4d8a3e4037c3224d8e283dd73",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xbb8ed9bf0bff210652ae5f473a849f82e990ddf6",
"function": null,
"arguments": [
- "0x288dc841A52FCA2707c6947B3A777c5E56cd87BC",
- "0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",
- "0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f"
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x471EcE3750Da237f93B8E339c536989b8978a438, 0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f, 0xAfE208a311B21f13EF87E33A90049fC17A7acDEc, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x288dc841A52FCA2707c6947B3A777c5E56cd87BC, 0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A, 0xf7965f3981e4D5BC383BfBCb61501763e9068CA9, 0x5Dc88340E1c5c6366864Ee415d6034cadd1A9897)"
],
"transaction": {
"from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x60e0346100c757601f6119fe38819003918201601f19168301916001600160401b038311848410176100cb578084926060946040528339810103126100c7578051906001600160a01b03821682036100c7576100696040610062602084016100df565b92016100df565b9160805260a05260c05260405161190a90816100f482396080518181816101c8015281816103080152818161051a015281816107730152610b8e015260a05181818161010001526102a6015260c05181818161062401526111250152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100c75756fe60806040526004361015610011575f80fd5b5f3560e01c8063064a11341461088457806319fa62af146106535780636210c6201461060f57806385894af5146103ce5780638a4992861461038157806391dd7346146102d55780639a45181d14610291578063add1ce0e14610229578063d737d0c7146101f7578063dc4c90d3146101b35763fa461e3314610092575f80fd5b34610196576060366003190112610196576004356024356044356001600160401b038111610196576100c8903690600401610da6565b905f8413918215806101a9575b61019a576100e29161160b565b939192906001600160a01b0390610124906100fe9087876117b5565b7f0000000000000000000000000000000000000000000000000000000000000000611818565b1633036101965715610174576101399061100e565b92916001600160a01b039081169116105b156101625750633b2f660160e21b5f5260045260245ffd5b633b2f660160e21b5f5260045260245ffd5b926101819092919261100e565b92916001600160a01b0390811691161061014a565b5f80fd5b63c3c5e9e760e01b5f5260045ffd5b505f8413156100d5565b34610196575f366003190112610196576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610196575f366003190112610196576040516001600160a01b035f805160206118de8339815191525c168152602090f35b346101965760803660031901126101965760405161024681610df7565b61024e610e7d565b8152610258610e93565b6020820152604435604082015260643562ffffff8116810361019657816102859160606040940152611362565b82519182526020820152f35b34610196575f366003190112610196576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610196576020366003190112610196576004356001600160401b03811161019657610305903690600401610da6565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610372575f8281928160405192839283378101838152039082305af1610356611061565b9061036357602081519101fd5b63703a952d60e11b5f5260045ffd5b63570c108560e11b5f5260045ffd5b346101965760603660031901126101965760206103c66040516103a381610e41565b6103ab610e7d565b81526103b5610e93565b83820152604435604082015261109d565b604051908152f35b34610196576020366003190112610196576004356001600160401b0381116101965761010060031982360301126101965760405161040b81610df7565b6104183683600401610ebd565b815260a48201359081151582036101965760208101918252604081019260c4810135845260e4810135906001600160401b03821161019657019236602385011215610196575f6104c16104f361047b610515973690602460048201359101610f57565b9460608101958652335f805160206118de8339815191525d6104e5849685965a996040519687956319fa62af60e01b60208801526020602488015260448701905161101e565b51151560e48501525161010484015251610100610124840152610144830190610dd3565b03601f198101835282610e5c565b604051809681926348c8949160e01b8352602060048401526024830190610dd3565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180610596575b6040945061058e57505061057061056a610562611061565b925a90611090565b9161162e565b905b5f5f805160206118de8339815191525d82519182526020820152f35b909150610572565b3d805f873e6105a58187610e5c565b850194602081870312610196578051906001600160401b03821161019657019480601f870112156101965785516105db81610f3c565b916105e96040519384610e5c565b81835260208289010111610196576020815f928260409a018386015e830101525061054a565b34610196575f366003190112610196576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610196576020366003190112610196576004356001600160401b0381116101965780600401906101006003198236030112610196573033036108755760a481019161069e83611001565b916106c860206106be60e46106b660c486013561100e565b940185610fcf565b9290943690610ebd565b938515610857576101446401000276a4965b604051906106e782610e41565b1515948582528085830194888652604084019a60018060a01b03168b526040519a8b968795633cf3645360e21b87526107248d600489019061101e565b51151560a48701525160c4860152516001600160a01b031660e48501526101206101048501526101248401829052848401375f838284010152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af193841561084c575f94610818575b505f82120361080f578260801d5b600f0b036107f957506107d46fffffffffffffffffffffffffffffffff92611001565b156107ef5781165b633b2f660160e21b5f521660045260245ffd5b60801d81166107dc565b60a09020631e97b5cd60e21b5f5260045260245ffd5b82600f0b6107b1565b9093506020813d602011610844575b8161083460209383610e5c565b81010312610196575192856107a3565b3d9150610827565b6040513d5f823e3d90fd5b61014473fffd8963efd1fc6a506488495d951d5263988d25966106da565b6314e1dbf760e11b5f5260045ffd5b34610196576060366003190112610196576004356001600160401b038111610196576108b4903690600401610da6565b90602435916001600160401b03831161019657602083600401936003199036030112610196578290604435918193806108fa5f946108f28580610f8d565b9490506114ca565b925f935b838510610915576040878782519182526020820152f35b909192939586610d87575b60ff8216600281036109a6575060159060ff61093b83611522565b1689106109975760019161098b9161096160ff6109588d8a61168e565b93168c896116da565b6040519261096e84610e41565b60a086901b8690039081168452166020830152604082015261109d565b965b01939291906108fe565b633b99b53d60e01b5f5260045ffd5b60048103610cfd57506109b98380610f8d565b881015610ce9578760051b810135601e1982360301811215610196576109e0910180610fcf565b9160179160ff6109fa6109f56109f586611534565b611522565b168b1061099757610a0b8b8861168e565b93838c10610c9957601488013560e81c9360ff811660038101808211610cd5578e10610c9957890135610a648e60ff610a5c6109f5610a568f8585610a4f8b611534565b16916116da565b96611534565b16908c6116da565b955f6080604051610a7481610e26565b82815260208101839052604081018390526060810183905201526001600160a01b0387811690891610978815610c7c57945f946104c194610b6794628fffff610b2195610b899a5b60206040519e8f92610acd84610e26565b60018060a01b0316835260018060a01b03169101521660408c015260e81d60608b015260018060a01b031660808a015260405198610b0a8a610df7565b895260208901998a52604089019788523691610f57565b9560608101968752335f805160206118de8339815191525d6104e5849785975a9a6040519687956319fa62af60e01b60208801526020602488015260448701905161101e565b604051809381926348c8949160e01b8352602060048401526024830190610dd3565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081610c06575b50610bf8575050610bf1600191610bda61056a610562611061565b975b5f5f805160206118de8339815191525d610fc2565b959661098d565b60019250610bf19197610bdc565b3d805f833e610c158183610e5c565b810190602081830312610196578051906001600160401b038211610196570181601f8201121561019657805190610c4b82610f3c565b92610c596040519485610e5c565b8284526020838301011161019657815f9260208093018386015e83010152610bbf565b96945f946104c194610b6794628fffff610b2195610b899a610abc565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b60038103610d565750610bf1610d4f60019262ffffff610d1d8c8961160b565b604051949192610d2c86610df7565b60a089901b89900390811686521660208501526040840152166060820152611362565b9097610fc2565b9096959080610d755750614e208101809111610cd5576001909561098d565b63f8904ccd60e01b5f5260045260245ffd5b96610d92929361155e565b95909190610da087846114ca565b90610920565b9181601f84011215610196578235916001600160401b038311610196576020838186019501011161019657565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b608081019081106001600160401b03821117610e1257604052565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b03821117610e1257604052565b606081019081106001600160401b03821117610e1257604052565b90601f801991011681019081106001600160401b03821117610e1257604052565b600435906001600160a01b038216820361019657565b602435906001600160a01b038216820361019657565b35906001600160a01b038216820361019657565b91908260a091031261019657604051610ed581610e26565b8092610ee081610ea9565b8252610eee60208201610ea9565b6020830152604081013562ffffff811681036101965760408301526060810135908160020b820361019657606083019190915260800135906001600160a01b03821682036101965760800152565b6001600160401b038111610e1257601f01601f191660200190565b929192610f6382610f3c565b91610f716040519384610e5c565b829481845281830111610196578281602093845f960137010152565b903590601e198136030182121561019657018035906001600160401b03821161019657602001918160051b3603831361019657565b91908201809211610cd557565b903590601e198136030182121561019657018035906001600160401b0382116101965760200191813603831361019657565b3580151581036101965790565b600160ff1b8114610cd5575f0390565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b3d1561108b573d9061107282610f3c565b916110806040519384610e5c565b82523d5f602084013e565b606090565b91908203918211610cd557565b805160208201516001600160a01b03908116916004911660606110cb6110c385846116f4565b5094836116f4565b60405191831b6bffffffffffffffffffffffff199081166020840190815291841b1660348301526028825290611102604882610e5c565b51902060405190602082019060ff60f81b82526bffffffffffffffffffffffff197f0000000000000000000000000000000000000000000000000000000000000000851b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f605583015260558252611186607583610e5c565b90519020604051630240bc6b60e21b815293849182906001600160a01b03165afa91821561084c575f905f93611303575b506001600160701b03928316939216916001600160a01b0316036112fa5760409091925b015180156112a95781158015806112a0575b15611251576103e58202918083046103e503610cd557846103e5910202938285041482151715610cd5576103e883029283046103e8141715610cd55761123291610fc2565b90811561123d570490565b634e487b7160e01b5f52601260045260245ffd5b60405162461bcd60e51b815260206004820152602160248201527f56324c6962726172793a20494e53554646494349454e545f4c495155494449546044820152605960f81b6064820152608490fd5b508315156111ed565b60405162461bcd60e51b8152602060048201526024808201527f56324c6962726172793a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b6064820152608490fd5b916040906111db565b9250506060823d60601161135a575b8161131f60609383610e5c565b81010312610196576113308261167a565b604061133e6020850161167a565b93015163ffffffff811603610196576001600160701b036111b7565b3d9150611312565b5f8060018060a01b03835116602084019360018060a01b0385511690818310916113a26100fe606084019560018060a01b039362ffffff885116916117b5565b165a60408301519097600160ff1b821015610196576040945f9181156114af576401000276a4955b519751905187516060998a1b6bffffffffffffffffffffffff19908116602083015260e89390931b6001600160e81b0319166034820152981b166037880152602b8752611418604b88610e5c565b61145c865197889687958694630251596160e31b86523060048701526024860152604485015260018060a01b0316606484015260a0608484015260a4830190610dd3565b03925af19081611484575b5061147f57505061147c61056a610562611061565b91565b915091565b604090813d83116114a8575b61149a8183610e5c565b81010312610196575f611467565b503d611490565b73fffd8963efd1fc6a506488495d951d5263988d25956113ca565b9060148110610997576015116114e7576014013560fc1c60071690565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b60ff60149116019060ff8211610cd557565b60ff60039116019060ff8211610cd557565b90939293848311610196578411610196578101920390565b9160ff16600281148015611603575b156115855750611581916015908290611546565b9091565b6003810361159c5750611581916017908290611546565b6004036115be57611581918160ff6115b76109f56017611534565b1691611546565b60405162461bcd60e51b815260206004820152601860248201527f696e76616c69645f50524f544f434f4c5f56455253494f4e00000000000000006044820152606490fd5b50801561156d565b9190602b11610997576017823592013560601c620fffff8360601c9360481c1691565b60208101516001600160e01b0319166304d099ff60e21b01611651576024015190565b6040516306190b2b60e41b815260206004820152908190611676906024830190610dd3565b0390fd5b51906001600160701b038216820361019657565b9060141161169d573560601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b906014830190818411610cd5571061169d57013560601c90565b9091906001600160a01b0380841690821680821461177057101561176b57915b906001600160a01b0383161561172657565b60405162461bcd60e51b815260206004820152601760248201527f56324c6962726172793a205a45524f5f414444524553530000000000000000006044820152606490fd5b611714565b60405162461bcd60e51b815260206004820152601e60248201527f56324c6962726172793a204944454e544943414c5f41444452455353455300006044820152606490fd5b9162ffffff915f604080516117c981610e41565b8281526020810183905201526001600160a01b0381811690851611611812575b604051936117f685610e41565b6001600160a01b03908116855216602084015216604082015290565b926117e9565b8151602083015191926001600160a01b0391821692909116908183101561019657604062ffffff9101511660405191602083019384526040830152606082015260608152611867608082610e5c565b5190209060405191602083019160ff60f81b83526bffffffffffffffffffffffff199060601b16602184015260358301527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055830152605582526118cd607583610e5c565b905190206001600160a01b03169056fe0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87aa164736f6c634300081a000a000000000000000000000000288dc841a52fca2707c6947b3a777c5e56cd87bc000000000000000000000000afe208a311b21f13ef87e33a90049fc17a7acdec00000000000000000000000079a530c8e2fa8748b7b40dd3629c0520c2ccf03f",
- "nonce": "0x5",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000471ece3750da237f93b8e339c536989b8978a43800000000000000000000000079a530c8e2fa8748b7b40dd3629c0520c2ccf03f000000000000000000000000afe208a311b21f13ef87e33a90049fc17a7acdec96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000288dc841a52fca2707c6947b3a777c5e56cd87bc0000000000000000000000003d79edaabc0eab6f08ed885c05fc0b014290d95a000000000000000000000000f7965f3981e4d5bc383bfbcb61501763e9068ca90000000000000000000000005dc88340e1c5c6366864ee415d6034cadd1a9897",
+ "nonce": "0x6",
"chainId": "0xa4ec"
},
"additionalContracts": [],
@@ -25,31 +24,31 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0x3e4db0",
+ "cumulativeGasUsed": "0x762dbb",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0x00b870a8790b751759c2c968ef624ab7ed0f2599c7defe4e2bae35c21db53f67",
+ "transactionHash": "0x726881966384acd626060bb8fa0f9332ca5110b4d8a3e4037c3224d8e283dd73",
"transactionIndex": "0x12",
- "blockHash": "0xfc3c77b77aca42d8bdfad1d98c0c1641a229a59a69a7d7959d71e19b3b957cfd",
- "blockNumber": "0x30b9ae3",
- "gasUsed": "0x15fc7d",
- "effectiveGasPrice": "0x60834cd40",
+ "blockHash": "0x41d8bfdc8659477d224cc939dfc08d81af49ac5ccf7ede606087cd52fc3e7e81",
+ "blockNumber": "0x314d247",
+ "gasUsed": "0x4890e1",
+ "effectiveGasPrice": "0x5d22cfc3b",
"from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
- "to": null,
- "contractAddress": "0x182a927119d56008d921126764bf884221b10f59",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0xbb8ed9bf0bff210652ae5f473a849f82e990ddf6",
"l1BaseFeeScalar": "0x0",
- "l1BlobBaseFee": "0x1",
+ "l1BlobBaseFee": "0xa95",
"l1BlobBaseFeeScalar": "0x0",
"l1Fee": "0x0",
- "l1GasPrice": "0x3aa00db",
- "l1GasUsed": "0xf239"
+ "l1GasPrice": "0x9ce5189",
+ "l1GasUsed": "0x2f294"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1762992985411,
+ "timestamp": 1763596982364,
"chain": 42220,
- "commit": "a87a9d9"
+ "commit": "d94995c"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/43114/run-1763597658826.json b/broadcast/Deploy-all.s.sol/43114/run-1763597658826.json
new file mode 100644
index 00000000..fdaeb2c7
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/43114/run-1763597658826.json
@@ -0,0 +1,48 @@
+{
+ "transactions": [
+ {
+ "hash": "0x817e32060d0ae01625bbd4e88590012453f4ad21a62e1d40d18ba967505e53d7",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x0cf1f86b331a03179646341d10a2a87515087221",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7, 0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C, 0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x06380C0e0912312B5150364B9DC4542BA0DbBc85, 0x655C406EBFa14EE2006250925e54ec43AD184f8B, 0xB74b1F14d2754AcfcbBe1a221023a5cf50Ab8ACD, 0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c70000000000000000000000009e5a52f57b3038f1b8eee45f28b3c1967e22799c000000000000000000000000740b1c1de25031c31ff4fc9a62f554a55cdc1bad96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5400000000000000000000000006380c0e0912312b5150364b9dc4542ba0dbbc85000000000000000000000000655c406ebfa14ee2006250925e54ec43ad184f8b000000000000000000000000b74b1f14d2754acfcbbe1a221023a5cf50ab8acd0000000000000000000000005302086a3a25d473aabbd0356eff8dd811a4d89b",
+ "nonce": "0x8",
+ "chainId": "0xa86a"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x70714c",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0x817e32060d0ae01625bbd4e88590012453f4ad21a62e1d40d18ba967505e53d7",
+ "transactionIndex": "0x1e",
+ "blockHash": "0x473f6393df84091c0cb7539a84602b9f0b479d94d046ab29d6dbd020c6e5b905",
+ "blockNumber": "0x44e83e7",
+ "gasUsed": "0x4890d5",
+ "effectiveGasPrice": "0x1a85efed",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0x0cf1f86b331a03179646341d10a2a87515087221"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763597658826,
+ "chain": 43114,
+ "commit": "6ce39dd"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/43114/run-latest.json b/broadcast/Deploy-all.s.sol/43114/run-latest.json
index 8f7e47ce..fdaeb2c7 100644
--- a/broadcast/Deploy-all.s.sol/43114/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/43114/run-latest.json
@@ -1,18 +1,20 @@
{
"transactions": [
{
- "hash": "0x907c1f3160e38dacc5a8fd5077009b3f9ddcadd0221a7272cd8659b1df5a968f",
+ "hash": "0x817e32060d0ae01625bbd4e88590012453f4ad21a62e1d40d18ba967505e53d7",
"transactionType": "CREATE2",
- "contractName": "Calibur",
- "contractAddress": "0x458f5a9f47a01bea5d7a32662660559d9ed3312c",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x0cf1f86b331a03179646341d10a2a87515087221",
"function": null,
- "arguments": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7, 0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C, 0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x06380C0e0912312B5150364B9DC4542BA0DbBc85, 0x655C406EBFa14EE2006250925e54ec43AD184f8B, 0xB74b1F14d2754AcfcbBe1a221023a5cf50Ab8ACD, 0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B)"
+ ],
"transaction": {
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060e0604052346100ce57604080519081016001600160401b038111828210176100ba576040908152600782526621b0b634b13ab960c91b6020830190815281519182016001600160401b038111838210176100ba57604052600582526020820192640312e302e360dc1b845251902060805251902060a0523060c052604051615c2c90816100d38239608051818181611e990152612532015260a051818181611ebf0152612558015260c05181818161226101526124e40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe60806040526004361015610015575b366125a257005b5f3560e01c80630f3ebf6e1461024457806312aaac701461023f5780631626ba7e1461023a57806319822f7c146102355780631b71bb6e14610230578063219a260d1461022b57806323d578861461022657806325e5c2431461022157806327258b221461021c57806328495877146102175780632abbf4691461021257806330b1fa3b1461020d5780634223b5c2146102085780636575f6aa146102035780636750aa5f146101fe5780636a1ea88d146101f95780637613e7ba146101f4578063786902f2146101ef578063789ff701146101ea57806384b0196e146101e55780638dd7712f146101e057806394430fa5146101db57806399e1d016146101d6578063a58bb84a146101d1578063ac9650d8146101cc578063b70e36f0146101c7578063b75c7dc6146101c2578063b923614f146101bd578063bf7c5be9146101b8578063c3c16ee4146101b3578063d03c7914146101ae578063e41dae2f146101a9578063e9ae5c53146101a4578063f698da251461019f5763fac750e00361000e57611784565b61176a565b6116bf565b611676565b611658565b6114b1565b61146e565b611451565b6112b2565b61118b565b611087565b610f4e565b610f1a565b610d78565b610cbd565b610be7565b610bce565b610bb5565b610b4f565b610b0b565b610adc565b610a72565b6109eb565b61096b565b6107c9565b61076a565b610742565b6106c0565b61063b565b610611565b610564565b6103e5565b610393565b610302565b3461026a57602060031936011261026a57602061026260043561179e565b604051908152f35b5f80fd5b6003111561027857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9060038210156102785752565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b606060206102ff938184526102ef82850182516102a5565b01519160408082015201906102b2565b90565b3461026a57602060031936011261026a5761032d61032160043561191e565b604051918291826102d7565b0390f35b9181601f8401121561026a5782359167ffffffffffffffff831161026a576020838186019501011161026a57565b90604060031983011261026a57600435916024359067ffffffffffffffff821161026a5761038f91600401610331565b9091565b3461026a5760206103ac6103a63661035f565b91611a3b565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b908161012091031261026a5790565b3461026a57606060031936011261026a5760043567ffffffffffffffff811161026a576104169036906004016103d6565b60243560443573ffffffffffffffffffffffffffffffffffffffff61043961229c565b1633036105115761032d92816104e492610501575b5061045d610100820182611bcc565b91909384359161048d61047b6104738689613834565b96909861385f565b959097846104888761191e565b61270a565b926104978161179e565b93156104f4576104de78ffffffffff000000000000000000000000000000000000000085169788955b73ffffffffffffffffffffffffffffffffffffffff1696369161091a565b94612e54565b6040519081529081906020820190565b6104de60019788956104c0565b5f9081803892335af1505f61044e565b7fd663742a000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff81160361026a57565b359061056282610539565b565b3461026a57602060031936011261026a5760043561058181610539565b3033036105e95773ffffffffffffffffffffffffffffffffffffffff167f800000000000000000000000000000000000000000000000000000000000000081175f557fea942933e7fb7cb728727281a81e352a20dda96dbc4ee97633a3fa25da48e4ab5f80a2005b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004355f526004602052602060405f2054604051908152f35b3461026a57604060031936011261026a5760043561065881610539565b602435903033036105e95773ffffffffffffffffffffffffffffffffffffffff1690815f5260056020528060405f20556040519081527f30346eac03b1c5913bb026e6d8d0f42783a0c706bb2a86916410dc385cc2723660203092a360405160018152602090f35b3461026a57604060031936011261026a576004356106dd81610539565b602435903033036105e957806107088373ffffffffffffffffffffffffffffffffffffffff93612f43565b60405192835216907ff8c1385bb618a432aebbaae5bfab911559154982a64e1750b17b50f5782dc98860203092a360405160018152602090f35b3461026a57602060031936011261026a576020610760600435612f62565b6040519015158152f35b3461026a575f60031936011261026a5761032d60405161078b6040826108b3565b601581527f556e69737761702e43616c696275722e312e302e30000000000000000000000060208201526040519182916020835260208301906102b2565b3461026a57602060031936011261026a576004356bffffffffffffffffffffffff811680910361026a573033036105e9577fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060065416176006557f0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d315f80a1005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761089257604052565b610849565b6060810190811067ffffffffffffffff82111761089257604052565b90601f601f19910116810190811067ffffffffffffffff82111761089257604052565b6040519061056260c0836108b3565b604051906105626060836108b3565b6003111561026a57565b67ffffffffffffffff811161089257601f01601f191660200190565b929192610926826108fe565b9161093460405193846108b3565b82948184528183011161026a578281602093845f960137010152565b9080601f8301121561026a578160206102ff9335910161091a565b3461026a57602060031936011261026a5760043567ffffffffffffffff811161026a576040600319823603011261026a576040516109a881610876565b81600401356109b6816108f4565b8152602482013567ffffffffffffffff811161026a576109e99260046109df9236920101610950565b6020820152611c31565b005b3461026a57602060031936011261026a57600435610a07611807565b5080610a1f6318fb586460045260015f5260245f2090565b015490610a2a6133e8565b1115610a4a576103218168fbb67fda52d4bfb8bf61032d9314150261191e565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576020610262600435610a936124a5565b604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9060206102ff9281815201906102b2565b3461026a575f60031936011261026a5761032d610af7611e6e565b6040519182916020835260208301906102b2565b3461026a57602060031936011261026a5777ffffffffffffffffffffffffffffffffffffffffffffffff600435165f526004602052602060405f2054604051908152f35b3461026a575f60031936011261026a5760206040517f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686008152f35b600319606091011261026a57600435610ba181610539565b90602435610bae81610539565b9060443590565b3461026a576020610760610bc836610b89565b91611f02565b3461026a576020610760610be136610b89565b91612034565b3461026a575f60031936011261026a577fff00000000000000000000000000000000000000000000000000000000000000610c6e73ffffffffffffffffffffffffffffffffffffffff610c60610c3b612187565b97946040999397919699949294519a8b9a168a5260e060208b015260e08a01906102b2565b9088820360408a01526102b2565b93606087015216608085015260a084015282810360c0840152602080835192838152019201905f5b818110610ca4575050500390f35b8251845285945060209384019390920191600101610c96565b3461026a57604060031936011261026a5760043567ffffffffffffffff811161026a57610cee9036906004016103d6565b73ffffffffffffffffffffffffffffffffffffffff610d0b61229c565b16330361051157610d4781610d27610100610d3b940182611bcc565b610d3381839693613834565b50508461385f565b50506060810190611bcc565b909160048210610d6b576109e9926004610d6692359382019101610ef4565b613132565b633b99b53d5f526004601cfd5b3461026a575f60031936011261026a576020610d9261229c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b67ffffffffffffffff81116108925760051b60200190565b9080601f8301121561026a57813591610de083610db0565b92610dee60405194856108b3565b80845260208085019160051b8301019183831161026a5760208101915b838310610e1a57505050505090565b823567ffffffffffffffff811161026a578201906060601f19838803011261026a5760405190610e4982610897565b6020830135610e5781610539565b82526040830135602083015260608301359167ffffffffffffffff831161026a57610e8a88602080969581960101610950565b6040820152815201920191610e0b565b8015150361026a57565b91909160408184031261026a5760405190610ebe82610876565b819381359167ffffffffffffffff831161026a57610ee26020939284938301610dc8565b8452013591610ef083610e9a565b0152565b9060208282031261026a57813567ffffffffffffffff811161026a576102ff9201610ea4565b602060031936011261026a5760043567ffffffffffffffff811161026a57610f496109e9913690600401610ea4565b6122f8565b3461026a57604060031936011261026a576004356024353033036105e9578115610fe257610f7b82612f62565b15610fba5760207f55194732cd17a56216773dcef66731844f1900f9b878633e3be2b6cce1e542c991835f52600382528060405f2055604051908152a2005b7fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fb37b2fa0000000000000000000000000000000000000000000000000000000005f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061103c57505050505090565b9091929394602080611078837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516102b2565b9701930193019193929061102d565b602060031936011261026a5760043567ffffffffffffffff811161026a573660238201121561026a5780600401359067ffffffffffffffff821161026a576024810190602436918460051b01011161026a576110e282610db0565b916110f060405193846108b3565b808352601f196110ff82610db0565b015f5b81811061117a5750505f5b818110611122576040518061032d868261100a565b5f8061112f838587612345565b9061113f60405180938193612361565b0390305af461114c61236e565b90156111725790600191611160828761239d565b5261116b818661239d565b500161110d565b602081519101fd5b806060602080938801015201611102565b3461026a57602060031936011261026a576004353033036105e9578060401c805f5260046020526111c760405f205467ffffffffffffffff1690565b9167ffffffffffffffff81169267ffffffffffffffff811684111561128a5767ffffffffffffffff61ffff9185031611611262577f4d9dbebf1d909894d9c26fe228c27cec643b2cb490124e5b658f4edd203c20c19261124c61125d9377ffffffffffffffffffffffffffffffffffffffffffffffff165f52600460205260405f2090565b556040519081529081906020820190565b0390a1005b7f24d35a26000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f756688fe000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004353033036105e957805f906112e66318fb586460045260015f5260245f2090565b9068fbb67fda52d4bfb8bf8414611444578315611434575b811980549182159260011c5f19810191600183811b17946113c857856020525f5260405f209485549283156113b9575f97505f1984010361139b575b505050555561134960015b1590565b610fba57611367611362825f52600260205260405f2090565b612413565b5f818152600360205260408120557fe5af7daed5ab2a2dc5f98d53619f05089c0c14d11a6621f6b906a2366c9a7ab35f80a2005b5f1980849383010154928392010155855260408520555f808061133a565b50505050505050611349901590565b9550505050506001908281541461141857818101838154146114045750600201918254146113fa575060019050611349565b5f61134992551590565b611349935060025f92019081549055551590565b6113499250806002835f93019182548155019081549055551590565b5068fbb67fda52d4bfb8bf6112fe565b63f5a267f15f526004601cfd5b3461026a575f60031936011261026a576020600154604051908152f35b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff6004356114a081610539565b165f526020805f205c604051908152f35b604060031936011261026a5760043567ffffffffffffffff811161026a57806004019060a0600319823603011261026a5760243567ffffffffffffffff811161026a57611502903690600401610331565b91909273ffffffffffffffffffffffffffffffffffffffff606483013561152881610539565b16801590811561164e575b50156105e95760848201358015159081611644575b5061161c5761156a6113459361159a956115656024860135613b31565b613b63565b9691604461158c611587611582999496993689613314565b613b94565b611e62565b96013596866104888961191e565b6115f4576109e994610d66938573ffffffffffffffffffffffffffffffffffffffff6115dd6115e4956115cc8461179e565b956115d687612aa9565b369161091a565b9316613d45565b6115ef369180612472565b610ea4565b7f8baa579f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f0819bdcd000000000000000000000000000000000000000000000000000000005f5260045ffd5b905042115f611548565b905033145f611533565b3461026a57602060031936011261026a576020610760600435613393565b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff6004356116a881610539565b165f526005602052602060405f2054604051908152f35b6116c83661035f565b6116d3839293613393565b156117425782019160208184031261026a5780359067ffffffffffffffff821161026a576109e9937eff000000000000000000000000000000000000000000000000000000000000926117269201610dc8565b916040519261173484610876565b8352161560208201526122f8565b7f7f181275000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a575f60031936011261026a5760206102626124a5565b3461026a575f60031936011261026a5760206102626133e8565b80156117e8576117ad81612f62565b6117d9577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f52600360205260405f205490565b5079010000000000000000000000000000000000000000000000000090565b6040519061181482610876565b60606020835f81520152565b90600182811c92168015611867575b602083101461183a57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f169161182f565b81601f8201121561026a57805190611888826108fe565b9261189660405194856108b3565b8284526020838301011161026a57815f9260208093018386015e8301015290565b60208183031261026a5780519067ffffffffffffffff821161026a570160408183031261026a57604051916118eb83610876565b81516118f6816108f4565b8352602082015167ffffffffffffffff811161026a576119169201611871565b602082015290565b611926611807565b508015611a325761193681612f62565b611962577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f52600260205260405f206040515f82549261197d84611820565b9081845260208401946001811690815f146119f757506001146119ba575b5050816119b06102ff949360209303826108b3565b80510101906118b7565b5f908152602081209092505b8183106119dd5750508101602001816119b061199b565b6001816020929493945483858801015201910191906119c6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686525050151560051b82016020019050816119b061199b565b506102ff6125d8565b9180611b5a5761773961ffff821904028314611b3357611a5a91612847565b9391611a69839694929661191e565b91611a7e8282611a77611e6e565b8887612860565b928315611b17575b50505015611aef57611ac5611acb94611a9e8361179e565b611aa781612aa9565b73ffffffffffffffffffffffffffffffffffffffff1694369161091a565b92612b55565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b505050507fffffffff0000000000000000000000000000000000000000000000000000000090565b611b2b935085611b256124a5565b91612a47565b5f8080611a86565b5050507f773900010000000000000000000000000000000000000000000000000000000090565b90611b658282612612565b611b735790611a5a91612847565b611b7f926104886125d8565b15611ba8577f1626ba7e0000000000000000000000000000000000000000000000000000000090565b7fffffffff0000000000000000000000000000000000000000000000000000000090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561026a570180359067ffffffffffffffff821161026a5760200191813603831361026a57565b60405190611c2c6020836108b3565b5f8252565b3033036105e957805160038110156102785780611c4f60029261026e565b1480611d07575b611cdf577f8df00f8e3bbfb2c3024a60b74e1d4e520f7cbe1da3476726241146ecf6328832611cda611c8783612fe0565b92611cc4604051611cad81611c9f85602083016102d7565b03601f1981018352826108b3565b611cbf865f52600260205260405f2090565b611d97565b611ccd8461301d565b50604051918291826102d7565b0390a2565b7f41e2e8f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b50602081015173ffffffffffffffffffffffffffffffffffffffff611d37825192602080309583010191016126f5565b1614611c56565b818110611d49575050565b5f8155600101611d3e565b9190601f8111611d6357505050565b610562925f5260205f20906020601f840160051c83019310611d8d575b601f0160051c0190611d3e565b9091508190611d80565b919091825167ffffffffffffffff811161089257611dbf81611db98454611820565b84611d54565b6020601f8211600114611dfd578190611dee9394955f92611df2575b50505f198260011b9260031b1c19161790565b9055565b015190505f80611ddb565b601f19821690611e10845f5260205f2090565b915f5b818110611e4a57509583600195969710611e32575b505050811b019055565b01515f1960f88460031b161c191690555f8080611e28565b9192602060018192868b015181550194019201611e13565b6102ff90610a936124a5565b73ffffffffffffffffffffffffffffffffffffffff611e8b612187565b5094509150939150604051937f000000000000000000000000000000000000000000000000000000000000000060208601527f00000000000000000000000000000000000000000000000000000000000000006040860152606085015216608083015260a082015260a081526102ff60c0826108b3565b821561202c5773ffffffffffffffffffffffffffffffffffffffff3091160361200457335f908152602090205c90828210611fdc5781835f1973ffffffffffffffffffffffffffffffffffffffff9410611fca575b505016905f80808084865af1611f6b61236e565b5015611fa2576040519081527f3f1beca043a9fe9118bbaeca0035e81e02d6d7cf184bf32fa9dfbd73fdd027c060203092a3600190565b7fb06a467a000000000000000000000000000000000000000000000000000000005f5260045ffd5b611fd5910333612f43565b5f83611f57565b7fc45cb513000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f7d1c29f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b505050600190565b91905f92821561217e5773ffffffffffffffffffffffffffffffffffffffff3091160361200457335f90815260056020526040902054828110611fdc575f198110612102575b5073ffffffffffffffffffffffffffffffffffffffff16918080808085875af16120a261236e565b50156120da57506040519081527fed1cf8378e55f85e35be72eebdbef1b7347825916e51aa538d1855113f8c259d60203092a3600190565b807fb06a467a0000000000000000000000000000000000000000000000000000000060049252fd5b73ffffffffffffffffffffffffffffffffffffffff919350829003925f93806121493373ffffffffffffffffffffffffffffffffffffffff165f52600560205260405f2090565b5560405190815233907f85b16643b7d42712d1470a1ed9822d6e8cadad23eb1141cabefa28da0944c5b790602090a29061207a565b50505050600190565b7f0f000000000000000000000000000000000000000000000000000000000000009060408051906121b881836108b3565b600782527f43616c6962757200000000000000000000000000000000000000000000000000602083015280516121ee82826108b3565b600581527f312e302e3000000000000000000000000000000000000000000000000000000060208201526006549293909246923092909160a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001617915161228f6020826108b3565b5f80825236602083013790565b5f547f80000000000000000000000000000000000000000000000000000000000000008116156122df5773ffffffffffffffffffffffffffffffffffffffff1690565b50734337084d9e255ff0702461cf8895ce9e3b5ff10890565b61230133613288565b61230a816132e1565b156105e95761056291613132565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9082101561235c5761038f9160051b810190611bcc565b612318565b908092918237015f815290565b3d15612398573d9061237f826108fe565b9161238d60405193846108b3565b82523d5f602084013e565b606090565b805182101561235c5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81160361240e57565b6123b1565b61241d8154611820565b9081612427575050565b81601f5f9311600114612438575055565b8183526020832061245491601f0160051c810190600101611d3e565b808252602082209081548360011b905f198560031b1c191617905555565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18136030182121561026a570190565b60065460a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161760405160208101917fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647283527f000000000000000000000000000000000000000000000000000000000000000060408301527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a083015260c082015260c0815261259c60e0826108b3565b51902090565b5f3560e01c63bc197c81811463f23a6e6182141763150b7a028214176125cf57633c10b94e5f526004601cfd5b6020526020603cf35b6125e0611807565b50604051306020820152602081526125f96040826108b3565b6040519061260682610876565b60028252602082015290565b5060408114908115612622575090565b604191501490565b919082604091031261026a576020825192015190565b60208183031261026a5780359067ffffffffffffffff821161026a57019060c08282031261026a576126706108d6565b91803567ffffffffffffffff811161026a578261268e918301610950565b8352602081013567ffffffffffffffff811161026a5760a0926126b2918301610950565b6020840152604081013560408401526060810135606084015260808101356080840152013560a082015290565b919082604091031261026a576020823592013590565b9081602091031261026a57516102ff81610539565b92600284516127188161026e565b6127218161026e565b0361278a5760206127596127849361275373ffffffffffffffffffffffffffffffffffffffff9661276b95369161091a565b9061379e565b940151602080825183010191016126f5565b73ffffffffffffffffffffffffffffffffffffffff1690565b91161490565b9083516127968161026e565b61279f8161026e565b6127dc576127d7906127cf6127c460206102ff9701516020808251830101910161262a565b9590948101906126df565b92909161375b565b613773565b600184516127e98161026e565b6127f28161026e565b0361283f57611c9f61283a61282561281a60206102ff9801516020808251830101910161262a565b969095810190612640565b92604051928391602083019190602083019252565b613549565b505050505f90565b80359261038f6128578484613834565b9490949361385f565b909193929361286f84866142d4565b949093612886602088013592604089013598614304565b90916128c58985604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b03612a3b576128d391613922565b82959299939199158015612a33575b612a2557611c9f6129c061290d6102ff9c6129056129e396612a1f9b369161091a565b94369161091a565b604051928391605c61294a60208501977f5479706564446174615369676e280000000000000000000000000000000000008952602e860190613474565b7f20636f6e74656e74732c737472696e67206e616d652c737472696e672076657281527f73696f6e2c75696e7432353620636861696e49642c616464726573732076657260208201527f696679696e67436f6e74726163742c627974657333322073616c74290000000060408201520190613474565b51902092611c9f6040519384926020840196875260408401526060830190613474565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9061270a565b505050505050505050505f90565b5080156128e2565b50505050505050505f90565b906102ff949392612a1f91604090601c60208351612a6585826108b3565b828152017f506572736f6e616c5369676e286279746573207072656669786564290000000081522091805191602083019384528183015281526129e36060826108b3565b612ab290613b12565b90612aba5750565b64ffffffffff907f48c76fe1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b51907fffffffff000000000000000000000000000000000000000000000000000000008216820361026a57565b9081602091031261026a576102ff90612aed565b6102ff93926060928252602082015281604082015201906102b2565b6040513d5f823e3d90fd5b9290919260048116612b68575b50505050565b612bba9373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f9ac4eafd00000000000000000000000000000000000000000000000000000000855260048501612b2e565b0392165afa908115612c78577f9ac4eafd00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612c49575b501603612c21575f808080612b62565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b612c6b915060203d602011612c71575b612c6381836108b3565b810190612b1a565b5f612c11565b503d612c59565b612b4a565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561026a57016020813591019167ffffffffffffffff821161026a57813603831361026a57565b601f8260209493601f1993818652868601375f8582860101520116010190565b91612e3c906102ff96949592845260a06020850152612d2c60a08501612d1283610557565b73ffffffffffffffffffffffffffffffffffffffff169052565b602081013560c0850152612e0b612dff612da0612d62612d4f6040860186612c7d565b61012060e08b01526101c08a0191612ccd565b612d6f6060860186612c7d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608a8403016101008b0152612ccd565b608084013561012088015260a084013561014088015260c0840135610160880152612dce60e0850185612c7d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60898403016101808a0152612ccd565b91610100810190612c7d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868403016101a0870152612ccd565b936040830152606082015260808184039101526102b2565b9190939460028316612e69575b505050505050565b602094612ebb73ffffffffffffffffffffffffffffffffffffffff92604051988997889687957f9e364dba00000000000000000000000000000000000000000000000000000000875260048701612ced565b0392165afa908115612c78577f9e364dba00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f24575b501603612c21575f8080808080612e61565b612f3d915060203d602011612c7157612c6381836108b3565b5f612f12565b73ffffffffffffffffffffffffffffffffffffffff165f5260205f205d565b612f7860016318fb58646004525f5260245f2090565b68fbb67fda52d4bfb8bf8214611444578115612fcf575b80195415612fa6576020525f5260405f2054151590565b9060019181815414612fca57818382015414612fca5760020154146102ff57505f90565b505090565b68fbb67fda52d4bfb8bf9150612f8f565b8051906003821015610278576020015160208151910120604051906130096020830180946102a5565b60408201526040815261259c6060826108b3565b905f9161303660016318fb58646004525f5260245f2090565b9068fbb67fda52d4bfb8bf8114611444578015613122575b811991825491816020528215613096575b805f5260405f2092835415613075575050505050565b9091929394955060011c8092015560010180915560011b6001179055600190565b91508054801561311957828114612b625760018201805490811561310b575083811461310457600283019182549283156130f55750848314612e61575f52600160405f20555f52600260405f20555f52600360405f205560079161305f565b95505050505091925055600190565b5050505050565b945050505091925055600190565b50555060019150565b5068fbb67fda52d4bfb8bf61304e565b5f5b81518051821015612b6257816131499161239d565b51805173ffffffffffffffffffffffffffffffffffffffff1680613282575030905b6131748561179e565b60ff60c882901c161580613263575b61323b5785925f8073ffffffffffffffffffffffffffffffffffffffff6131e094169460208101936131c060408651930192835190838b8b61444d565b9451915191602083519301915af192836131d861236e565b9586926145da565b158061322e575b6131f45750600101613134565b61322a906040519182917fa5fa8d2b00000000000000000000000000000000000000000000000000000000835260048301610acb565b0390fd5b50602083015115156131e7565b7f3ceb88d9000000000000000000000000000000000000000000000000000000005f5260045ffd5b503073ffffffffffffffffffffffffffffffffffffffff841614613183565b9061316b565b73ffffffffffffffffffffffffffffffffffffffff163081146132dc576102ff90604051906020820152602081526132c16040826108b3565b604051906132ce82610876565b600282526020820152612fe0565b505f90565b801561330e576132f081612f62565b156132dc575f52600360205261330960405f2054613b12565b501590565b50600190565b91909160a08184031261026a576040519060a0820182811067ffffffffffffffff82111761089257604052819381359167ffffffffffffffff831161026a576133636080939284938301610ea4565b84526020810135602085015260408101356040850152606081013561338781610539565b60608501520135910152565b7f010000000000000000000000000000000000000000000000000000000000000081149081156133c1575090565b7f010100000000000000000000000000000000000000000000000000000000000091501490565b6318fb586460045260015f5260245f2090811954918260011c92151590805415600260018301541592015415921561341f57505050565b90919293505f90613445575060019061344057506002906102ff5750600390565b919050565b92915050565b906015820180921161240e57565b906002820180921161240e57565b9190820180921161240e57565b805191908290602001825e015f815290565b9061056260016134c6936040519485917f226368616c6c656e6765223a22000000000000000000000000000000000000006020840152602d830190613474565b7f22000000000000000000000000000000000000000000000000000000000000008152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18101855201836108b3565b80516020101561235c5760400190565b6135339060209392613474565b9081520190565b9081602091031261026a575190565b92919060a081019384517f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8106137485760208201907fff1a2a9176d650e4a99dedb58f1793003935130579fe17b5a3f698ac5b00e6346135b8835160608601516135b28161344b565b916148b6565b6020815191012003613751576135d06135d591613e0f565b613486565b6135ea825160408501516135b2845182613467565b60208151910120906020815191012003613748577f01000000000000000000000000000000000000000000000000000000000000008061365361362d8551613516565b517fff000000000000000000000000000000000000000000000000000000000000001690565b1603613748575f61366d6020925160405191828092613474565b039060025afa15612c785760205f6136a281516136968551611c9f604051938492888401613526565b60405191828092613474565b039060025afa15612c785760805f519101935f808651856136f38551611c9f8a60405194859360208501978c899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa9461370361236e565b8051968061373f575b61371f57506102ff955051905191613e76565b60019661373b965081016020908101955001925061353a915050565b1490565b5086151561370c565b50505050505f90565b5050505050505f90565b5f5260206001815f60025afa51903d1561377157565bfe5b939291906137848484848489613fd0565b9095901561379457505050505090565b6102ff955061408b565b9190915f92604051918151806040146137f6576041146137bd57505050565b602092945060608201515f1a835260408201516060525b5f5201516040526020604060805f60015afa505f6060523d6060185191604052565b5060209294507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040830151601b8160ff1c018552166060526137d4565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110610d6b57565b909163ffffffff60408301351682019263ffffffff84351692602080860195850101910110610d6b57565b905f19820191821161240e57565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255103907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551821161240e57565b9082101561235c570190565b801561240e575f190190565b90929192831161026a579190565b9093929384831161026a57841161026a578101920390565b9080613935575b50505f905f905f905f90565b7f29000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000006139b361398d6139868561388a565b85876138e4565b357fff000000000000000000000000000000000000000000000000000000000000001690565b1603613a59575f5b8181106139ce575b5050505b5f80613929565b6139dc61398d8284866138e4565b7fff0000000000000000000000000000000000000000000000000000000000000081167f280000000000000000000000000000000000000000000000000000000000000003613a4457508015613a3f57613a379082846138fc565b939093929190565b6139c3565b613a4d9061432f565b613a3f576001016139bb565b9081805b613a6a575b5050506139c7565b613a8461398d613a7d839694959661388a565b86866138e4565b7fff0000000000000000000000000000000000000000000000000000000000000081167f290000000000000000000000000000000000000000000000000000000000000003613aed575080613ade85613ae693818761390a565b9590946138fc565b9293929091565b613afa909493929461432f565b613b0d57613b07906138f0565b80613a5d565b613a62565b60a01c64ffffffffff16908115613b2a574282109190565b5f91508190565b8060401c5f52600460205260405f208054915f19831461240e5767ffffffffffffffff91600184019055160361128a57565b909163ffffffff823516820163ffffffff8135169360208083019286010184820110610d6b5761038f919493613834565b60c1610100613ba660405191826108b3565b8181527f290000000000000000000000000000000000000000000000000000000000000060e060208301927f5369676e65644261746368656443616c6c284261746368656443616c6c20626184527f746368656443616c6c2c75696e74323536206e6f6e63652c627974657333322060408201527f6b6579486173682c61646472657373206578656375746f722c75696e7432353660608201527f20646561646c696e65294261746368656443616c6c2843616c6c5b5d2063616c60808201527f6c732c626f6f6c207265766572744f6e4661696c7572652943616c6c2861646460a08201527f7265737320746f2c75696e743235362076616c75652c6279746573206461746160c08201520152209061259c613cc382516146c5565b611c9f6020840151936040810151906080613cf5606083015173ffffffffffffffffffffffffffffffffffffffff1690565b9101519160405196879560208701998a929360a09473ffffffffffffffffffffffffffffffffffffffff93989796929860c086019986526020860152604085015260608401521660808201520152565b9290919260018116613d575750505050565b613da99373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f33dd593c00000000000000000000000000000000000000000000000000000000855260048501612b2e565b0392165afa908115612c78577f33dd593c00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612c4957501603612c21575f808080612b62565b6040516102ff91613e216060836108b3565b604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f6040830152614960565b939190929383158015613f91575b8015613f89575b8015613f5f575b61374857613ea08386614a07565b156137485760405191602083526020808401526020604084015260608301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f60808301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255160a083015260208260c08160055f19fa1561026a577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255194613f599386613f53945181818909940991614ad3565b91613898565b90081590565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551821015613e92565b508115613e8b565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551841015613e84565b9081602091031261026a57516102ff81610e9a565b919093613fe06113458387615372565b8015614078575b61406c575f94611c9f6140269287966040519586946020860198899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa61403561236e565b9080614061575b1561405a578060208061405493518301019101613fbb565b90600190565b505f905f90565b50602081511461403c565b50505050505f90600190565b5061408661134582866153e9565b613fe7565b909392919261409a8486615372565b1580156142c3575b613748577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255161429061373b9561428561429c966140dd615478565b956140e66108e5565b5f81525f60208201525f604082015287526140ff6108e5565b9182526020820152600160408201526141188660200190565b9081526141236108e5565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29681527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f56020820152600160408201526080870190815261427b6141878351615736565b6040890190815261426c61425d61419e8551615736565b6101008c019081526141b38751855190615773565b9560608d019687528c6141d36141cc8a51845190615773565b9160a00190565b528c6141ec6141e58751845190615773565b9160c00190565b528c6142056141fe8951845190615773565b9160e00190565b528c61421f6142178a51855190615773565b916101200190565b528c6142396142318751855190615773565b916101400190565b528c61425361424b8951855190615773565b916101600190565b5251905190615773565b6101808b018181529551615773565b6101a08a015251835190615773565b6101c08801614253565b6101e0850152615792565b818188099309906154be565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551900690565b506142ce81846153e9565b156140a2565b909163ffffffff82351682019263ffffffff843516926020808601958501019101106142fc57565b9150505f5f91565b909163ffffffff60608301351682019263ffffffff843516926020808601958501019101106142fc57565b7fff000000000000000000000000000000000000000000000000000000000000001680159081156143ee575b81156143c4575b811561439a575b8115614373575090565b7f290000000000000000000000000000000000000000000000000000000000000091501490565b7f280000000000000000000000000000000000000000000000000000000000000081149150614369565b7f2c0000000000000000000000000000000000000000000000000000000000000081149150614362565b7f20000000000000000000000000000000000000000000000000000000000000008114915061435b565b91909160408184031261026a5761442e81612aed565b92602082015167ffffffffffffffff811161026a576102ff9201611871565b606095949092919060088416614464575050505050565b5f94965073ffffffffffffffffffffffffffffffffffffffff809493926144d487936040519a8b98899788957fec9b4ee4000000000000000000000000000000000000000000000000000000008752600487015216602485015260448401526080606484015260848301906102b2565b0393165af18015612c78575f925f9161453d575b507fffffffff000000000000000000000000000000000000000000000000000000007fec9b4ee40000000000000000000000000000000000000000000000000000000091931603612c21575f80808080613104565b7fffffffff0000000000000000000000000000000000000000000000000000000093507fec9b4ee400000000000000000000000000000000000000000000000000000000915061459e903d805f833e61459681836108b3565b810190614418565b93909391506144e8565b926102ff94926145cc928552151560208501526080604085015260808401906102b2565b9160608184039101526102b2565b909291601082166145ec575050505050565b5f73ffffffffffffffffffffffffffffffffffffffff60209561463e604051988997889687947fc82b1759000000000000000000000000000000000000000000000000000000008652600486016145a8565b0393165af1908115612c78577fc82b175900000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f916146a6575b501603612c21575f80808080613104565b6146bf915060203d602011612c7157612c6381836108b3565b5f614695565b608060576040516146d76080826108b3565b8181527f6e743235362076616c75652c6279746573206461746129000000000000000000606060208301927f4261746368656443616c6c2843616c6c5b5d2063616c6c732c626f6f6c20726584527f766572744f6e4661696c7572652943616c6c286164647265737320746f2c75696040820152015220908251805194601f1961477961476388610db0565b97614771604051998a6108b3565b808952610db0565b013660208801376060935f5b8351811015614862578061479b6001928661239d565b5160296040516147ab8a826108b3565b8181527f7465732064617461290000000000000000000000000000000000000000000000604060208301927f43616c6c286164647265737320746f2c75696e743235362076616c75652c627984520152209073ffffffffffffffffffffffffffffffffffffffff81511690604060208201519101516020815191012090604051926020840194855260408401528a8301528882015287815261484e60a0826108b3565b51902061485b828b61239d565b5201614785565b509493509461259c9250614893915060209060405161488881611c9f85820180956155cf565b519020930151151590565b604080516020810195865290810193909352151560608301528160808101611c9f565b805160609493929083811115614927575b8181111561491f575b508281106148dd57505050565b6040519450918290039101601f19601f830181165b808301518187015201801561490a57601f19906148f2565b505060408184015f6020820152016040528252565b90505f6148d0565b9250826148c7565b90614939826108fe565b61494660405191826108b3565b828152601f1961495682946108fe565b0190602036910137565b908151156149fd579061498d61498861498161497c84516123de565b613459565b6003900490565b61492f565b916020830190828051019060208201928351945f85525b8381106149b357505050505290565b600360049101916001603f845182828260121c16880101518453828282600c1c16880101518385015382828260061c168801015160028501531685010151600382015301906149a4565b50506102ff611c1d565b6ffffffffeffffffffffffffffffffffff60601b198110801590614ab5575b8015614aa4575b614a9e576ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b818381807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81970991818180090908089180091490565b50505f90565b5080158015614a2d57508115614a2d565b506ffffffffeffffffffffffffffffffffff60601b19821015614a26565b90915f925f9160ff9581158061536a575b61535f57614af283866155fc565b949097881580615357575b615309575b83811c60028460fe1c16015b156152f157600184821c16600284831c60011b1601600181146152a6575b60028114615299575b60031461528e575b5f1990969493929196019460019889975b875f1911614be55750505050505050505060405191606083015260208252602080830152602060408301527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808301526ffffffffeffffffffffffffffffffffff60601b1960a083015260208260c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b199151900990565b6ffffffffeffffffffffffffffffffffff60601b198160029c989a9c9b959697999b09936ffffffffeffffffffffffffffffffffff60601b1985800980956ffffffffeffffffffffffffffffffffff60601b19828409966ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b198a8208908a6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b19906003099c6ffffffffeffffffffffffffffffffffff60601b19908309986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19828009906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199087086ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1981938309906ffffffffeffffffffffffffffffffffff60601b19910891878c1c600116878d1c60011b600216018015615269576001811461521e575b60028114615213575b60031461520a575b8c156151f5578c916ffffffffeffffffffffffffffffffffff60601b198085818d8196090893888203920908948115614fe0575b6ffffffffeffffffffffffffffffffffff60601b19868009986ffffffffeffffffffffffffffffffffff60601b198a9788099d8e976ffffffffeffffffffffffffffffffffff60601b1991099d6ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09866ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b19848009906ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19910991856ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b19910892985f19905b0196949392979597614b4e565b8c8615614fed5750614e42565b989150919a94506ffffffffeffffffffffffffffffffffff60601b198b7fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b198180099283916ffffffffeffffffffffffffffffffffff60601b19838309946ffffffffeffffffffffffffffffffffff60601b1991099d8e916ffffffffeffffffffffffffffffffffff60601b198281038208916ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1990600309926ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19838009906ffffffffeffffffffffffffffffffffff60601b1991089b6ffffffffeffffffffffffffffffffffff60601b199109918b6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b1991086ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b199108925f1990614fd3565b60019c50909a8c98509094505f199150614fd3565b50508183614e0e565b8b92508a9150614e06565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29692507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59150614dfd565b5050505f19906ffffffffeffffffffffffffffffffffff60601b199a949a0393614fd3565b889750859150614b3d565b9697508796859250614b35565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29698507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59250614b2c565b5f1901600184821c16600284831c60011b1601614b0e565b91927fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551919382039008915f9183158061534f575b15614b02575050505050505050505f90565b50600161533d565b508515614afd565b505050505050505f90565b508015614ae4565b9081151591826153bf575b50816153b5575b8161538d575090565b7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89150111590565b8015159150615384565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325511191505f61537d565b6ffffffffeffffffffffffffffffffffff60601b1980807f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b8185817fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81838009080908818580091493109110161690565b6040519061546782610897565b5f6040838281528260208201520152565b6040519061020061548981846108b3565b825f5b82811061549857505050565b6020906154a361545a565b818401520161548c565b90601081101561235c5760051b0190565b5f9392849283929183915b608083106154df575050505061038f9293615a28565b856155ad575b600c6154f18260fc1c90565b1660036154fe8460fe1c90565b1617604061550c82876154ad565b510151615534575b5061552b61552460019260021b90565b9260021b90565b920191906154c9565b959194909782155f146155835750505061554e84836154ad565b515192600161552b6155246040615574602061556a8b8a6154ad565b51015199886154ad565b5101519796995b925050615514565b61552495926001926155a29261559c61552b9a896154ad565b5161587f565b97919690969961557b565b96946155be91946155c493966157f8565b916157f8565b9491939093966154e5565b80516020909101905f5b8181106155e65750505090565b82518452602093840193909201916001016155d9565b91907f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5918015615730578461038f9495831480615727575b156157125750506ffffffffeffffffffffffffffffffffff60601b1982600209916ffffffffeffffffffffffffffffffffff60601b198084800993818080808881818a09950996817fffffffff00000001000000000000000000000000fffffffffffffffffffffffe816001840892080960030981808080867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd0981858009089681600181818c099b099809810393868203900890090890615b45565b90919261571e93615aa7565b92909190615b45565b50818414615655565b50925090565b6157569061574261545a565b5080519060406020820151910151916157f8565b906040519261576484610897565b83526020830152604082015290565b6157569161577f61545a565b508051604060208301519201519261587f565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f6157dd92615bdb565b90156157e65790565b634e487b715f5260126020526024601cfd5b9290916ffffffffeffffffffffffffffffffffff60601b1980918180868009968180808a818080808a800980097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b82039008900908940960020990565b91939092935f945f945f946040810151906ffffffffeffffffffffffffffffffffff60601b198280096ffffffffeffffffffffffffffffffffff60601b19858009926ffffffffeffffffffffffffffffffffff60601b1980878609602085015109916ffffffffeffffffffffffffffffffffff60601b19808681868103818d8189890990090896510991818381039189090890811585151694855f146159c35750505050506001146159315750505050565b6ffffffffeffffffffffffffffffffffff60601b198080809a508699508097985080969381808087819998099d838f94097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b820390089009089409600209905f808080612b62565b929b50935096506ffffffffeffffffffffffffffffffffff60601b1980808080809c9d50809a995080985080969f508b8009809709958a098180876002098103818381038188800908089d098103938c8203900890090895099009905f808080612b62565b92918015615a9d576ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffd615a6f92615bdb565b9190156157e6576ffffffffeffffffffffffffffffffffff60601b1991829081808280098097099509900990565b505090505f905f90565b9392908015615b38576ffffffffeffffffffffffffffffffffff60601b19806001969481808080809a9881809981039d8e920908938160018b820392090881818009998a9182099809918180898180877fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09818381038188800908089c09938b820390080908946001099260010990565b5092509190600190600190565b9092919260405192602084526020808501526020604085015260608401527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808401526ffffffffeffffffffffffffffffffffff60601b1960a084015260208360c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b198093918180935180920995098009900991565b91908115615c16576020925f9260c0926040519286845286808501528660408501526060840152608083015260a082015260055afa905f5190565b5050505f905f9056fea164736f6c634300081d000a",
- "nonce": "0x4",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000b31f66aa3c1e785363f0875a1b74e27b85fd66c70000000000000000000000009e5a52f57b3038f1b8eee45f28b3c1967e22799c000000000000000000000000740b1c1de25031c31ff4fc9a62f554a55cdc1bad96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5400000000000000000000000006380c0e0912312b5150364b9dc4542ba0dbbc85000000000000000000000000655c406ebfa14ee2006250925e54ec43ad184f8b000000000000000000000000b74b1f14d2754acfcbbe1a221023a5cf50ab8acd0000000000000000000000005302086a3a25d473aabbd0356eff8dd811a4d89b",
+ "nonce": "0x8",
"chainId": "0xa86a"
},
"additionalContracts": [],
@@ -22,25 +24,25 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0x4e5d40",
+ "cumulativeGasUsed": "0x70714c",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0x907c1f3160e38dacc5a8fd5077009b3f9ddcadd0221a7272cd8659b1df5a968f",
- "transactionIndex": "0x0",
- "blockHash": "0x77e900b56d720fcc2f29e676c35180f13c70df437d7c6c50186bd19b2bf043cf",
- "blockNumber": "0x3b1b2e1",
- "gasUsed": "0x4e5d40",
- "effectiveGasPrice": "0x1601243d",
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "transactionHash": "0x817e32060d0ae01625bbd4e88590012453f4ad21a62e1d40d18ba967505e53d7",
+ "transactionIndex": "0x1e",
+ "blockHash": "0x473f6393df84091c0cb7539a84602b9f0b479d94d046ab29d6dbd020c6e5b905",
+ "blockNumber": "0x44e83e7",
+ "gasUsed": "0x4890d5",
+ "effectiveGasPrice": "0x1a85efed",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": "0x458f5a9f47a01bea5d7a32662660559d9ed3312c"
+ "contractAddress": "0x0cf1f86b331a03179646341d10a2a87515087221"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1747174972,
+ "timestamp": 1763597658826,
"chain": 43114,
- "commit": "ae93235"
+ "commit": "6ce39dd"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/480/run-1763598501223.json b/broadcast/Deploy-all.s.sol/480/run-1763598501223.json
new file mode 100644
index 00000000..30279ab7
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/480/run-1763598501223.json
@@ -0,0 +1,54 @@
+{
+ "transactions": [
+ {
+ "hash": "0x9a8b1f8588f1dfd12e133c1cf8cb375871d8f4d681796d1ddc68266c85eb20bf",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x03c4f6b55733cdf3caa07c01e5b83ddee3381f60",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0x7a5028BDa40e7B173C278C5342087826455ea25a, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0xb1860D529182ac3BC1F51Fa2ABd56662b7D13f33, 0xec12a9F9a09f50550686363766Cc153D03c27b5e, 0xC585E0f504613b5fBf874F21Af14c65260fB41fA, 0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000007a5028bda40e7b173c278c5342087826455ea25a96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000b1860d529182ac3bc1f51fa2abd56662b7d13f33000000000000000000000000ec12a9f9a09f50550686363766cc153d03c27b5e000000000000000000000000c585e0f504613b5fbf874f21af14c65260fb41fa00000000000000000000000009aea4b2242abc8bb4bb78d537a67a245a7bec64",
+ "nonce": "0x8",
+ "chainId": "0x1e0"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x1644bd4",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0x9a8b1f8588f1dfd12e133c1cf8cb375871d8f4d681796d1ddc68266c85eb20bf",
+ "transactionIndex": "0x19",
+ "blockHash": "0xeed626dacb367667d2c4ec63b1e09cd7141e4594efe53e9691b35692890b5872",
+ "blockNumber": "0x151b2da",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x187a4",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0x03c4f6b55733cdf3caa07c01e5b83ddee3381f60",
+ "l1BaseFeeScalar": "0x21f9",
+ "l1BlobBaseFee": "0xc5",
+ "l1BlobBaseFeeScalar": "0xdd3ef",
+ "l1Fee": "0x695342483b",
+ "l1GasPrice": "0x1011bf0c",
+ "l1GasUsed": "0x2f1a3"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763598501223,
+ "chain": 480,
+ "commit": "2edf4c0"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/480/run-latest.json b/broadcast/Deploy-all.s.sol/480/run-latest.json
index 1dbe2cbf..30279ab7 100644
--- a/broadcast/Deploy-all.s.sol/480/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/480/run-latest.json
@@ -1,18 +1,20 @@
{
"transactions": [
{
- "hash": "0x702bb225070e09f304b1ddba520a5d58ba1a103a71496774ea7e9dab098ad609",
+ "hash": "0x9a8b1f8588f1dfd12e133c1cf8cb375871d8f4d681796d1ddc68266c85eb20bf",
"transactionType": "CREATE2",
- "contractName": "Calibur",
- "contractAddress": "0x458f5a9f47a01bea5d7a32662660559d9ed3312c",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x03c4f6b55733cdf3caa07c01e5b83ddee3381f60",
"function": null,
- "arguments": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0x7a5028BDa40e7B173C278C5342087826455ea25a, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0xb1860D529182ac3BC1F51Fa2ABd56662b7D13f33, 0xec12a9F9a09f50550686363766Cc153D03c27b5e, 0xC585E0f504613b5fBf874F21Af14c65260fB41fA, 0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64)"
+ ],
"transaction": {
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060e0604052346100ce57604080519081016001600160401b038111828210176100ba576040908152600782526621b0b634b13ab960c91b6020830190815281519182016001600160401b038111838210176100ba57604052600582526020820192640312e302e360dc1b845251902060805251902060a0523060c052604051615c2c90816100d38239608051818181611e990152612532015260a051818181611ebf0152612558015260c05181818161226101526124e40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe60806040526004361015610015575b366125a257005b5f3560e01c80630f3ebf6e1461024457806312aaac701461023f5780631626ba7e1461023a57806319822f7c146102355780631b71bb6e14610230578063219a260d1461022b57806323d578861461022657806325e5c2431461022157806327258b221461021c57806328495877146102175780632abbf4691461021257806330b1fa3b1461020d5780634223b5c2146102085780636575f6aa146102035780636750aa5f146101fe5780636a1ea88d146101f95780637613e7ba146101f4578063786902f2146101ef578063789ff701146101ea57806384b0196e146101e55780638dd7712f146101e057806394430fa5146101db57806399e1d016146101d6578063a58bb84a146101d1578063ac9650d8146101cc578063b70e36f0146101c7578063b75c7dc6146101c2578063b923614f146101bd578063bf7c5be9146101b8578063c3c16ee4146101b3578063d03c7914146101ae578063e41dae2f146101a9578063e9ae5c53146101a4578063f698da251461019f5763fac750e00361000e57611784565b61176a565b6116bf565b611676565b611658565b6114b1565b61146e565b611451565b6112b2565b61118b565b611087565b610f4e565b610f1a565b610d78565b610cbd565b610be7565b610bce565b610bb5565b610b4f565b610b0b565b610adc565b610a72565b6109eb565b61096b565b6107c9565b61076a565b610742565b6106c0565b61063b565b610611565b610564565b6103e5565b610393565b610302565b3461026a57602060031936011261026a57602061026260043561179e565b604051908152f35b5f80fd5b6003111561027857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9060038210156102785752565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b606060206102ff938184526102ef82850182516102a5565b01519160408082015201906102b2565b90565b3461026a57602060031936011261026a5761032d61032160043561191e565b604051918291826102d7565b0390f35b9181601f8401121561026a5782359167ffffffffffffffff831161026a576020838186019501011161026a57565b90604060031983011261026a57600435916024359067ffffffffffffffff821161026a5761038f91600401610331565b9091565b3461026a5760206103ac6103a63661035f565b91611a3b565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b908161012091031261026a5790565b3461026a57606060031936011261026a5760043567ffffffffffffffff811161026a576104169036906004016103d6565b60243560443573ffffffffffffffffffffffffffffffffffffffff61043961229c565b1633036105115761032d92816104e492610501575b5061045d610100820182611bcc565b91909384359161048d61047b6104738689613834565b96909861385f565b959097846104888761191e565b61270a565b926104978161179e565b93156104f4576104de78ffffffffff000000000000000000000000000000000000000085169788955b73ffffffffffffffffffffffffffffffffffffffff1696369161091a565b94612e54565b6040519081529081906020820190565b6104de60019788956104c0565b5f9081803892335af1505f61044e565b7fd663742a000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff81160361026a57565b359061056282610539565b565b3461026a57602060031936011261026a5760043561058181610539565b3033036105e95773ffffffffffffffffffffffffffffffffffffffff167f800000000000000000000000000000000000000000000000000000000000000081175f557fea942933e7fb7cb728727281a81e352a20dda96dbc4ee97633a3fa25da48e4ab5f80a2005b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004355f526004602052602060405f2054604051908152f35b3461026a57604060031936011261026a5760043561065881610539565b602435903033036105e95773ffffffffffffffffffffffffffffffffffffffff1690815f5260056020528060405f20556040519081527f30346eac03b1c5913bb026e6d8d0f42783a0c706bb2a86916410dc385cc2723660203092a360405160018152602090f35b3461026a57604060031936011261026a576004356106dd81610539565b602435903033036105e957806107088373ffffffffffffffffffffffffffffffffffffffff93612f43565b60405192835216907ff8c1385bb618a432aebbaae5bfab911559154982a64e1750b17b50f5782dc98860203092a360405160018152602090f35b3461026a57602060031936011261026a576020610760600435612f62565b6040519015158152f35b3461026a575f60031936011261026a5761032d60405161078b6040826108b3565b601581527f556e69737761702e43616c696275722e312e302e30000000000000000000000060208201526040519182916020835260208301906102b2565b3461026a57602060031936011261026a576004356bffffffffffffffffffffffff811680910361026a573033036105e9577fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060065416176006557f0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d315f80a1005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761089257604052565b610849565b6060810190811067ffffffffffffffff82111761089257604052565b90601f601f19910116810190811067ffffffffffffffff82111761089257604052565b6040519061056260c0836108b3565b604051906105626060836108b3565b6003111561026a57565b67ffffffffffffffff811161089257601f01601f191660200190565b929192610926826108fe565b9161093460405193846108b3565b82948184528183011161026a578281602093845f960137010152565b9080601f8301121561026a578160206102ff9335910161091a565b3461026a57602060031936011261026a5760043567ffffffffffffffff811161026a576040600319823603011261026a576040516109a881610876565b81600401356109b6816108f4565b8152602482013567ffffffffffffffff811161026a576109e99260046109df9236920101610950565b6020820152611c31565b005b3461026a57602060031936011261026a57600435610a07611807565b5080610a1f6318fb586460045260015f5260245f2090565b015490610a2a6133e8565b1115610a4a576103218168fbb67fda52d4bfb8bf61032d9314150261191e565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576020610262600435610a936124a5565b604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9060206102ff9281815201906102b2565b3461026a575f60031936011261026a5761032d610af7611e6e565b6040519182916020835260208301906102b2565b3461026a57602060031936011261026a5777ffffffffffffffffffffffffffffffffffffffffffffffff600435165f526004602052602060405f2054604051908152f35b3461026a575f60031936011261026a5760206040517f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686008152f35b600319606091011261026a57600435610ba181610539565b90602435610bae81610539565b9060443590565b3461026a576020610760610bc836610b89565b91611f02565b3461026a576020610760610be136610b89565b91612034565b3461026a575f60031936011261026a577fff00000000000000000000000000000000000000000000000000000000000000610c6e73ffffffffffffffffffffffffffffffffffffffff610c60610c3b612187565b97946040999397919699949294519a8b9a168a5260e060208b015260e08a01906102b2565b9088820360408a01526102b2565b93606087015216608085015260a084015282810360c0840152602080835192838152019201905f5b818110610ca4575050500390f35b8251845285945060209384019390920191600101610c96565b3461026a57604060031936011261026a5760043567ffffffffffffffff811161026a57610cee9036906004016103d6565b73ffffffffffffffffffffffffffffffffffffffff610d0b61229c565b16330361051157610d4781610d27610100610d3b940182611bcc565b610d3381839693613834565b50508461385f565b50506060810190611bcc565b909160048210610d6b576109e9926004610d6692359382019101610ef4565b613132565b633b99b53d5f526004601cfd5b3461026a575f60031936011261026a576020610d9261229c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b67ffffffffffffffff81116108925760051b60200190565b9080601f8301121561026a57813591610de083610db0565b92610dee60405194856108b3565b80845260208085019160051b8301019183831161026a5760208101915b838310610e1a57505050505090565b823567ffffffffffffffff811161026a578201906060601f19838803011261026a5760405190610e4982610897565b6020830135610e5781610539565b82526040830135602083015260608301359167ffffffffffffffff831161026a57610e8a88602080969581960101610950565b6040820152815201920191610e0b565b8015150361026a57565b91909160408184031261026a5760405190610ebe82610876565b819381359167ffffffffffffffff831161026a57610ee26020939284938301610dc8565b8452013591610ef083610e9a565b0152565b9060208282031261026a57813567ffffffffffffffff811161026a576102ff9201610ea4565b602060031936011261026a5760043567ffffffffffffffff811161026a57610f496109e9913690600401610ea4565b6122f8565b3461026a57604060031936011261026a576004356024353033036105e9578115610fe257610f7b82612f62565b15610fba5760207f55194732cd17a56216773dcef66731844f1900f9b878633e3be2b6cce1e542c991835f52600382528060405f2055604051908152a2005b7fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fb37b2fa0000000000000000000000000000000000000000000000000000000005f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061103c57505050505090565b9091929394602080611078837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516102b2565b9701930193019193929061102d565b602060031936011261026a5760043567ffffffffffffffff811161026a573660238201121561026a5780600401359067ffffffffffffffff821161026a576024810190602436918460051b01011161026a576110e282610db0565b916110f060405193846108b3565b808352601f196110ff82610db0565b015f5b81811061117a5750505f5b818110611122576040518061032d868261100a565b5f8061112f838587612345565b9061113f60405180938193612361565b0390305af461114c61236e565b90156111725790600191611160828761239d565b5261116b818661239d565b500161110d565b602081519101fd5b806060602080938801015201611102565b3461026a57602060031936011261026a576004353033036105e9578060401c805f5260046020526111c760405f205467ffffffffffffffff1690565b9167ffffffffffffffff81169267ffffffffffffffff811684111561128a5767ffffffffffffffff61ffff9185031611611262577f4d9dbebf1d909894d9c26fe228c27cec643b2cb490124e5b658f4edd203c20c19261124c61125d9377ffffffffffffffffffffffffffffffffffffffffffffffff165f52600460205260405f2090565b556040519081529081906020820190565b0390a1005b7f24d35a26000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f756688fe000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004353033036105e957805f906112e66318fb586460045260015f5260245f2090565b9068fbb67fda52d4bfb8bf8414611444578315611434575b811980549182159260011c5f19810191600183811b17946113c857856020525f5260405f209485549283156113b9575f97505f1984010361139b575b505050555561134960015b1590565b610fba57611367611362825f52600260205260405f2090565b612413565b5f818152600360205260408120557fe5af7daed5ab2a2dc5f98d53619f05089c0c14d11a6621f6b906a2366c9a7ab35f80a2005b5f1980849383010154928392010155855260408520555f808061133a565b50505050505050611349901590565b9550505050506001908281541461141857818101838154146114045750600201918254146113fa575060019050611349565b5f61134992551590565b611349935060025f92019081549055551590565b6113499250806002835f93019182548155019081549055551590565b5068fbb67fda52d4bfb8bf6112fe565b63f5a267f15f526004601cfd5b3461026a575f60031936011261026a576020600154604051908152f35b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff6004356114a081610539565b165f526020805f205c604051908152f35b604060031936011261026a5760043567ffffffffffffffff811161026a57806004019060a0600319823603011261026a5760243567ffffffffffffffff811161026a57611502903690600401610331565b91909273ffffffffffffffffffffffffffffffffffffffff606483013561152881610539565b16801590811561164e575b50156105e95760848201358015159081611644575b5061161c5761156a6113459361159a956115656024860135613b31565b613b63565b9691604461158c611587611582999496993689613314565b613b94565b611e62565b96013596866104888961191e565b6115f4576109e994610d66938573ffffffffffffffffffffffffffffffffffffffff6115dd6115e4956115cc8461179e565b956115d687612aa9565b369161091a565b9316613d45565b6115ef369180612472565b610ea4565b7f8baa579f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f0819bdcd000000000000000000000000000000000000000000000000000000005f5260045ffd5b905042115f611548565b905033145f611533565b3461026a57602060031936011261026a576020610760600435613393565b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff6004356116a881610539565b165f526005602052602060405f2054604051908152f35b6116c83661035f565b6116d3839293613393565b156117425782019160208184031261026a5780359067ffffffffffffffff821161026a576109e9937eff000000000000000000000000000000000000000000000000000000000000926117269201610dc8565b916040519261173484610876565b8352161560208201526122f8565b7f7f181275000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a575f60031936011261026a5760206102626124a5565b3461026a575f60031936011261026a5760206102626133e8565b80156117e8576117ad81612f62565b6117d9577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f52600360205260405f205490565b5079010000000000000000000000000000000000000000000000000090565b6040519061181482610876565b60606020835f81520152565b90600182811c92168015611867575b602083101461183a57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f169161182f565b81601f8201121561026a57805190611888826108fe565b9261189660405194856108b3565b8284526020838301011161026a57815f9260208093018386015e8301015290565b60208183031261026a5780519067ffffffffffffffff821161026a570160408183031261026a57604051916118eb83610876565b81516118f6816108f4565b8352602082015167ffffffffffffffff811161026a576119169201611871565b602082015290565b611926611807565b508015611a325761193681612f62565b611962577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f52600260205260405f206040515f82549261197d84611820565b9081845260208401946001811690815f146119f757506001146119ba575b5050816119b06102ff949360209303826108b3565b80510101906118b7565b5f908152602081209092505b8183106119dd5750508101602001816119b061199b565b6001816020929493945483858801015201910191906119c6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686525050151560051b82016020019050816119b061199b565b506102ff6125d8565b9180611b5a5761773961ffff821904028314611b3357611a5a91612847565b9391611a69839694929661191e565b91611a7e8282611a77611e6e565b8887612860565b928315611b17575b50505015611aef57611ac5611acb94611a9e8361179e565b611aa781612aa9565b73ffffffffffffffffffffffffffffffffffffffff1694369161091a565b92612b55565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b505050507fffffffff0000000000000000000000000000000000000000000000000000000090565b611b2b935085611b256124a5565b91612a47565b5f8080611a86565b5050507f773900010000000000000000000000000000000000000000000000000000000090565b90611b658282612612565b611b735790611a5a91612847565b611b7f926104886125d8565b15611ba8577f1626ba7e0000000000000000000000000000000000000000000000000000000090565b7fffffffff0000000000000000000000000000000000000000000000000000000090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561026a570180359067ffffffffffffffff821161026a5760200191813603831361026a57565b60405190611c2c6020836108b3565b5f8252565b3033036105e957805160038110156102785780611c4f60029261026e565b1480611d07575b611cdf577f8df00f8e3bbfb2c3024a60b74e1d4e520f7cbe1da3476726241146ecf6328832611cda611c8783612fe0565b92611cc4604051611cad81611c9f85602083016102d7565b03601f1981018352826108b3565b611cbf865f52600260205260405f2090565b611d97565b611ccd8461301d565b50604051918291826102d7565b0390a2565b7f41e2e8f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b50602081015173ffffffffffffffffffffffffffffffffffffffff611d37825192602080309583010191016126f5565b1614611c56565b818110611d49575050565b5f8155600101611d3e565b9190601f8111611d6357505050565b610562925f5260205f20906020601f840160051c83019310611d8d575b601f0160051c0190611d3e565b9091508190611d80565b919091825167ffffffffffffffff811161089257611dbf81611db98454611820565b84611d54565b6020601f8211600114611dfd578190611dee9394955f92611df2575b50505f198260011b9260031b1c19161790565b9055565b015190505f80611ddb565b601f19821690611e10845f5260205f2090565b915f5b818110611e4a57509583600195969710611e32575b505050811b019055565b01515f1960f88460031b161c191690555f8080611e28565b9192602060018192868b015181550194019201611e13565b6102ff90610a936124a5565b73ffffffffffffffffffffffffffffffffffffffff611e8b612187565b5094509150939150604051937f000000000000000000000000000000000000000000000000000000000000000060208601527f00000000000000000000000000000000000000000000000000000000000000006040860152606085015216608083015260a082015260a081526102ff60c0826108b3565b821561202c5773ffffffffffffffffffffffffffffffffffffffff3091160361200457335f908152602090205c90828210611fdc5781835f1973ffffffffffffffffffffffffffffffffffffffff9410611fca575b505016905f80808084865af1611f6b61236e565b5015611fa2576040519081527f3f1beca043a9fe9118bbaeca0035e81e02d6d7cf184bf32fa9dfbd73fdd027c060203092a3600190565b7fb06a467a000000000000000000000000000000000000000000000000000000005f5260045ffd5b611fd5910333612f43565b5f83611f57565b7fc45cb513000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f7d1c29f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b505050600190565b91905f92821561217e5773ffffffffffffffffffffffffffffffffffffffff3091160361200457335f90815260056020526040902054828110611fdc575f198110612102575b5073ffffffffffffffffffffffffffffffffffffffff16918080808085875af16120a261236e565b50156120da57506040519081527fed1cf8378e55f85e35be72eebdbef1b7347825916e51aa538d1855113f8c259d60203092a3600190565b807fb06a467a0000000000000000000000000000000000000000000000000000000060049252fd5b73ffffffffffffffffffffffffffffffffffffffff919350829003925f93806121493373ffffffffffffffffffffffffffffffffffffffff165f52600560205260405f2090565b5560405190815233907f85b16643b7d42712d1470a1ed9822d6e8cadad23eb1141cabefa28da0944c5b790602090a29061207a565b50505050600190565b7f0f000000000000000000000000000000000000000000000000000000000000009060408051906121b881836108b3565b600782527f43616c6962757200000000000000000000000000000000000000000000000000602083015280516121ee82826108b3565b600581527f312e302e3000000000000000000000000000000000000000000000000000000060208201526006549293909246923092909160a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001617915161228f6020826108b3565b5f80825236602083013790565b5f547f80000000000000000000000000000000000000000000000000000000000000008116156122df5773ffffffffffffffffffffffffffffffffffffffff1690565b50734337084d9e255ff0702461cf8895ce9e3b5ff10890565b61230133613288565b61230a816132e1565b156105e95761056291613132565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9082101561235c5761038f9160051b810190611bcc565b612318565b908092918237015f815290565b3d15612398573d9061237f826108fe565b9161238d60405193846108b3565b82523d5f602084013e565b606090565b805182101561235c5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81160361240e57565b6123b1565b61241d8154611820565b9081612427575050565b81601f5f9311600114612438575055565b8183526020832061245491601f0160051c810190600101611d3e565b808252602082209081548360011b905f198560031b1c191617905555565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18136030182121561026a570190565b60065460a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161760405160208101917fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647283527f000000000000000000000000000000000000000000000000000000000000000060408301527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a083015260c082015260c0815261259c60e0826108b3565b51902090565b5f3560e01c63bc197c81811463f23a6e6182141763150b7a028214176125cf57633c10b94e5f526004601cfd5b6020526020603cf35b6125e0611807565b50604051306020820152602081526125f96040826108b3565b6040519061260682610876565b60028252602082015290565b5060408114908115612622575090565b604191501490565b919082604091031261026a576020825192015190565b60208183031261026a5780359067ffffffffffffffff821161026a57019060c08282031261026a576126706108d6565b91803567ffffffffffffffff811161026a578261268e918301610950565b8352602081013567ffffffffffffffff811161026a5760a0926126b2918301610950565b6020840152604081013560408401526060810135606084015260808101356080840152013560a082015290565b919082604091031261026a576020823592013590565b9081602091031261026a57516102ff81610539565b92600284516127188161026e565b6127218161026e565b0361278a5760206127596127849361275373ffffffffffffffffffffffffffffffffffffffff9661276b95369161091a565b9061379e565b940151602080825183010191016126f5565b73ffffffffffffffffffffffffffffffffffffffff1690565b91161490565b9083516127968161026e565b61279f8161026e565b6127dc576127d7906127cf6127c460206102ff9701516020808251830101910161262a565b9590948101906126df565b92909161375b565b613773565b600184516127e98161026e565b6127f28161026e565b0361283f57611c9f61283a61282561281a60206102ff9801516020808251830101910161262a565b969095810190612640565b92604051928391602083019190602083019252565b613549565b505050505f90565b80359261038f6128578484613834565b9490949361385f565b909193929361286f84866142d4565b949093612886602088013592604089013598614304565b90916128c58985604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b03612a3b576128d391613922565b82959299939199158015612a33575b612a2557611c9f6129c061290d6102ff9c6129056129e396612a1f9b369161091a565b94369161091a565b604051928391605c61294a60208501977f5479706564446174615369676e280000000000000000000000000000000000008952602e860190613474565b7f20636f6e74656e74732c737472696e67206e616d652c737472696e672076657281527f73696f6e2c75696e7432353620636861696e49642c616464726573732076657260208201527f696679696e67436f6e74726163742c627974657333322073616c74290000000060408201520190613474565b51902092611c9f6040519384926020840196875260408401526060830190613474565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9061270a565b505050505050505050505f90565b5080156128e2565b50505050505050505f90565b906102ff949392612a1f91604090601c60208351612a6585826108b3565b828152017f506572736f6e616c5369676e286279746573207072656669786564290000000081522091805191602083019384528183015281526129e36060826108b3565b612ab290613b12565b90612aba5750565b64ffffffffff907f48c76fe1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b51907fffffffff000000000000000000000000000000000000000000000000000000008216820361026a57565b9081602091031261026a576102ff90612aed565b6102ff93926060928252602082015281604082015201906102b2565b6040513d5f823e3d90fd5b9290919260048116612b68575b50505050565b612bba9373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f9ac4eafd00000000000000000000000000000000000000000000000000000000855260048501612b2e565b0392165afa908115612c78577f9ac4eafd00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612c49575b501603612c21575f808080612b62565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b612c6b915060203d602011612c71575b612c6381836108b3565b810190612b1a565b5f612c11565b503d612c59565b612b4a565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561026a57016020813591019167ffffffffffffffff821161026a57813603831361026a57565b601f8260209493601f1993818652868601375f8582860101520116010190565b91612e3c906102ff96949592845260a06020850152612d2c60a08501612d1283610557565b73ffffffffffffffffffffffffffffffffffffffff169052565b602081013560c0850152612e0b612dff612da0612d62612d4f6040860186612c7d565b61012060e08b01526101c08a0191612ccd565b612d6f6060860186612c7d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608a8403016101008b0152612ccd565b608084013561012088015260a084013561014088015260c0840135610160880152612dce60e0850185612c7d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60898403016101808a0152612ccd565b91610100810190612c7d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868403016101a0870152612ccd565b936040830152606082015260808184039101526102b2565b9190939460028316612e69575b505050505050565b602094612ebb73ffffffffffffffffffffffffffffffffffffffff92604051988997889687957f9e364dba00000000000000000000000000000000000000000000000000000000875260048701612ced565b0392165afa908115612c78577f9e364dba00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f24575b501603612c21575f8080808080612e61565b612f3d915060203d602011612c7157612c6381836108b3565b5f612f12565b73ffffffffffffffffffffffffffffffffffffffff165f5260205f205d565b612f7860016318fb58646004525f5260245f2090565b68fbb67fda52d4bfb8bf8214611444578115612fcf575b80195415612fa6576020525f5260405f2054151590565b9060019181815414612fca57818382015414612fca5760020154146102ff57505f90565b505090565b68fbb67fda52d4bfb8bf9150612f8f565b8051906003821015610278576020015160208151910120604051906130096020830180946102a5565b60408201526040815261259c6060826108b3565b905f9161303660016318fb58646004525f5260245f2090565b9068fbb67fda52d4bfb8bf8114611444578015613122575b811991825491816020528215613096575b805f5260405f2092835415613075575050505050565b9091929394955060011c8092015560010180915560011b6001179055600190565b91508054801561311957828114612b625760018201805490811561310b575083811461310457600283019182549283156130f55750848314612e61575f52600160405f20555f52600260405f20555f52600360405f205560079161305f565b95505050505091925055600190565b5050505050565b945050505091925055600190565b50555060019150565b5068fbb67fda52d4bfb8bf61304e565b5f5b81518051821015612b6257816131499161239d565b51805173ffffffffffffffffffffffffffffffffffffffff1680613282575030905b6131748561179e565b60ff60c882901c161580613263575b61323b5785925f8073ffffffffffffffffffffffffffffffffffffffff6131e094169460208101936131c060408651930192835190838b8b61444d565b9451915191602083519301915af192836131d861236e565b9586926145da565b158061322e575b6131f45750600101613134565b61322a906040519182917fa5fa8d2b00000000000000000000000000000000000000000000000000000000835260048301610acb565b0390fd5b50602083015115156131e7565b7f3ceb88d9000000000000000000000000000000000000000000000000000000005f5260045ffd5b503073ffffffffffffffffffffffffffffffffffffffff841614613183565b9061316b565b73ffffffffffffffffffffffffffffffffffffffff163081146132dc576102ff90604051906020820152602081526132c16040826108b3565b604051906132ce82610876565b600282526020820152612fe0565b505f90565b801561330e576132f081612f62565b156132dc575f52600360205261330960405f2054613b12565b501590565b50600190565b91909160a08184031261026a576040519060a0820182811067ffffffffffffffff82111761089257604052819381359167ffffffffffffffff831161026a576133636080939284938301610ea4565b84526020810135602085015260408101356040850152606081013561338781610539565b60608501520135910152565b7f010000000000000000000000000000000000000000000000000000000000000081149081156133c1575090565b7f010100000000000000000000000000000000000000000000000000000000000091501490565b6318fb586460045260015f5260245f2090811954918260011c92151590805415600260018301541592015415921561341f57505050565b90919293505f90613445575060019061344057506002906102ff5750600390565b919050565b92915050565b906015820180921161240e57565b906002820180921161240e57565b9190820180921161240e57565b805191908290602001825e015f815290565b9061056260016134c6936040519485917f226368616c6c656e6765223a22000000000000000000000000000000000000006020840152602d830190613474565b7f22000000000000000000000000000000000000000000000000000000000000008152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18101855201836108b3565b80516020101561235c5760400190565b6135339060209392613474565b9081520190565b9081602091031261026a575190565b92919060a081019384517f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8106137485760208201907fff1a2a9176d650e4a99dedb58f1793003935130579fe17b5a3f698ac5b00e6346135b8835160608601516135b28161344b565b916148b6565b6020815191012003613751576135d06135d591613e0f565b613486565b6135ea825160408501516135b2845182613467565b60208151910120906020815191012003613748577f01000000000000000000000000000000000000000000000000000000000000008061365361362d8551613516565b517fff000000000000000000000000000000000000000000000000000000000000001690565b1603613748575f61366d6020925160405191828092613474565b039060025afa15612c785760205f6136a281516136968551611c9f604051938492888401613526565b60405191828092613474565b039060025afa15612c785760805f519101935f808651856136f38551611c9f8a60405194859360208501978c899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa9461370361236e565b8051968061373f575b61371f57506102ff955051905191613e76565b60019661373b965081016020908101955001925061353a915050565b1490565b5086151561370c565b50505050505f90565b5050505050505f90565b5f5260206001815f60025afa51903d1561377157565bfe5b939291906137848484848489613fd0565b9095901561379457505050505090565b6102ff955061408b565b9190915f92604051918151806040146137f6576041146137bd57505050565b602092945060608201515f1a835260408201516060525b5f5201516040526020604060805f60015afa505f6060523d6060185191604052565b5060209294507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040830151601b8160ff1c018552166060526137d4565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110610d6b57565b909163ffffffff60408301351682019263ffffffff84351692602080860195850101910110610d6b57565b905f19820191821161240e57565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255103907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551821161240e57565b9082101561235c570190565b801561240e575f190190565b90929192831161026a579190565b9093929384831161026a57841161026a578101920390565b9080613935575b50505f905f905f905f90565b7f29000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000006139b361398d6139868561388a565b85876138e4565b357fff000000000000000000000000000000000000000000000000000000000000001690565b1603613a59575f5b8181106139ce575b5050505b5f80613929565b6139dc61398d8284866138e4565b7fff0000000000000000000000000000000000000000000000000000000000000081167f280000000000000000000000000000000000000000000000000000000000000003613a4457508015613a3f57613a379082846138fc565b939093929190565b6139c3565b613a4d9061432f565b613a3f576001016139bb565b9081805b613a6a575b5050506139c7565b613a8461398d613a7d839694959661388a565b86866138e4565b7fff0000000000000000000000000000000000000000000000000000000000000081167f290000000000000000000000000000000000000000000000000000000000000003613aed575080613ade85613ae693818761390a565b9590946138fc565b9293929091565b613afa909493929461432f565b613b0d57613b07906138f0565b80613a5d565b613a62565b60a01c64ffffffffff16908115613b2a574282109190565b5f91508190565b8060401c5f52600460205260405f208054915f19831461240e5767ffffffffffffffff91600184019055160361128a57565b909163ffffffff823516820163ffffffff8135169360208083019286010184820110610d6b5761038f919493613834565b60c1610100613ba660405191826108b3565b8181527f290000000000000000000000000000000000000000000000000000000000000060e060208301927f5369676e65644261746368656443616c6c284261746368656443616c6c20626184527f746368656443616c6c2c75696e74323536206e6f6e63652c627974657333322060408201527f6b6579486173682c61646472657373206578656375746f722c75696e7432353660608201527f20646561646c696e65294261746368656443616c6c2843616c6c5b5d2063616c60808201527f6c732c626f6f6c207265766572744f6e4661696c7572652943616c6c2861646460a08201527f7265737320746f2c75696e743235362076616c75652c6279746573206461746160c08201520152209061259c613cc382516146c5565b611c9f6020840151936040810151906080613cf5606083015173ffffffffffffffffffffffffffffffffffffffff1690565b9101519160405196879560208701998a929360a09473ffffffffffffffffffffffffffffffffffffffff93989796929860c086019986526020860152604085015260608401521660808201520152565b9290919260018116613d575750505050565b613da99373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f33dd593c00000000000000000000000000000000000000000000000000000000855260048501612b2e565b0392165afa908115612c78577f33dd593c00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612c4957501603612c21575f808080612b62565b6040516102ff91613e216060836108b3565b604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f6040830152614960565b939190929383158015613f91575b8015613f89575b8015613f5f575b61374857613ea08386614a07565b156137485760405191602083526020808401526020604084015260608301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f60808301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255160a083015260208260c08160055f19fa1561026a577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255194613f599386613f53945181818909940991614ad3565b91613898565b90081590565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551821015613e92565b508115613e8b565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551841015613e84565b9081602091031261026a57516102ff81610e9a565b919093613fe06113458387615372565b8015614078575b61406c575f94611c9f6140269287966040519586946020860198899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa61403561236e565b9080614061575b1561405a578060208061405493518301019101613fbb565b90600190565b505f905f90565b50602081511461403c565b50505050505f90600190565b5061408661134582866153e9565b613fe7565b909392919261409a8486615372565b1580156142c3575b613748577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255161429061373b9561428561429c966140dd615478565b956140e66108e5565b5f81525f60208201525f604082015287526140ff6108e5565b9182526020820152600160408201526141188660200190565b9081526141236108e5565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29681527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f56020820152600160408201526080870190815261427b6141878351615736565b6040890190815261426c61425d61419e8551615736565b6101008c019081526141b38751855190615773565b9560608d019687528c6141d36141cc8a51845190615773565b9160a00190565b528c6141ec6141e58751845190615773565b9160c00190565b528c6142056141fe8951845190615773565b9160e00190565b528c61421f6142178a51855190615773565b916101200190565b528c6142396142318751855190615773565b916101400190565b528c61425361424b8951855190615773565b916101600190565b5251905190615773565b6101808b018181529551615773565b6101a08a015251835190615773565b6101c08801614253565b6101e0850152615792565b818188099309906154be565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551900690565b506142ce81846153e9565b156140a2565b909163ffffffff82351682019263ffffffff843516926020808601958501019101106142fc57565b9150505f5f91565b909163ffffffff60608301351682019263ffffffff843516926020808601958501019101106142fc57565b7fff000000000000000000000000000000000000000000000000000000000000001680159081156143ee575b81156143c4575b811561439a575b8115614373575090565b7f290000000000000000000000000000000000000000000000000000000000000091501490565b7f280000000000000000000000000000000000000000000000000000000000000081149150614369565b7f2c0000000000000000000000000000000000000000000000000000000000000081149150614362565b7f20000000000000000000000000000000000000000000000000000000000000008114915061435b565b91909160408184031261026a5761442e81612aed565b92602082015167ffffffffffffffff811161026a576102ff9201611871565b606095949092919060088416614464575050505050565b5f94965073ffffffffffffffffffffffffffffffffffffffff809493926144d487936040519a8b98899788957fec9b4ee4000000000000000000000000000000000000000000000000000000008752600487015216602485015260448401526080606484015260848301906102b2565b0393165af18015612c78575f925f9161453d575b507fffffffff000000000000000000000000000000000000000000000000000000007fec9b4ee40000000000000000000000000000000000000000000000000000000091931603612c21575f80808080613104565b7fffffffff0000000000000000000000000000000000000000000000000000000093507fec9b4ee400000000000000000000000000000000000000000000000000000000915061459e903d805f833e61459681836108b3565b810190614418565b93909391506144e8565b926102ff94926145cc928552151560208501526080604085015260808401906102b2565b9160608184039101526102b2565b909291601082166145ec575050505050565b5f73ffffffffffffffffffffffffffffffffffffffff60209561463e604051988997889687947fc82b1759000000000000000000000000000000000000000000000000000000008652600486016145a8565b0393165af1908115612c78577fc82b175900000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f916146a6575b501603612c21575f80808080613104565b6146bf915060203d602011612c7157612c6381836108b3565b5f614695565b608060576040516146d76080826108b3565b8181527f6e743235362076616c75652c6279746573206461746129000000000000000000606060208301927f4261746368656443616c6c2843616c6c5b5d2063616c6c732c626f6f6c20726584527f766572744f6e4661696c7572652943616c6c286164647265737320746f2c75696040820152015220908251805194601f1961477961476388610db0565b97614771604051998a6108b3565b808952610db0565b013660208801376060935f5b8351811015614862578061479b6001928661239d565b5160296040516147ab8a826108b3565b8181527f7465732064617461290000000000000000000000000000000000000000000000604060208301927f43616c6c286164647265737320746f2c75696e743235362076616c75652c627984520152209073ffffffffffffffffffffffffffffffffffffffff81511690604060208201519101516020815191012090604051926020840194855260408401528a8301528882015287815261484e60a0826108b3565b51902061485b828b61239d565b5201614785565b509493509461259c9250614893915060209060405161488881611c9f85820180956155cf565b519020930151151590565b604080516020810195865290810193909352151560608301528160808101611c9f565b805160609493929083811115614927575b8181111561491f575b508281106148dd57505050565b6040519450918290039101601f19601f830181165b808301518187015201801561490a57601f19906148f2565b505060408184015f6020820152016040528252565b90505f6148d0565b9250826148c7565b90614939826108fe565b61494660405191826108b3565b828152601f1961495682946108fe565b0190602036910137565b908151156149fd579061498d61498861498161497c84516123de565b613459565b6003900490565b61492f565b916020830190828051019060208201928351945f85525b8381106149b357505050505290565b600360049101916001603f845182828260121c16880101518453828282600c1c16880101518385015382828260061c168801015160028501531685010151600382015301906149a4565b50506102ff611c1d565b6ffffffffeffffffffffffffffffffffff60601b198110801590614ab5575b8015614aa4575b614a9e576ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b818381807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81970991818180090908089180091490565b50505f90565b5080158015614a2d57508115614a2d565b506ffffffffeffffffffffffffffffffffff60601b19821015614a26565b90915f925f9160ff9581158061536a575b61535f57614af283866155fc565b949097881580615357575b615309575b83811c60028460fe1c16015b156152f157600184821c16600284831c60011b1601600181146152a6575b60028114615299575b60031461528e575b5f1990969493929196019460019889975b875f1911614be55750505050505050505060405191606083015260208252602080830152602060408301527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808301526ffffffffeffffffffffffffffffffffff60601b1960a083015260208260c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b199151900990565b6ffffffffeffffffffffffffffffffffff60601b198160029c989a9c9b959697999b09936ffffffffeffffffffffffffffffffffff60601b1985800980956ffffffffeffffffffffffffffffffffff60601b19828409966ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b198a8208908a6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b19906003099c6ffffffffeffffffffffffffffffffffff60601b19908309986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19828009906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199087086ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1981938309906ffffffffeffffffffffffffffffffffff60601b19910891878c1c600116878d1c60011b600216018015615269576001811461521e575b60028114615213575b60031461520a575b8c156151f5578c916ffffffffeffffffffffffffffffffffff60601b198085818d8196090893888203920908948115614fe0575b6ffffffffeffffffffffffffffffffffff60601b19868009986ffffffffeffffffffffffffffffffffff60601b198a9788099d8e976ffffffffeffffffffffffffffffffffff60601b1991099d6ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09866ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b19848009906ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19910991856ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b19910892985f19905b0196949392979597614b4e565b8c8615614fed5750614e42565b989150919a94506ffffffffeffffffffffffffffffffffff60601b198b7fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b198180099283916ffffffffeffffffffffffffffffffffff60601b19838309946ffffffffeffffffffffffffffffffffff60601b1991099d8e916ffffffffeffffffffffffffffffffffff60601b198281038208916ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1990600309926ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19838009906ffffffffeffffffffffffffffffffffff60601b1991089b6ffffffffeffffffffffffffffffffffff60601b199109918b6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b1991086ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b199108925f1990614fd3565b60019c50909a8c98509094505f199150614fd3565b50508183614e0e565b8b92508a9150614e06565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29692507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59150614dfd565b5050505f19906ffffffffeffffffffffffffffffffffff60601b199a949a0393614fd3565b889750859150614b3d565b9697508796859250614b35565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29698507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59250614b2c565b5f1901600184821c16600284831c60011b1601614b0e565b91927fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551919382039008915f9183158061534f575b15614b02575050505050505050505f90565b50600161533d565b508515614afd565b505050505050505f90565b508015614ae4565b9081151591826153bf575b50816153b5575b8161538d575090565b7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89150111590565b8015159150615384565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325511191505f61537d565b6ffffffffeffffffffffffffffffffffff60601b1980807f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b8185817fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81838009080908818580091493109110161690565b6040519061546782610897565b5f6040838281528260208201520152565b6040519061020061548981846108b3565b825f5b82811061549857505050565b6020906154a361545a565b818401520161548c565b90601081101561235c5760051b0190565b5f9392849283929183915b608083106154df575050505061038f9293615a28565b856155ad575b600c6154f18260fc1c90565b1660036154fe8460fe1c90565b1617604061550c82876154ad565b510151615534575b5061552b61552460019260021b90565b9260021b90565b920191906154c9565b959194909782155f146155835750505061554e84836154ad565b515192600161552b6155246040615574602061556a8b8a6154ad565b51015199886154ad565b5101519796995b925050615514565b61552495926001926155a29261559c61552b9a896154ad565b5161587f565b97919690969961557b565b96946155be91946155c493966157f8565b916157f8565b9491939093966154e5565b80516020909101905f5b8181106155e65750505090565b82518452602093840193909201916001016155d9565b91907f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5918015615730578461038f9495831480615727575b156157125750506ffffffffeffffffffffffffffffffffff60601b1982600209916ffffffffeffffffffffffffffffffffff60601b198084800993818080808881818a09950996817fffffffff00000001000000000000000000000000fffffffffffffffffffffffe816001840892080960030981808080867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd0981858009089681600181818c099b099809810393868203900890090890615b45565b90919261571e93615aa7565b92909190615b45565b50818414615655565b50925090565b6157569061574261545a565b5080519060406020820151910151916157f8565b906040519261576484610897565b83526020830152604082015290565b6157569161577f61545a565b508051604060208301519201519261587f565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f6157dd92615bdb565b90156157e65790565b634e487b715f5260126020526024601cfd5b9290916ffffffffeffffffffffffffffffffffff60601b1980918180868009968180808a818080808a800980097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b82039008900908940960020990565b91939092935f945f945f946040810151906ffffffffeffffffffffffffffffffffff60601b198280096ffffffffeffffffffffffffffffffffff60601b19858009926ffffffffeffffffffffffffffffffffff60601b1980878609602085015109916ffffffffeffffffffffffffffffffffff60601b19808681868103818d8189890990090896510991818381039189090890811585151694855f146159c35750505050506001146159315750505050565b6ffffffffeffffffffffffffffffffffff60601b198080809a508699508097985080969381808087819998099d838f94097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b820390089009089409600209905f808080612b62565b929b50935096506ffffffffeffffffffffffffffffffffff60601b1980808080809c9d50809a995080985080969f508b8009809709958a098180876002098103818381038188800908089d098103938c8203900890090895099009905f808080612b62565b92918015615a9d576ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffd615a6f92615bdb565b9190156157e6576ffffffffeffffffffffffffffffffffff60601b1991829081808280098097099509900990565b505090505f905f90565b9392908015615b38576ffffffffeffffffffffffffffffffffff60601b19806001969481808080809a9881809981039d8e920908938160018b820392090881818009998a9182099809918180898180877fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09818381038188800908089c09938b820390080908946001099260010990565b5092509190600190600190565b9092919260405192602084526020808501526020604085015260608401527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808401526ffffffffeffffffffffffffffffffffff60601b1960a084015260208360c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b198093918180935180920995098009900991565b91908115615c16576020925f9260c0926040519286845286808501528660408501526060840152608083015260a082015260055afa905f5190565b5050505f905f9056fea164736f6c634300081d000a",
- "nonce": "0x4",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000007a5028bda40e7b173c278c5342087826455ea25a96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000b1860d529182ac3bc1f51fa2abd56662b7d13f33000000000000000000000000ec12a9f9a09f50550686363766cc153d03c27b5e000000000000000000000000c585e0f504613b5fbf874f21af14c65260fb41fa00000000000000000000000009aea4b2242abc8bb4bb78d537a67a245a7bec64",
+ "nonce": "0x8",
"chainId": "0x1e0"
},
"additionalContracts": [],
@@ -22,31 +24,31 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0x186792d",
+ "cumulativeGasUsed": "0x1644bd4",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0x702bb225070e09f304b1ddba520a5d58ba1a103a71496774ea7e9dab098ad609",
- "transactionIndex": "0x46",
- "blockHash": "0x7d8e1d5dddfab53a9ad15f437f823aef196a9fc80c1f6906c8508ff54fad3915",
- "blockNumber": "0xd46560",
- "gasUsed": "0x4e5d40",
- "effectiveGasPrice": "0x13c7f",
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "transactionHash": "0x9a8b1f8588f1dfd12e133c1cf8cb375871d8f4d681796d1ddc68266c85eb20bf",
+ "transactionIndex": "0x19",
+ "blockHash": "0xeed626dacb367667d2c4ec63b1e09cd7141e4594efe53e9691b35692890b5872",
+ "blockNumber": "0x151b2da",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x187a4",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": "0x458f5a9f47a01bea5d7a32662660559d9ed3312c",
+ "contractAddress": "0x03c4f6b55733cdf3caa07c01e5b83ddee3381f60",
"l1BaseFeeScalar": "0x21f9",
- "l1BlobBaseFee": "0x1",
+ "l1BlobBaseFee": "0xc5",
"l1BlobBaseFeeScalar": "0xdd3ef",
- "l1Fee": "0x3811ef7164f",
- "l1GasPrice": "0x8cc79255",
- "l1GasUsed": "0x2dcb9"
+ "l1Fee": "0x695342483b",
+ "l1GasPrice": "0x1011bf0c",
+ "l1GasUsed": "0x2f1a3"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1747174830,
+ "timestamp": 1763598501223,
"chain": 480,
- "commit": "ae93235"
+ "commit": "2edf4c0"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/56/run-1763597197912.json b/broadcast/Deploy-all.s.sol/56/run-1763597197912.json
new file mode 100644
index 00000000..1ca3ff30
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/56/run-1763597197912.json
@@ -0,0 +1,48 @@
+{
+ "transactions": [
+ {
+ "hash": "0xe4edb2ceb31c31b61d424262b0c872cabb785a7561e190d95138d520cfb050f7",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x91bf3bfaef8d771a74e1a8fe460b3ee646b2e588",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c, 0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6, 0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x28e2Ea090877bF75740558f6BFB36A5ffeE9e9dF, 0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613, 0x7A4a5c919aE2541AeD11041A1AEeE68f1287f95b, 0x4e8E101924eDE233C13e2D8622DC8aED2872d505)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000008909dc15e40173ff4699343b6eb8132c65e18ec6000000000000000000000000db1d10011ad0ff90774d0c6bb92e5c5c8b4461f796e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5400000000000000000000000028e2ea090877bf75740558f6bfb36a5ffee9e9df0000000000000000000000007b8a01b39d58278b5de7e48c8449c9f4f51706130000000000000000000000007a4a5c919ae2541aed11041a1aeee68f1287f95b0000000000000000000000004e8e101924ede233c13e2d8622dc8aed2872d505",
+ "nonce": "0x9",
+ "chainId": "0x38"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0xe4c196",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0xe4edb2ceb31c31b61d424262b0c872cabb785a7561e190d95138d520cfb050f7",
+ "transactionIndex": "0x4b",
+ "blockHash": "0x883cb6c05c46b33301942239532ea20b17290d4f5cc7331b85cc828dc0a63dfe",
+ "blockNumber": "0x419b878",
+ "gasUsed": "0x4890e1",
+ "effectiveGasPrice": "0x2faf080",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0x91bf3bfaef8d771a74e1a8fe460b3ee646b2e588"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763597197912,
+ "chain": 56,
+ "commit": "bbe3fc0"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/56/run-latest.json b/broadcast/Deploy-all.s.sol/56/run-latest.json
index bbc1df9d..1ca3ff30 100644
--- a/broadcast/Deploy-all.s.sol/56/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/56/run-latest.json
@@ -1,20 +1,20 @@
{
"transactions": [
{
- "hash": "0x0c92f6e93d802df807922c4524739f25bd6ab25051c7cc655d3700cb83087165",
+ "hash": "0xe4edb2ceb31c31b61d424262b0c872cabb785a7561e190d95138d520cfb050f7",
"transactionType": "CREATE2",
- "contractName": "ERC7914Detector",
- "contractAddress": "0xc470458fc6a7e43471b31e6a2eb2612215a7102e",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x91bf3bfaef8d771a74e1a8fe460b3ee646b2e588",
"function": null,
"arguments": [
- "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00"
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c, 0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6, 0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x28e2Ea090877bF75740558f6BFB36A5ffeE9e9dF, 0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613, 0x7A4a5c919aE2541AeD11041A1AEeE68f1287f95b, 0x4e8E101924eDE233C13e2D8622DC8aED2872d505)"
],
"transaction": {
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b506040516103c53803806103c583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610335610090600039600081816068015260d301526103356000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806337e276381461003b57806385bb2fa814610063575b600080fd5b61004e6100493660046102b7565b6100a2565b60405190151581526020015b60405180910390f35b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161005a565b6000813b8082036100b65750600092915050565b6100bf83610135565b156101255760006100cf84610172565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610114575060019392505050565b61011d81610191565b949350505050565b61012e83610191565b9392505050565b60006017826001600160a01b03163b101561015257506000919050565b61ef0160f01b610161836102a6565b6001600160e81b0319161492915050565b60008061017e836102a6565b60481c6001600160a01b03169392505050565b6040805160006024820181905260448201819052606480830182905283518084039091018152608490920183526020820180516001600160e01b031663789ff70160e01b9081179091529251909291839182916001600160a01b038716916101f991906102e0565b600060405180830381855afa9150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b509150915081801561024c575080516020145b1561027f57600081806020019051810190610267919061030f565b90506001811161027d5750600195945050505050565b505b81801561028b57508051155b1561029b57506000949350505050565b506000949350505050565b60006017600080843c505060005190565b6000602082840312156102c957600080fd5b81356001600160a01b038116811461012e57600080fd5b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b60006020828403121561032157600080fd5b505191905056fea164736f6c6343000813000a000000000000000000000000000000009b1d0af20d8c6d0a44e162d11f9b8f00",
- "nonce": "0x2",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0000000000000000000000008909dc15e40173ff4699343b6eb8132c65e18ec6000000000000000000000000db1d10011ad0ff90774d0c6bb92e5c5c8b4461f796e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5400000000000000000000000028e2ea090877bf75740558f6bfb36a5ffee9e9df0000000000000000000000007b8a01b39d58278b5de7e48c8449c9f4f51706130000000000000000000000007a4a5c919ae2541aed11041a1aeee68f1287f95b0000000000000000000000004e8e101924ede233c13e2d8622dc8aed2872d505",
+ "nonce": "0x9",
"chainId": "0x38"
},
"additionalContracts": [],
@@ -24,25 +24,25 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0xec50a8",
+ "cumulativeGasUsed": "0xe4c196",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "type": "0x0",
- "transactionHash": "0x0c92f6e93d802df807922c4524739f25bd6ab25051c7cc655d3700cb83087165",
- "transactionIndex": "0x76",
- "blockHash": "0xb6c5f2455d412812caae8ec1e7687aa4fa275f8927d649a4bd9f03227f750c22",
- "blockNumber": "0x388d4ef",
- "gasUsed": "0x38cb0",
- "effectiveGasPrice": "0x5f5e100",
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "type": "0x2",
+ "transactionHash": "0xe4edb2ceb31c31b61d424262b0c872cabb785a7561e190d95138d520cfb050f7",
+ "transactionIndex": "0x4b",
+ "blockHash": "0x883cb6c05c46b33301942239532ea20b17290d4f5cc7331b85cc828dc0a63dfe",
+ "blockNumber": "0x419b878",
+ "gasUsed": "0x4890e1",
+ "effectiveGasPrice": "0x2faf080",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": null
+ "contractAddress": "0x91bf3bfaef8d771a74e1a8fe460b3ee646b2e588"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1756472573,
+ "timestamp": 1763597197912,
"chain": 56,
- "commit": "320811c"
+ "commit": "bbe3fc0"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/7777777/run-1763598202363.json b/broadcast/Deploy-all.s.sol/7777777/run-1763598202363.json
new file mode 100644
index 00000000..117b82fd
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/7777777/run-1763598202363.json
@@ -0,0 +1,54 @@
+{
+ "transactions": [
+ {
+ "hash": "0x3c0e6d82d894be7b7ae4368f035329b1d29ced58d40b814543d669e0007415f3",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x880853091b60f80301a0c1d2f9893c4993041295",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x0F797dC7efaEA995bB916f268D919d0a1950eE3C, 0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x0575338e4C17006aE181B47900A84404247CA30f, 0xbC91e8DfA3fF18De43853372A3d7dfe585137D78, 0xf66C7b99e2040f0D9b326B3b7c152E9663543D63, 0x13fDac9F9b4777705db45291bbFF3c972c6d1d97)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000f797dc7efaea995bb916f268d919d0a1950ee3c0000000000000000000000007145f8aeef1f6510e92164038e1b6f8cb2c42cbb96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000000575338e4c17006ae181b47900a84404247ca30f000000000000000000000000bc91e8dfa3ff18de43853372a3d7dfe585137d78000000000000000000000000f66c7b99e2040f0d9b326b3b7c152e9663543d6300000000000000000000000013fdac9f9b4777705db45291bbff3c972c6d1d97",
+ "nonce": "0x8",
+ "chainId": "0x76adf1"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x4a8b7f",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0x3c0e6d82d894be7b7ae4368f035329b1d29ced58d40b814543d669e0007415f3",
+ "transactionIndex": "0x2",
+ "blockHash": "0xea9409da49d1ec5f9d1b48523e2db95a810e201810b0c3c0cf0545324570e7d6",
+ "blockNumber": "0x24abbca",
+ "gasUsed": "0x488ff1",
+ "effectiveGasPrice": "0xfd",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0x880853091b60f80301a0c1d2f9893c4993041295",
+ "l1BaseFeeScalar": "0x186a0",
+ "l1BlobBaseFee": "0xd5",
+ "l1BlobBaseFeeScalar": "0x95506",
+ "l1Fee": "0x3abeaced149",
+ "l1GasPrice": "0xc796c4b",
+ "l1GasUsed": "0x2f17b"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763598202363,
+ "chain": 7777777,
+ "commit": "29383e6"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/7777777/run-latest.json b/broadcast/Deploy-all.s.sol/7777777/run-latest.json
index efa2ffa1..117b82fd 100644
--- a/broadcast/Deploy-all.s.sol/7777777/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/7777777/run-latest.json
@@ -1,17 +1,19 @@
{
"transactions": [
{
- "hash": "0x37297d700c225f308fba2b7477cf78c993e27f9912e20469e4d34d60e87d1e4e",
+ "hash": "0x3c0e6d82d894be7b7ae4368f035329b1d29ced58d40b814543d669e0007415f3",
"transactionType": "CREATE2",
- "contractName": "CaliburEntry",
- "contractAddress": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x880853091b60f80301a0c1d2f9893c4993041295",
"function": null,
- "arguments": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x0F797dC7efaEA995bB916f268D919d0a1950eE3C, 0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x0575338e4C17006aE181B47900A84404247CA30f, 0xbC91e8DfA3fF18De43853372A3d7dfe585137D78, 0xf66C7b99e2040f0D9b326B3b7c152E9663543D63, 0x13fDac9F9b4777705db45291bbFF3c972c6d1d97)"
+ ],
"transaction": {
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d001060e0604052346100ce57604080519081016001600160401b038111828210176100ba576040908152600782526621b0b634b13ab960c91b6020830190815281519182016001600160401b038111838210176100ba57604052600582526020820192640312e302e360dc1b845251902060805251902060a0523060c052604051615fb890816100d382396080518181816120dc0152612811015260a0518181816121020152612837015260c05181818161250101526127c30152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe60806040526004361015610015575b3661288157005b5f3560e01c80630f3ebf6e1461024457806312aaac701461023f5780631626ba7e1461023a57806319822f7c146102355780631b71bb6e14610230578063219a260d1461022b57806323d578861461022657806325e5c2431461022157806327258b221461021c57806328495877146102175780632abbf4691461021257806330b1fa3b1461020d5780634223b5c2146102085780636575f6aa146102035780636750aa5f146101fe5780636a1ea88d146101f95780637613e7ba146101f4578063786902f2146101ef578063789ff701146101ea57806384b0196e146101e55780638dd7712f146101e057806394430fa5146101db57806399e1d016146101d6578063a58bb84a146101d1578063ac9650d8146101cc578063b70e36f0146101c7578063b75c7dc6146101c2578063b923614f146101bd578063bf7c5be9146101b8578063c3c16ee4146101b3578063d03c7914146101ae578063e41dae2f146101a9578063e9ae5c53146101a4578063f698da251461019f5763fac750e00361000e5761196a565b611950565b6118a5565b61183d565b61181f565b611678565b611635565b6115f9565b6113fd565b611278565b611174565b61101c565b610fe8565b610e46565b610d9e565b610cc8565b610caf565b610c96565b610c30565b610bcd565b610b9e565b610b34565b610a8e565b610a0e565b610817565b6107b8565b610790565b61070e565b61066a565b610621565b610554565b6103e5565b610393565b610302565b3461026a57602060031936011261026a576020610262600435611984565b604051908152f35b5f80fd5b6003111561027857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9060038210156102785752565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b606060206102ff938184526102ef82850182516102a5565b01519160408082015201906102b2565b90565b3461026a57602060031936011261026a5761032d610321600435611b23565b604051918291826102d7565b0390f35b9181601f8401121561026a5782359167ffffffffffffffff831161026a576020838186019501011161026a57565b90604060031983011261026a57600435916024359067ffffffffffffffff821161026a5761038f91600401610331565b9091565b3461026a5760206103ac6103a63661035f565b91611c5f565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b908161012091031261026a5790565b3461026a57606060031936011261026a5760043567ffffffffffffffff811161026a576104169036906004016103d6565b60443560243573ffffffffffffffffffffffffffffffffffffffff61043961253c565b1633036105015761032d926104836104d792846104d0956104f1575b5061046d610467610100850185611df0565b90612b26565b9693928561047e8598949398611b23565b6129e9565b9461048d82611984565b95156104e75778ffffffffff000000000000000000000000000000000000000086169788955b73ffffffffffffffffffffffffffffffffffffffff9236916109bd565b951661316d565b6040519081529081906020820190565b60019788956104b3565b5f9081803892335af1505f610455565b7fd663742a000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff81160361026a57565b359061055282610529565b565b3461026a57602060031936011261026a5760043561057181610529565b3033036105f95773ffffffffffffffffffffffffffffffffffffffff167f800000000000000000000000000000000000000000000000000000000000000081177f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368600557fea942933e7fb7cb728727281a81e352a20dda96dbc4ee97633a3fa25da48e4ab5f80a2005b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004355f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368604602052602060405f2054604051908152f35b3461026a57604060031936011261026a5760043561068781610529565b602435903033036105f95773ffffffffffffffffffffffffffffffffffffffff1690815f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686056020528060405f20556040519081527f30346eac03b1c5913bb026e6d8d0f42783a0c706bb2a86916410dc385cc2723660203092a360405160018152602090f35b3461026a57604060031936011261026a5760043561072b81610529565b602435903033036105f957806107568373ffffffffffffffffffffffffffffffffffffffff9361325c565b60405192835216907ff8c1385bb618a432aebbaae5bfab911559154982a64e1750b17b50f5782dc98860203092a360405160018152602090f35b3461026a57602060031936011261026a5760206107ae60043561327b565b6040519015158152f35b3461026a575f60031936011261026a5761032d6040516107d9604082610956565b601581527f556e69737761702e43616c696275722e312e302e30000000000000000000000060208201526040519182916020835260208301906102b2565b3461026a57602060031936011261026a576004356bffffffffffffffffffffffff811680910361026a573033036105f9577f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368606546bffffffffffffffffffffffff8116820361088157005b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016177f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368606557f0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d315f80a1005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761093557604052565b6108ec565b6060810190811067ffffffffffffffff82111761093557604052565b90601f601f19910116810190811067ffffffffffffffff82111761093557604052565b6040519061055260c083610956565b60405190610552606083610956565b6003111561026a57565b67ffffffffffffffff811161093557601f01601f191660200190565b9291926109c9826109a1565b916109d76040519384610956565b82948184528183011161026a578281602093845f960137010152565b9080601f8301121561026a578160206102ff933591016109bd565b3461026a57602060031936011261026a5760043567ffffffffffffffff811161026a576040600319823603011261026a57604051610a4b81610919565b8160040135610a5981610997565b8152602482013567ffffffffffffffff811161026a57610a8c926004610a8292369201016109f3565b6020820152611e55565b005b3461026a57602060031936011261026a57600435610aaa611a0c565b5080610ae16318fb58646004527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686015f5260245f2090565b015490610aec61375e565b1115610b0c576103218168fbb67fda52d4bfb8bf61032d93141502611b23565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576020610262600435610b55612765565b604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9060206102ff9281815201906102b2565b3461026a575f60031936011261026a5761032d610bb96120b1565b6040519182916020835260208301906102b2565b3461026a57602060031936011261026a5777ffffffffffffffffffffffffffffffffffffffffffffffff600435165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368604602052602060405f2054604051908152f35b3461026a575f60031936011261026a5760206040517f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686008152f35b600319606091011261026a57600435610c8281610529565b90602435610c8f81610529565b9060443590565b3461026a5760206107ae610ca936610c6a565b91612145565b3461026a5760206107ae610cc236610c6a565b91612277565b3461026a575f60031936011261026a577fff00000000000000000000000000000000000000000000000000000000000000610d4f73ffffffffffffffffffffffffffffffffffffffff610d41610d1c612408565b97946040999397919699949294519a8b9a168a5260e060208b015260e08a01906102b2565b9088820360408a01526102b2565b93606087015216608085015260a084015282810360c0840152602080835192838152019201905f5b818110610d85575050500390f35b8251845285945060209384019390920191600101610d77565b3461026a57604060031936011261026a5760043567ffffffffffffffff811161026a57610dcf9036906004016103d6565b73ffffffffffffffffffffffffffffffffffffffff610dec61253c565b16330361050157610e16610e07610467610100840184611df0565b50505050916060810190611df0565b60048193929310610e3957826004610e3492610a8c95019101610fc2565b613489565b633b99b53d5f526004601cfd5b3461026a575f60031936011261026a576020610e6061253c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b67ffffffffffffffff81116109355760051b60200190565b9080601f8301121561026a57813591610eae83610e7e565b92610ebc6040519485610956565b80845260208085019160051b8301019183831161026a5760208101915b838310610ee857505050505090565b823567ffffffffffffffff811161026a578201906060601f19838803011261026a5760405190610f178261093a565b6020830135610f2581610529565b82526040830135602083015260608301359167ffffffffffffffff831161026a57610f58886020809695819601016109f3565b6040820152815201920191610ed9565b8015150361026a57565b91909160408184031261026a5760405190610f8c82610919565b819381359167ffffffffffffffff831161026a57610fb06020939284938301610e96565b8452013591610fbe83610f68565b0152565b9060208282031261026a57813567ffffffffffffffff811161026a576102ff9201610f72565b602060031936011261026a5760043567ffffffffffffffff811161026a57611017610a8c913690600401610f72565b6125b8565b3461026a57604060031936011261026a576004356024353033036105f95781156110cf576110498261327b565b156110a75760207f55194732cd17a56216773dcef66731844f1900f9b878633e3be2b6cce1e542c991835f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860382528060405f2055604051908152a2005b7fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fb37b2fa0000000000000000000000000000000000000000000000000000000005f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061112957505050505090565b9091929394602080611165837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516102b2565b9701930193019193929061111a565b602060031936011261026a5760043567ffffffffffffffff811161026a573660238201121561026a5780600401359067ffffffffffffffff821161026a576024810190602436918460051b01011161026a576111cf82610e7e565b916111dd6040519384610956565b808352601f196111ec82610e7e565b015f5b8181106112675750505f5b81811061120f576040518061032d86826110f7565b5f8061121c838587612605565b9061122c60405180938193612621565b0390305af461123961262e565b901561125f579060019161124d828761265d565b52611258818661265d565b50016111fa565b602081519101fd5b8060606020809388010152016111ef565b3461026a57602060031936011261026a576004353033036105f9578060401c6112f36112e58277ffffffffffffffffffffffffffffffffffffffffffffffff165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860460205260405f2090565b5467ffffffffffffffff1690565b9167ffffffffffffffff81169267ffffffffffffffff81168411156113d55767ffffffffffffffff61ffff91850316116113ad577f4d9dbebf1d909894d9c26fe228c27cec643b2cb490124e5b658f4edd203c20c1926113976113a89377ffffffffffffffffffffffffffffffffffffffffffffffff165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860460205260405f2090565b556040519081529081906020820190565b0390a1005b7f24d35a26000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f756688fe000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004353033036105f957805f906114506318fb58646004527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686015f5260245f2090565b9068fbb67fda52d4bfb8bf84146115ec5783156115dc575b811980549182159260011c5f19810191600183811b179461157057856020525f5260405f20948554928315611561575f97505f19840103611543575b50505055556114b360015b1590565b6110a7576114f06114eb825f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860260205260405f2090565b6126d3565b5f8181527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860360205260408120557fe5af7daed5ab2a2dc5f98d53619f05089c0c14d11a6621f6b906a2366c9a7ab35f80a2005b5f1980849383010154928392010155855260408520555f80806114a4565b505050505050506114b3901590565b955050505050600190828154146115c057818101838154146115ac5750600201918254146115a25750600190506114b3565b5f6114b392551590565b6114b3935060025f92019081549055551590565b6114b39250806002835f93019182548155019081549055551590565b5068fbb67fda52d4bfb8bf611468565b63f5a267f15f526004601cfd5b3461026a575f60031936011261026a5760207f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860154604051908152f35b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff60043561166781610529565b165f526020805f205c604051908152f35b604060031936011261026a5760043567ffffffffffffffff811161026a57806004019060a0600319823603011261026a5760243567ffffffffffffffff811161026a576116c9903690600401610331565b91909273ffffffffffffffffffffffffffffffffffffffff60648301356116ef81610529565b168015908115611815575b50156105f9576084820135801515908161180b575b506117e3576117316114af936117619561172c6024860135613e8f565b613ee0565b9691604461175361174e61174999949699368961368a565b613f20565b6120a5565b960135968661047e89611b23565b6117bb57610a8c94610e34938573ffffffffffffffffffffffffffffffffffffffff6117a46117ab9561179384611984565b9561179d87612dc2565b36916109bd565b93166140d1565b6117b6369180612732565b610f72565b7f8baa579f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f0819bdcd000000000000000000000000000000000000000000000000000000005f5260045ffd5b905042115f61170f565b905033145f6116fa565b3461026a57602060031936011261026a5760206107ae600435613709565b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff60043561186f81610529565b165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368605602052602060405f2054604051908152f35b6118ae3661035f565b6118b9839293613709565b156119285782019160208184031261026a5780359067ffffffffffffffff821161026a57610a8c937eff0000000000000000000000000000000000000000000000000000000000009261190c9201610e96565b916040519261191a84610919565b8352161560208201526125b8565b7f7f181275000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a575f60031936011261026a576020610262612765565b3461026a575f60031936011261026a57602061026261375e565b80156119ed576119938161327b565b6119bf577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860360205260405f205490565b5079010000000000000000000000000000000000000000000000000090565b60405190611a1982610919565b60606020835f81520152565b90600182811c92168015611a6c575b6020831014611a3f57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611a34565b81601f8201121561026a57805190611a8d826109a1565b92611a9b6040519485610956565b8284526020838301011161026a57815f9260208093018386015e8301015290565b60208183031261026a5780519067ffffffffffffffff821161026a570160408183031261026a5760405191611af083610919565b8151611afb81610997565b8352602082015167ffffffffffffffff811161026a57611b1b9201611a76565b602082015290565b611b2b611a0c565b508015611c5657611b3b8161327b565b611b67577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860260205260405f206040515f825492611ba184611a25565b9081845260208401946001811690815f14611c1b5750600114611bde575b505081611bd46102ff94936020930382610956565b8051010190611abc565b5f908152602081209092505b818310611c01575050810160200181611bd4611bbf565b600181602092949394548385880101520191019190611bea565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686525050151560051b8201602001905081611bd4611bbf565b506102ff6128b7565b9180611d7e5761773961ffff821904028314611d5757611c7e91612b26565b9391611c8d8396949296611b23565b91611ca28282611c9b6120b1565b8887612b79565b928315611d3b575b50505015611d1357611ce9611cef94611cc283611984565b611ccb81612dc2565b73ffffffffffffffffffffffffffffffffffffffff169436916109bd565b92612e6e565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b505050507fffffffff0000000000000000000000000000000000000000000000000000000090565b611d4f935085611d49612765565b91612d60565b5f8080611caa565b5050507f773900010000000000000000000000000000000000000000000000000000000090565b90611d8982826128f1565b611d975790611c7e91612b26565b611da39261047e6128b7565b15611dcc577f1626ba7e0000000000000000000000000000000000000000000000000000000090565b7fffffffff0000000000000000000000000000000000000000000000000000000090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561026a570180359067ffffffffffffffff821161026a5760200191813603831361026a57565b60405190611e50602083610956565b5f8252565b3033036105f957805160038110156102785780611e7360029261026e565b1480611f4a575b611f22577f8df00f8e3bbfb2c3024a60b74e1d4e520f7cbe1da3476726241146ecf6328832611f1d611eab83613318565b92611f07604051611ed181611ec385602083016102d7565b03601f198101835282610956565b611f02865f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860260205260405f2090565b611fda565b611f1084613355565b50604051918291826102d7565b0390a2565b7f41e2e8f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b50602081015173ffffffffffffffffffffffffffffffffffffffff611f7a825192602080309583010191016129d4565b1614611e7a565b818110611f8c575050565b5f8155600101611f81565b9190601f8111611fa657505050565b610552925f5260205f20906020601f840160051c83019310611fd0575b601f0160051c0190611f81565b9091508190611fc3565b919091825167ffffffffffffffff81116109355761200281611ffc8454611a25565b84611f97565b6020601f82116001146120405781906120319394955f92612035575b50505f198260011b9260031b1c19161790565b9055565b015190505f8061201e565b601f19821690612053845f5260205f2090565b915f5b81811061208d57509583600195969710612075575b505050811b019055565b01515f1960f88460031b161c191690555f808061206b565b9192602060018192868b015181550194019201612056565b6102ff90610b55612765565b73ffffffffffffffffffffffffffffffffffffffff6120ce612408565b5094509150939150604051937f000000000000000000000000000000000000000000000000000000000000000060208601527f00000000000000000000000000000000000000000000000000000000000000006040860152606085015216608083015260a082015260a081526102ff60c082610956565b821561226f5773ffffffffffffffffffffffffffffffffffffffff3091160361224757335f908152602090205c9082821061221f5781835f1973ffffffffffffffffffffffffffffffffffffffff941061220d575b505016905f80808084865af16121ae61262e565b50156121e5576040519081527f3f1beca043a9fe9118bbaeca0035e81e02d6d7cf184bf32fa9dfbd73fdd027c060203092a3600190565b7fb06a467a000000000000000000000000000000000000000000000000000000005f5260045ffd5b61221891033361325c565b5f8361219a565b7fc45cb513000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f7d1c29f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b505050600190565b91905f9282156123ff5773ffffffffffffffffffffffffffffffffffffffff3091160361224757335f9081527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368605602052604090205482811061221f575f198110612364575b5073ffffffffffffffffffffffffffffffffffffffff16918080808085875af161230461262e565b501561233c57506040519081527fed1cf8378e55f85e35be72eebdbef1b7347825916e51aa538d1855113f8c259d60203092a3600190565b807fb06a467a0000000000000000000000000000000000000000000000000000000060049252fd5b73ffffffffffffffffffffffffffffffffffffffff919350829003925f93806123ca3373ffffffffffffffffffffffffffffffffffffffff165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860560205260405f2090565b5560405190815233907f85b16643b7d42712d1470a1ed9822d6e8cadad23eb1141cabefa28da0944c5b790602090a2906122dc565b50505050600190565b7f1f000000000000000000000000000000000000000000000000000000000000009060408051906124398183610956565b600782527f43616c69627572000000000000000000000000000000000000000000000000006020830152805161246f8282610956565b600581527f312e302e3000000000000000000000000000000000000000000000000000000060208201527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368606549293909246923092909160a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001617915161252f602082610956565b5f80825236602083013790565b7f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368600547f800000000000000000000000000000000000000000000000000000000000000081161561259f5773ffffffffffffffffffffffffffffffffffffffff1690565b50734337084d9e255ff0702461cf8895ce9e3b5ff10890565b6125c1336135df565b6125ca81613638565b156105f95761055291613489565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9082101561261c5761038f9160051b810190611df0565b6125d8565b908092918237015f815290565b3d15612658573d9061263f826109a1565b9161264d6040519384610956565b82523d5f602084013e565b606090565b805182101561261c5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116036126ce57565b612671565b6126dd8154611a25565b90816126e7575050565b81601f5f93116001146126f8575055565b8183526020832061271491601f0160051c810190600101611f81565b808252602082209081548360011b905f198560031b1c191617905555565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18136030182121561026a570190565b7f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686065460a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161760405160208101917fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647283527f000000000000000000000000000000000000000000000000000000000000000060408301527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a083015260c082015260c0815261287b60e082610956565b51902090565b5f3560e01c63bc197c81811463f23a6e6182141763150b7a028214176128ae57633c10b94e5f526004601cfd5b6020526020603cf35b6128bf611a0c565b50604051306020820152602081526128d8604082610956565b604051906128e582610919565b60028252602082015290565b5060418114908115612901575090565b604091501490565b919082604091031261026a576020825192015190565b60208183031261026a5780359067ffffffffffffffff821161026a57019060c08282031261026a5761294f610979565b91803567ffffffffffffffff811161026a578261296d9183016109f3565b8352602081013567ffffffffffffffff811161026a5760a0926129919183016109f3565b6020840152604081013560408401526060810135606084015260808101356080840152013560a082015290565b919082604091031261026a576020823592013590565b9081602091031261026a57516102ff81610529565b9290600284516129f88161026e565b612a018161026e565b03612a6a579073ffffffffffffffffffffffffffffffffffffffff92612a2692613b2f565b169081612a335750505f90565b612a4d6020612a66920151602080825183010191016129d4565b73ffffffffffffffffffffffffffffffffffffffff1690565b1490565b8351612a758161026e565b612a7e8161026e565b612abb57612ab690612aae612aa360206102ff97015160208082518301019101612909565b9590948101906129be565b929091613aec565b613b04565b60018451612ac88161026e565b612ad18161026e565b03612b1e57611ec3612b19612b04612af960206102ff98015160208082518301019101612909565b96909581019061291f565b92604051928391602083019190602083019252565b6138de565b505050505f90565b9190823592612b358282613bbd565b9093819363ffffffff60408501351684019063ffffffff82351694602080840193870101910110610e3957604090939210612b6c57565b634be6321b5f526004601cfd5b9091939293612b888486614660565b949093612b9f602088013592604089013598614690565b9091612bde8985604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b03612d5457612bec91613c80565b82959299939199158015612d4c575b612d3e57611ec3612cd9612c266102ff9c612c1e612cfc96612d389b36916109bd565b9436916109bd565b604051928391605c612c6360208501977f5479706564446174615369676e280000000000000000000000000000000000008952602e860190613809565b7f20636f6e74656e74732c737472696e67206e616d652c737472696e672076657281527f73696f6e2c75696e7432353620636861696e49642c616464726573732076657260208201527f696679696e67436f6e74726163742c627974657333322073616c74290000000060408201520190613809565b51902092611ec36040519384926020840196875260408401526060830190613809565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b906129e9565b505050505050505050505f90565b508015612bfb565b50505050505050505f90565b906102ff949392612d3891604090601c60208351612d7e8582610956565b828152017f506572736f6e616c5369676e28627974657320707265666978656429000000008152209180519160208301938452818301528152612cfc606082610956565b612dcb90613e70565b90612dd35750565b64ffffffffff907f48c76fe1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b51907fffffffff000000000000000000000000000000000000000000000000000000008216820361026a57565b9081602091031261026a576102ff90612e06565b6102ff93926060928252602082015281604082015201906102b2565b6040513d5f823e3d90fd5b9290919260048116612e81575b50505050565b612ed39373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f9ac4eafd00000000000000000000000000000000000000000000000000000000855260048501612e47565b0392165afa908115612f91577f9ac4eafd00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f62575b501603612f3a575f808080612e7b565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b612f84915060203d602011612f8a575b612f7c8183610956565b810190612e33565b5f612f2a565b503d612f72565b612e63565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561026a57016020813591019167ffffffffffffffff821161026a57813603831361026a57565b601f8260209493601f1993818652868601375f8582860101520116010190565b91613155906102ff96949592845260a0602085015261304560a0850161302b83610547565b73ffffffffffffffffffffffffffffffffffffffff169052565b602081013560c08501526131246131186130b961307b6130686040860186612f96565b61012060e08b01526101c08a0191612fe6565b6130886060860186612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608a8403016101008b0152612fe6565b608084013561012088015260a084013561014088015260c08401356101608801526130e760e0850185612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60898403016101808a0152612fe6565b91610100810190612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868403016101a0870152612fe6565b936040830152606082015260808184039101526102b2565b9190939460028316613182575b505050505050565b6020946131d473ffffffffffffffffffffffffffffffffffffffff92604051988997889687957f9e364dba00000000000000000000000000000000000000000000000000000000875260048701613006565b0392165afa908115612f91577f9e364dba00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f9161323d575b501603612f3a575f808080808061317a565b613256915060203d602011612f8a57612f7c8183610956565b5f61322b565b73ffffffffffffffffffffffffffffffffffffffff165f5260205f205d565b6132b07f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686016318fb58646004525f5260245f2090565b68fbb67fda52d4bfb8bf82146115ec578115613307575b801954156132de576020525f5260405f2054151590565b9060019181815414613302578183820154146133025760020154146102ff57505f90565b505090565b68fbb67fda52d4bfb8bf91506132c7565b8051906003821015610278576020015160208151910120604051906133416020830180946102a5565b60408201526040815261287b606082610956565b905f9161338d7f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686016318fb58646004525f5260245f2090565b9068fbb67fda52d4bfb8bf81146115ec578015613479575b8119918254918160205282156133ed575b805f5260405f20928354156133cc575050505050565b9091929394955060011c8092015560010180915560011b6001179055600190565b91508054801561347057828114612e7b57600182018054908115613462575083811461345b576002830191825492831561344c575084831461317a575f52600160405f20555f52600260405f20555f52600360405f20556007916133b6565b95505050505091925055600190565b5050505050565b945050505091925055600190565b50555060019150565b5068fbb67fda52d4bfb8bf6133a5565b5f5b81518051821015612e7b57816134a09161265d565b51805173ffffffffffffffffffffffffffffffffffffffff16806135d9575030905b6134cb85611984565b60ff60c882901c1615806135ba575b6135925785925f8073ffffffffffffffffffffffffffffffffffffffff613537941694602081019361351760408651930192835190838b8b6147d9565b9451915191602083519301915af1928361352f61262e565b958692614966565b1580613585575b61354b575060010161348b565b613581906040519182917fa5fa8d2b00000000000000000000000000000000000000000000000000000000835260048301610b8d565b0390fd5b506020830151151561353e565b7f3ceb88d9000000000000000000000000000000000000000000000000000000005f5260045ffd5b503073ffffffffffffffffffffffffffffffffffffffff8416146134da565b906134c2565b73ffffffffffffffffffffffffffffffffffffffff16308114613633576102ff9060405190602082015260208152613618604082610956565b6040519061362582610919565b600282526020820152613318565b505f90565b8015613684576136478161327b565b15613633575f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860360205261367f60405f2054613e70565b501590565b50600190565b91909160a08184031261026a576040519060a0820182811067ffffffffffffffff82111761093557604052819381359167ffffffffffffffff831161026a576136d96080939284938301610f72565b8452602081013560208501526040810135604085015260608101356136fd81610529565b60608501520135910152565b7f01000000000000000000000000000000000000000000000000000000000000008114908115613737575090565b7f010100000000000000000000000000000000000000000000000000000000000091501490565b6318fb58646004527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686015f5260245f2090811954918260011c9215159080541560026001830154159201541592156137b457505050565b90919293505f906137da57506001906137d557506002906102ff5750600390565b919050565b92915050565b90601582018092116126ce57565b90600282018092116126ce57565b919082018092116126ce57565b805191908290602001825e015f815290565b90610552600161385b936040519485917f226368616c6c656e6765223a22000000000000000000000000000000000000006020840152602d830190613809565b7f22000000000000000000000000000000000000000000000000000000000000008152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1810185520183610956565b80516020101561261c5760400190565b6138c89060209392613809565b9081520190565b9081602091031261026a575190565b92919060a081019384517f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a810613ad95760208201907fff1a2a9176d650e4a99dedb58f1793003935130579fe17b5a3f698ac5b00e63461394d83516060860151613947816137e0565b91614c42565b6020815191012003613ae25761396561396a9161419b565b61381b565b61397f825160408501516139478451826137fc565b60208151910120906020815191012003613ad9577f0100000000000000000000000000000000000000000000000000000000000000806139e86139c285516138ab565b517fff000000000000000000000000000000000000000000000000000000000000001690565b1603613ad9575f613a026020925160405191828092613809565b039060025afa15612f915760205f613a378151613a2b8551611ec36040519384928884016138bb565b60405191828092613809565b039060025afa15612f915760805f519101935f80865185613a888551611ec38a60405194859360208501978c899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa94613a9861262e565b80519680613ad0575b613ab457506102ff955051905191614202565b600196612a6696508101602090810195500192506138cf915050565b50861515613aa1565b50505050505f90565b5050505050505f90565b5f5260206001815f60025afa51903d15613b0257565bfe5b93929190613b15848484848961435c565b90959015613b2557505050505090565b6102ff9550614417565b604080515f95949093918114613b7a57604114613b4b57505050565b604080929395508101355f1a60205281375b5f526020604060805f60015afa505f6060523d6060185191604052565b507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91929450602081013590601b8260ff1c016020523560405216606052613b5d565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110610e3957565b905f1982019182116126ce57565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255103907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255182116126ce57565b9082101561261c570190565b80156126ce575f190190565b90929192831161026a579190565b9093929384831161026a57841161026a578101920390565b9080613c93575b50505f905f905f905f90565b7f29000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000613d11613ceb613ce485613be8565b8587613c42565b357fff000000000000000000000000000000000000000000000000000000000000001690565b1603613db7575f5b818110613d2c575b5050505b5f80613c87565b613d3a613ceb828486613c42565b7fff0000000000000000000000000000000000000000000000000000000000000081167f280000000000000000000000000000000000000000000000000000000000000003613da257508015613d9d57613d95908284613c5a565b939093929190565b613d21565b613dab906146bb565b613d9d57600101613d19565b9081805b613dc8575b505050613d25565b613de2613ceb613ddb8396949596613be8565b8686613c42565b7fff0000000000000000000000000000000000000000000000000000000000000081167f290000000000000000000000000000000000000000000000000000000000000003613e4b575080613e3c85613e44938187613c68565b959094613c5a565b9293929091565b613e5890949392946146bb565b613e6b57613e6590613c4e565b80613dbb565b613dc0565b60a01c64ffffffffff16908115613e88574282109190565b5f91508190565b8060401c5f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860460205260405f208054915f1983146126ce5767ffffffffffffffff9160018401905516036113d557565b909163ffffffff82351682019063ffffffff8235169060208084019383010184860110610e3957613f15604093958395613bbd565b9390939210612b6c57565b60c1610100613f326040519182610956565b8181527f290000000000000000000000000000000000000000000000000000000000000060e060208301927f5369676e65644261746368656443616c6c284261746368656443616c6c20626184527f746368656443616c6c2c75696e74323536206e6f6e63652c627974657333322060408201527f6b6579486173682c61646472657373206578656375746f722c75696e7432353660608201527f20646561646c696e65294261746368656443616c6c2843616c6c5b5d2063616c60808201527f6c732c626f6f6c207265766572744f6e4661696c7572652943616c6c2861646460a08201527f7265737320746f2c75696e743235362076616c75652c6279746573206461746160c08201520152209061287b61404f8251614a51565b611ec36020840151936040810151906080614081606083015173ffffffffffffffffffffffffffffffffffffffff1690565b9101519160405196879560208701998a929360a09473ffffffffffffffffffffffffffffffffffffffff93989796929860c086019986526020860152604085015260608401521660808201520152565b92909192600181166140e35750505050565b6141359373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f33dd593c00000000000000000000000000000000000000000000000000000000855260048501612e47565b0392165afa908115612f91577f33dd593c00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f6257501603612f3a575f808080612e7b565b6040516102ff916141ad606083610956565b604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f6040830152614cec565b93919092938315801561431d575b8015614315575b80156142eb575b613ad95761422c8386614d93565b15613ad95760405191602083526020808401526020604084015260608301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f60808301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255160a083015260208260c08160055f19fa1561026a577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551946142e593866142df945181818909940991614e5f565b91613bf6565b90081590565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255182101561421e565b508115614217565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551841015614210565b9081602091031261026a57516102ff81610f68565b91909361436c6114af83876156fe565b8015614404575b6143f8575f94611ec36143b29287966040519586946020860198899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa6143c161262e565b90806143ed575b156143e657806020806143e093518301019101614347565b90600190565b505f905f90565b5060208151146143c8565b50505050505f90600190565b506144126114af8286615775565b614373565b909392919261442684866156fe565b15801561464f575b613ad9577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255161461c612a669561461161462896614469615804565b95614472610988565b5f81525f60208201525f6040820152875261448b610988565b9182526020820152600160408201526144a48660200190565b9081526144af610988565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29681527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5602082015260016040820152608087019081526146076145138351615ac2565b604089019081526145f86145e961452a8551615ac2565b6101008c0190815261453f8751855190615aff565b9560608d019687528c61455f6145588a51845190615aff565b9160a00190565b528c6145786145718751845190615aff565b9160c00190565b528c61459161458a8951845190615aff565b9160e00190565b528c6145ab6145a38a51855190615aff565b916101200190565b528c6145c56145bd8751855190615aff565b916101400190565b528c6145df6145d78951855190615aff565b916101600190565b5251905190615aff565b6101808b018181529551615aff565b6101a08a015251835190615aff565b6101c088016145df565b6101e0850152615b1e565b8181880993099061584a565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551900690565b5061465a8184615775565b1561442e565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061468857565b9150505f5f91565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061468857565b7fff0000000000000000000000000000000000000000000000000000000000000016801590811561477a575b8115614750575b8115614726575b81156146ff575090565b7f290000000000000000000000000000000000000000000000000000000000000091501490565b7f2800000000000000000000000000000000000000000000000000000000000000811491506146f5565b7f2c00000000000000000000000000000000000000000000000000000000000000811491506146ee565b7f2000000000000000000000000000000000000000000000000000000000000000811491506146e7565b91909160408184031261026a576147ba81612e06565b92602082015167ffffffffffffffff811161026a576102ff9201611a76565b6060959490929190600884166147f0575050505050565b5f94965073ffffffffffffffffffffffffffffffffffffffff8094939261486087936040519a8b98899788957fec9b4ee4000000000000000000000000000000000000000000000000000000008752600487015216602485015260448401526080606484015260848301906102b2565b0393165af18015612f91575f925f916148c9575b507fffffffff000000000000000000000000000000000000000000000000000000007fec9b4ee40000000000000000000000000000000000000000000000000000000091931603612f3a575f8080808061345b565b7fffffffff0000000000000000000000000000000000000000000000000000000093507fec9b4ee400000000000000000000000000000000000000000000000000000000915061492a903d805f833e6149228183610956565b8101906147a4565b9390939150614874565b926102ff9492614958928552151560208501526080604085015260808401906102b2565b9160608184039101526102b2565b90929160108216614978575050505050565b5f73ffffffffffffffffffffffffffffffffffffffff6020956149ca604051988997889687947fc82b175900000000000000000000000000000000000000000000000000000000865260048601614934565b0393165af1908115612f91577fc82b175900000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91614a32575b501603612f3a575f8080808061345b565b614a4b915060203d602011612f8a57612f7c8183610956565b5f614a21565b60806057604051614a63608082610956565b8181527f6e743235362076616c75652c6279746573206461746129000000000000000000606060208301927f4261746368656443616c6c2843616c6c5b5d2063616c6c732c626f6f6c20726584527f766572744f6e4661696c7572652943616c6c286164647265737320746f2c75696040820152015220908251805194601f19614b05614aef88610e7e565b97614afd604051998a610956565b808952610e7e565b013660208801376060935f5b8351811015614bee5780614b276001928661265d565b516029604051614b378a82610956565b8181527f7465732064617461290000000000000000000000000000000000000000000000604060208301927f43616c6c286164647265737320746f2c75696e743235362076616c75652c627984520152209073ffffffffffffffffffffffffffffffffffffffff81511690604060208201519101516020815191012090604051926020840194855260408401528a83015288820152878152614bda60a082610956565b519020614be7828b61265d565b5201614b11565b509493509461287b9250614c1f9150602090604051614c1481611ec3858201809561595b565b519020930151151590565b604080516020810195865290810193909352151560608301528160808101611ec3565b805160609493929083811115614cb3575b81811115614cab575b50828110614c6957505050565b6040519450918290039101601f19601f830181165b8083015181870152018015614c9657601f1990614c7e565b505060408184015f6020820152016040528252565b90505f614c5c565b925082614c53565b90614cc5826109a1565b614cd26040519182610956565b828152601f19614ce282946109a1565b0190602036910137565b90815115614d895790614d19614d14614d0d614d08845161269e565b6137ee565b6003900490565b614cbb565b916020830190828051019060208201928351945f85525b838110614d3f57505050505290565b600360049101916001603f845182828260121c16880101518453828282600c1c16880101518385015382828260061c16880101516002850153168501015160038201530190614d30565b50506102ff611e41565b6ffffffffeffffffffffffffffffffffff60601b198110801590614e41575b8015614e30575b614e2a576ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b818381807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81970991818180090908089180091490565b50505f90565b5080158015614db957508115614db9565b506ffffffffeffffffffffffffffffffffff60601b19821015614db2565b90915f925f9160ff958115806156f6575b6156eb57614e7e8386615988565b9490978815806156e3575b615695575b83811c60028460fe1c16015b1561567d57600184821c16600284831c60011b160160018114615632575b60028114615625575b60031461561a575b5f1990969493929196019460019889975b875f1911614f715750505050505050505060405191606083015260208252602080830152602060408301527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808301526ffffffffeffffffffffffffffffffffff60601b1960a083015260208260c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b199151900990565b6ffffffffeffffffffffffffffffffffff60601b198160029c989a9c9b959697999b09936ffffffffeffffffffffffffffffffffff60601b1985800980956ffffffffeffffffffffffffffffffffff60601b19828409966ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b198a8208908a6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b19906003099c6ffffffffeffffffffffffffffffffffff60601b19908309986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19828009906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199087086ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1981938309906ffffffffeffffffffffffffffffffffff60601b19910891878c1c600116878d1c60011b6002160180156155f557600181146155aa575b6002811461559f575b600314615596575b8c15615581578c916ffffffffeffffffffffffffffffffffff60601b198085818d819609089388820392090894811561536c575b6ffffffffeffffffffffffffffffffffff60601b19868009986ffffffffeffffffffffffffffffffffff60601b198a9788099d8e976ffffffffeffffffffffffffffffffffff60601b1991099d6ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09866ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b19848009906ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19910991856ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b19910892985f19905b0196949392979597614eda565b8c861561537957506151ce565b989150919a94506ffffffffeffffffffffffffffffffffff60601b198b7fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b198180099283916ffffffffeffffffffffffffffffffffff60601b19838309946ffffffffeffffffffffffffffffffffff60601b1991099d8e916ffffffffeffffffffffffffffffffffff60601b198281038208916ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1990600309926ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19838009906ffffffffeffffffffffffffffffffffff60601b1991089b6ffffffffeffffffffffffffffffffffff60601b199109918b6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b1991086ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b199108925f199061535f565b60019c50909a8c98509094505f19915061535f565b5050818361519a565b8b92508a9150615192565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29692507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59150615189565b5050505f19906ffffffffeffffffffffffffffffffffff60601b199a949a039361535f565b889750859150614ec9565b9697508796859250614ec1565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29698507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59250614eb8565b5f1901600184821c16600284831c60011b1601614e9a565b91927fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551919382039008915f918315806156db575b15614e8e575050505050505050505f90565b5060016156c9565b508515614e89565b505050505050505f90565b508015614e70565b90811515918261574b575b5081615741575b81615719575090565b7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89150111590565b8015159150615710565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325511191505f615709565b6ffffffffeffffffffffffffffffffffff60601b1980807f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b8185817fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81838009080908818580091493109110161690565b604051906157f38261093a565b5f6040838281528260208201520152565b604051906102006158158184610956565b825f5b82811061582457505050565b60209061582f6157e6565b8184015201615818565b90601081101561261c5760051b0190565b5f9392849283929183915b6080831061586b575050505061038f9293615db4565b85615939575b600c61587d8260fc1c90565b16600361588a8460fe1c90565b161760406158988287615839565b5101516158c0575b506158b76158b060019260021b90565b9260021b90565b92019190615855565b959194909782155f1461590f575050506158da8483615839565b51519260016158b76158b0604061590060206158f68b8a615839565b5101519988615839565b5101519796995b9250506158a0565b6158b0959260019261592e926159286158b79a89615839565b51615c0b565b979196909699615907565b969461594a91946159509396615b84565b91615b84565b949193909396615871565b80516020909101905f5b8181106159725750505090565b8251845260209384019390920191600101615965565b91907f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5918015615abc578461038f9495831480615ab3575b15615a9e5750506ffffffffeffffffffffffffffffffffff60601b1982600209916ffffffffeffffffffffffffffffffffff60601b198084800993818080808881818a09950996817fffffffff00000001000000000000000000000000fffffffffffffffffffffffe816001840892080960030981808080867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd0981858009089681600181818c099b099809810393868203900890090890615ed1565b909192615aaa93615e33565b92909190615ed1565b508184146159e1565b50925090565b615ae290615ace6157e6565b508051906040602082015191015191615b84565b9060405192615af08461093a565b83526020830152604082015290565b615ae291615b0b6157e6565b5080516040602083015192015192615c0b565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f615b6992615f67565b9015615b725790565b634e487b715f5260126020526024601cfd5b9290916ffffffffeffffffffffffffffffffffff60601b1980918180868009968180808a818080808a800980097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b82039008900908940960020990565b91939092935f945f945f946040810151906ffffffffeffffffffffffffffffffffff60601b198280096ffffffffeffffffffffffffffffffffff60601b19858009926ffffffffeffffffffffffffffffffffff60601b1980878609602085015109916ffffffffeffffffffffffffffffffffff60601b19808681868103818d8189890990090896510991818381039189090890811585151694855f14615d4f575050505050600114615cbd5750505050565b6ffffffffeffffffffffffffffffffffff60601b198080809a508699508097985080969381808087819998099d838f94097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b820390089009089409600209905f808080612e7b565b929b50935096506ffffffffeffffffffffffffffffffffff60601b1980808080809c9d50809a995080985080969f508b8009809709958a098180876002098103818381038188800908089d098103938c8203900890090895099009905f808080612e7b565b92918015615e29576ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffd615dfb92615f67565b919015615b72576ffffffffeffffffffffffffffffffffff60601b1991829081808280098097099509900990565b505090505f905f90565b9392908015615ec4576ffffffffeffffffffffffffffffffffff60601b19806001969481808080809a9881809981039d8e920908938160018b820392090881818009998a9182099809918180898180877fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09818381038188800908089c09938b820390080908946001099260010990565b5092509190600190600190565b9092919260405192602084526020808501526020604085015260608401527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808401526ffffffffeffffffffffffffffffffffff60601b1960a084015260208360c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b198093918180935180920995098009900991565b91908115615fa2576020925f9260c0926040519286845286808501528660408501526060840152608083015260a082015260055afa905f5190565b5050505f905f9056fea164736f6c634300081d000a",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000f797dc7efaea995bb916f268d919d0a1950ee3c0000000000000000000000007145f8aeef1f6510e92164038e1b6f8cb2c42cbb96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000000575338e4c17006ae181b47900a84404247ca30f000000000000000000000000bc91e8dfa3ff18de43853372a3d7dfe585137d78000000000000000000000000f66c7b99e2040f0d9b326b3b7c152e9663543d6300000000000000000000000013fdac9f9b4777705db45291bbff3c972c6d1d97",
"nonce": "0x8",
"chainId": "0x76adf1"
},
@@ -22,31 +24,31 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0x5264fc",
+ "cumulativeGasUsed": "0x4a8b7f",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0x37297d700c225f308fba2b7477cf78c993e27f9912e20469e4d34d60e87d1e4e",
+ "transactionHash": "0x3c0e6d82d894be7b7ae4368f035329b1d29ced58d40b814543d669e0007415f3",
"transactionIndex": "0x2",
- "blockHash": "0x66c3556bbcae7e11008605ccd01be6453eaa57f1eb9fbf4ac6faf6f4e6122151",
- "blockNumber": "0x1d3f38f",
- "gasUsed": "0x515e9c",
+ "blockHash": "0xea9409da49d1ec5f9d1b48523e2db95a810e201810b0c3c0cf0545324570e7d6",
+ "blockNumber": "0x24abbca",
+ "gasUsed": "0x488ff1",
"effectiveGasPrice": "0xfd",
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "contractAddress": "0x880853091b60f80301a0c1d2f9893c4993041295",
"l1BaseFeeScalar": "0x186a0",
- "l1BlobBaseFee": "0x1",
+ "l1BlobBaseFee": "0xd5",
"l1BlobBaseFeeScalar": "0x95506",
- "l1Fee": "0x18e589175488",
- "l1GasPrice": "0x562c16f5",
- "l1GasUsed": "0x2e3a0"
+ "l1Fee": "0x3abeaced149",
+ "l1GasPrice": "0xc796c4b",
+ "l1GasUsed": "0x2f17b"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1748029232,
+ "timestamp": 1763598202363,
"chain": 7777777,
- "commit": "0a52cd5"
+ "commit": "29383e6"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/81457/run-1763597934991.json b/broadcast/Deploy-all.s.sol/81457/run-1763597934991.json
new file mode 100644
index 00000000..f7f9566d
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/81457/run-1763597934991.json
@@ -0,0 +1,51 @@
+{
+ "transactions": [
+ {
+ "hash": "0xde880e1afb0d224c3b7eae8446240a0f6ca91a424cce7d108cc11d11731f0738",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4300000000000000000000000000000000000004, 0x5C346464d33F90bABaf70dB6388507CC889C1070, 0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x1631559198A9e474033433b2958daBC135ab6446, 0xB218e4f7cF0533d4696fDfC419A0023D33345F28, 0x4AD2F4CcA2682cBB5B950d660dD458a1D3f1bAaD, 0x2D509190Ed0172ba588407D4c2df918F955Cc6E1)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000043000000000000000000000000000000000000040000000000000000000000005c346464d33f90babaf70db6388507cc889c1070000000000000000000000000792edade80af5fc680d96a2ed80a44247d2cf6fd96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000001631559198a9e474033433b2958dabc135ab6446000000000000000000000000b218e4f7cf0533d4696fdfc419a0023d33345f280000000000000000000000004ad2f4cca2682cbb5b950d660dd458a1d3f1baad0000000000000000000000002d509190ed0172ba588407d4c2df918f955cc6e1",
+ "nonce": "0x8",
+ "chainId": "0x13e31"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x9d061e",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0xde880e1afb0d224c3b7eae8446240a0f6ca91a424cce7d108cc11d11731f0738",
+ "transactionIndex": "0xd",
+ "blockHash": "0x20fe11b39b2599a8197c976aded64dc05ec14ac990f2c4bb627712e0d9891d9b",
+ "blockNumber": "0x1a1ffff",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x482",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7",
+ "l1Fee": "0xe322b682b",
+ "l1GasPrice": "0x9d40532",
+ "l1GasUsed": "0x52108"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763597934991,
+ "chain": 81457,
+ "commit": "b0d3829"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/81457/run-latest.json b/broadcast/Deploy-all.s.sol/81457/run-latest.json
index 68bd2d25..f7f9566d 100644
--- a/broadcast/Deploy-all.s.sol/81457/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/81457/run-latest.json
@@ -1,18 +1,20 @@
{
"transactions": [
{
- "hash": "0x16a457d4b27488241c9117829ebd1b32c807763d5b59a47c1b6650d7d9204c70",
+ "hash": "0xde880e1afb0d224c3b7eae8446240a0f6ca91a424cce7d108cc11d11731f0738",
"transactionType": "CREATE2",
- "contractName": "Calibur",
- "contractAddress": "0x458f5a9f47a01bea5d7a32662660559d9ed3312c",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7",
"function": null,
- "arguments": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4300000000000000000000000000000000000004, 0x5C346464d33F90bABaf70dB6388507CC889C1070, 0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x1631559198A9e474033433b2958daBC135ab6446, 0xB218e4f7cF0533d4696fDfC419A0023D33345F28, 0x4AD2F4CcA2682cBB5B950d660dD458a1D3f1bAaD, 0x2D509190Ed0172ba588407D4c2df918F955Cc6E1)"
+ ],
"transaction": {
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060e0604052346100ce57604080519081016001600160401b038111828210176100ba576040908152600782526621b0b634b13ab960c91b6020830190815281519182016001600160401b038111838210176100ba57604052600582526020820192640312e302e360dc1b845251902060805251902060a0523060c052604051615c2c90816100d38239608051818181611e990152612532015260a051818181611ebf0152612558015260c05181818161226101526124e40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe60806040526004361015610015575b366125a257005b5f3560e01c80630f3ebf6e1461024457806312aaac701461023f5780631626ba7e1461023a57806319822f7c146102355780631b71bb6e14610230578063219a260d1461022b57806323d578861461022657806325e5c2431461022157806327258b221461021c57806328495877146102175780632abbf4691461021257806330b1fa3b1461020d5780634223b5c2146102085780636575f6aa146102035780636750aa5f146101fe5780636a1ea88d146101f95780637613e7ba146101f4578063786902f2146101ef578063789ff701146101ea57806384b0196e146101e55780638dd7712f146101e057806394430fa5146101db57806399e1d016146101d6578063a58bb84a146101d1578063ac9650d8146101cc578063b70e36f0146101c7578063b75c7dc6146101c2578063b923614f146101bd578063bf7c5be9146101b8578063c3c16ee4146101b3578063d03c7914146101ae578063e41dae2f146101a9578063e9ae5c53146101a4578063f698da251461019f5763fac750e00361000e57611784565b61176a565b6116bf565b611676565b611658565b6114b1565b61146e565b611451565b6112b2565b61118b565b611087565b610f4e565b610f1a565b610d78565b610cbd565b610be7565b610bce565b610bb5565b610b4f565b610b0b565b610adc565b610a72565b6109eb565b61096b565b6107c9565b61076a565b610742565b6106c0565b61063b565b610611565b610564565b6103e5565b610393565b610302565b3461026a57602060031936011261026a57602061026260043561179e565b604051908152f35b5f80fd5b6003111561027857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9060038210156102785752565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b606060206102ff938184526102ef82850182516102a5565b01519160408082015201906102b2565b90565b3461026a57602060031936011261026a5761032d61032160043561191e565b604051918291826102d7565b0390f35b9181601f8401121561026a5782359167ffffffffffffffff831161026a576020838186019501011161026a57565b90604060031983011261026a57600435916024359067ffffffffffffffff821161026a5761038f91600401610331565b9091565b3461026a5760206103ac6103a63661035f565b91611a3b565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b908161012091031261026a5790565b3461026a57606060031936011261026a5760043567ffffffffffffffff811161026a576104169036906004016103d6565b60243560443573ffffffffffffffffffffffffffffffffffffffff61043961229c565b1633036105115761032d92816104e492610501575b5061045d610100820182611bcc565b91909384359161048d61047b6104738689613834565b96909861385f565b959097846104888761191e565b61270a565b926104978161179e565b93156104f4576104de78ffffffffff000000000000000000000000000000000000000085169788955b73ffffffffffffffffffffffffffffffffffffffff1696369161091a565b94612e54565b6040519081529081906020820190565b6104de60019788956104c0565b5f9081803892335af1505f61044e565b7fd663742a000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff81160361026a57565b359061056282610539565b565b3461026a57602060031936011261026a5760043561058181610539565b3033036105e95773ffffffffffffffffffffffffffffffffffffffff167f800000000000000000000000000000000000000000000000000000000000000081175f557fea942933e7fb7cb728727281a81e352a20dda96dbc4ee97633a3fa25da48e4ab5f80a2005b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004355f526004602052602060405f2054604051908152f35b3461026a57604060031936011261026a5760043561065881610539565b602435903033036105e95773ffffffffffffffffffffffffffffffffffffffff1690815f5260056020528060405f20556040519081527f30346eac03b1c5913bb026e6d8d0f42783a0c706bb2a86916410dc385cc2723660203092a360405160018152602090f35b3461026a57604060031936011261026a576004356106dd81610539565b602435903033036105e957806107088373ffffffffffffffffffffffffffffffffffffffff93612f43565b60405192835216907ff8c1385bb618a432aebbaae5bfab911559154982a64e1750b17b50f5782dc98860203092a360405160018152602090f35b3461026a57602060031936011261026a576020610760600435612f62565b6040519015158152f35b3461026a575f60031936011261026a5761032d60405161078b6040826108b3565b601581527f556e69737761702e43616c696275722e312e302e30000000000000000000000060208201526040519182916020835260208301906102b2565b3461026a57602060031936011261026a576004356bffffffffffffffffffffffff811680910361026a573033036105e9577fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060065416176006557f0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d315f80a1005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761089257604052565b610849565b6060810190811067ffffffffffffffff82111761089257604052565b90601f601f19910116810190811067ffffffffffffffff82111761089257604052565b6040519061056260c0836108b3565b604051906105626060836108b3565b6003111561026a57565b67ffffffffffffffff811161089257601f01601f191660200190565b929192610926826108fe565b9161093460405193846108b3565b82948184528183011161026a578281602093845f960137010152565b9080601f8301121561026a578160206102ff9335910161091a565b3461026a57602060031936011261026a5760043567ffffffffffffffff811161026a576040600319823603011261026a576040516109a881610876565b81600401356109b6816108f4565b8152602482013567ffffffffffffffff811161026a576109e99260046109df9236920101610950565b6020820152611c31565b005b3461026a57602060031936011261026a57600435610a07611807565b5080610a1f6318fb586460045260015f5260245f2090565b015490610a2a6133e8565b1115610a4a576103218168fbb67fda52d4bfb8bf61032d9314150261191e565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576020610262600435610a936124a5565b604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9060206102ff9281815201906102b2565b3461026a575f60031936011261026a5761032d610af7611e6e565b6040519182916020835260208301906102b2565b3461026a57602060031936011261026a5777ffffffffffffffffffffffffffffffffffffffffffffffff600435165f526004602052602060405f2054604051908152f35b3461026a575f60031936011261026a5760206040517f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686008152f35b600319606091011261026a57600435610ba181610539565b90602435610bae81610539565b9060443590565b3461026a576020610760610bc836610b89565b91611f02565b3461026a576020610760610be136610b89565b91612034565b3461026a575f60031936011261026a577fff00000000000000000000000000000000000000000000000000000000000000610c6e73ffffffffffffffffffffffffffffffffffffffff610c60610c3b612187565b97946040999397919699949294519a8b9a168a5260e060208b015260e08a01906102b2565b9088820360408a01526102b2565b93606087015216608085015260a084015282810360c0840152602080835192838152019201905f5b818110610ca4575050500390f35b8251845285945060209384019390920191600101610c96565b3461026a57604060031936011261026a5760043567ffffffffffffffff811161026a57610cee9036906004016103d6565b73ffffffffffffffffffffffffffffffffffffffff610d0b61229c565b16330361051157610d4781610d27610100610d3b940182611bcc565b610d3381839693613834565b50508461385f565b50506060810190611bcc565b909160048210610d6b576109e9926004610d6692359382019101610ef4565b613132565b633b99b53d5f526004601cfd5b3461026a575f60031936011261026a576020610d9261229c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b67ffffffffffffffff81116108925760051b60200190565b9080601f8301121561026a57813591610de083610db0565b92610dee60405194856108b3565b80845260208085019160051b8301019183831161026a5760208101915b838310610e1a57505050505090565b823567ffffffffffffffff811161026a578201906060601f19838803011261026a5760405190610e4982610897565b6020830135610e5781610539565b82526040830135602083015260608301359167ffffffffffffffff831161026a57610e8a88602080969581960101610950565b6040820152815201920191610e0b565b8015150361026a57565b91909160408184031261026a5760405190610ebe82610876565b819381359167ffffffffffffffff831161026a57610ee26020939284938301610dc8565b8452013591610ef083610e9a565b0152565b9060208282031261026a57813567ffffffffffffffff811161026a576102ff9201610ea4565b602060031936011261026a5760043567ffffffffffffffff811161026a57610f496109e9913690600401610ea4565b6122f8565b3461026a57604060031936011261026a576004356024353033036105e9578115610fe257610f7b82612f62565b15610fba5760207f55194732cd17a56216773dcef66731844f1900f9b878633e3be2b6cce1e542c991835f52600382528060405f2055604051908152a2005b7fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fb37b2fa0000000000000000000000000000000000000000000000000000000005f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061103c57505050505090565b9091929394602080611078837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516102b2565b9701930193019193929061102d565b602060031936011261026a5760043567ffffffffffffffff811161026a573660238201121561026a5780600401359067ffffffffffffffff821161026a576024810190602436918460051b01011161026a576110e282610db0565b916110f060405193846108b3565b808352601f196110ff82610db0565b015f5b81811061117a5750505f5b818110611122576040518061032d868261100a565b5f8061112f838587612345565b9061113f60405180938193612361565b0390305af461114c61236e565b90156111725790600191611160828761239d565b5261116b818661239d565b500161110d565b602081519101fd5b806060602080938801015201611102565b3461026a57602060031936011261026a576004353033036105e9578060401c805f5260046020526111c760405f205467ffffffffffffffff1690565b9167ffffffffffffffff81169267ffffffffffffffff811684111561128a5767ffffffffffffffff61ffff9185031611611262577f4d9dbebf1d909894d9c26fe228c27cec643b2cb490124e5b658f4edd203c20c19261124c61125d9377ffffffffffffffffffffffffffffffffffffffffffffffff165f52600460205260405f2090565b556040519081529081906020820190565b0390a1005b7f24d35a26000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f756688fe000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004353033036105e957805f906112e66318fb586460045260015f5260245f2090565b9068fbb67fda52d4bfb8bf8414611444578315611434575b811980549182159260011c5f19810191600183811b17946113c857856020525f5260405f209485549283156113b9575f97505f1984010361139b575b505050555561134960015b1590565b610fba57611367611362825f52600260205260405f2090565b612413565b5f818152600360205260408120557fe5af7daed5ab2a2dc5f98d53619f05089c0c14d11a6621f6b906a2366c9a7ab35f80a2005b5f1980849383010154928392010155855260408520555f808061133a565b50505050505050611349901590565b9550505050506001908281541461141857818101838154146114045750600201918254146113fa575060019050611349565b5f61134992551590565b611349935060025f92019081549055551590565b6113499250806002835f93019182548155019081549055551590565b5068fbb67fda52d4bfb8bf6112fe565b63f5a267f15f526004601cfd5b3461026a575f60031936011261026a576020600154604051908152f35b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff6004356114a081610539565b165f526020805f205c604051908152f35b604060031936011261026a5760043567ffffffffffffffff811161026a57806004019060a0600319823603011261026a5760243567ffffffffffffffff811161026a57611502903690600401610331565b91909273ffffffffffffffffffffffffffffffffffffffff606483013561152881610539565b16801590811561164e575b50156105e95760848201358015159081611644575b5061161c5761156a6113459361159a956115656024860135613b31565b613b63565b9691604461158c611587611582999496993689613314565b613b94565b611e62565b96013596866104888961191e565b6115f4576109e994610d66938573ffffffffffffffffffffffffffffffffffffffff6115dd6115e4956115cc8461179e565b956115d687612aa9565b369161091a565b9316613d45565b6115ef369180612472565b610ea4565b7f8baa579f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f0819bdcd000000000000000000000000000000000000000000000000000000005f5260045ffd5b905042115f611548565b905033145f611533565b3461026a57602060031936011261026a576020610760600435613393565b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff6004356116a881610539565b165f526005602052602060405f2054604051908152f35b6116c83661035f565b6116d3839293613393565b156117425782019160208184031261026a5780359067ffffffffffffffff821161026a576109e9937eff000000000000000000000000000000000000000000000000000000000000926117269201610dc8565b916040519261173484610876565b8352161560208201526122f8565b7f7f181275000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a575f60031936011261026a5760206102626124a5565b3461026a575f60031936011261026a5760206102626133e8565b80156117e8576117ad81612f62565b6117d9577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f52600360205260405f205490565b5079010000000000000000000000000000000000000000000000000090565b6040519061181482610876565b60606020835f81520152565b90600182811c92168015611867575b602083101461183a57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f169161182f565b81601f8201121561026a57805190611888826108fe565b9261189660405194856108b3565b8284526020838301011161026a57815f9260208093018386015e8301015290565b60208183031261026a5780519067ffffffffffffffff821161026a570160408183031261026a57604051916118eb83610876565b81516118f6816108f4565b8352602082015167ffffffffffffffff811161026a576119169201611871565b602082015290565b611926611807565b508015611a325761193681612f62565b611962577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f52600260205260405f206040515f82549261197d84611820565b9081845260208401946001811690815f146119f757506001146119ba575b5050816119b06102ff949360209303826108b3565b80510101906118b7565b5f908152602081209092505b8183106119dd5750508101602001816119b061199b565b6001816020929493945483858801015201910191906119c6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686525050151560051b82016020019050816119b061199b565b506102ff6125d8565b9180611b5a5761773961ffff821904028314611b3357611a5a91612847565b9391611a69839694929661191e565b91611a7e8282611a77611e6e565b8887612860565b928315611b17575b50505015611aef57611ac5611acb94611a9e8361179e565b611aa781612aa9565b73ffffffffffffffffffffffffffffffffffffffff1694369161091a565b92612b55565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b505050507fffffffff0000000000000000000000000000000000000000000000000000000090565b611b2b935085611b256124a5565b91612a47565b5f8080611a86565b5050507f773900010000000000000000000000000000000000000000000000000000000090565b90611b658282612612565b611b735790611a5a91612847565b611b7f926104886125d8565b15611ba8577f1626ba7e0000000000000000000000000000000000000000000000000000000090565b7fffffffff0000000000000000000000000000000000000000000000000000000090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561026a570180359067ffffffffffffffff821161026a5760200191813603831361026a57565b60405190611c2c6020836108b3565b5f8252565b3033036105e957805160038110156102785780611c4f60029261026e565b1480611d07575b611cdf577f8df00f8e3bbfb2c3024a60b74e1d4e520f7cbe1da3476726241146ecf6328832611cda611c8783612fe0565b92611cc4604051611cad81611c9f85602083016102d7565b03601f1981018352826108b3565b611cbf865f52600260205260405f2090565b611d97565b611ccd8461301d565b50604051918291826102d7565b0390a2565b7f41e2e8f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b50602081015173ffffffffffffffffffffffffffffffffffffffff611d37825192602080309583010191016126f5565b1614611c56565b818110611d49575050565b5f8155600101611d3e565b9190601f8111611d6357505050565b610562925f5260205f20906020601f840160051c83019310611d8d575b601f0160051c0190611d3e565b9091508190611d80565b919091825167ffffffffffffffff811161089257611dbf81611db98454611820565b84611d54565b6020601f8211600114611dfd578190611dee9394955f92611df2575b50505f198260011b9260031b1c19161790565b9055565b015190505f80611ddb565b601f19821690611e10845f5260205f2090565b915f5b818110611e4a57509583600195969710611e32575b505050811b019055565b01515f1960f88460031b161c191690555f8080611e28565b9192602060018192868b015181550194019201611e13565b6102ff90610a936124a5565b73ffffffffffffffffffffffffffffffffffffffff611e8b612187565b5094509150939150604051937f000000000000000000000000000000000000000000000000000000000000000060208601527f00000000000000000000000000000000000000000000000000000000000000006040860152606085015216608083015260a082015260a081526102ff60c0826108b3565b821561202c5773ffffffffffffffffffffffffffffffffffffffff3091160361200457335f908152602090205c90828210611fdc5781835f1973ffffffffffffffffffffffffffffffffffffffff9410611fca575b505016905f80808084865af1611f6b61236e565b5015611fa2576040519081527f3f1beca043a9fe9118bbaeca0035e81e02d6d7cf184bf32fa9dfbd73fdd027c060203092a3600190565b7fb06a467a000000000000000000000000000000000000000000000000000000005f5260045ffd5b611fd5910333612f43565b5f83611f57565b7fc45cb513000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f7d1c29f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b505050600190565b91905f92821561217e5773ffffffffffffffffffffffffffffffffffffffff3091160361200457335f90815260056020526040902054828110611fdc575f198110612102575b5073ffffffffffffffffffffffffffffffffffffffff16918080808085875af16120a261236e565b50156120da57506040519081527fed1cf8378e55f85e35be72eebdbef1b7347825916e51aa538d1855113f8c259d60203092a3600190565b807fb06a467a0000000000000000000000000000000000000000000000000000000060049252fd5b73ffffffffffffffffffffffffffffffffffffffff919350829003925f93806121493373ffffffffffffffffffffffffffffffffffffffff165f52600560205260405f2090565b5560405190815233907f85b16643b7d42712d1470a1ed9822d6e8cadad23eb1141cabefa28da0944c5b790602090a29061207a565b50505050600190565b7f0f000000000000000000000000000000000000000000000000000000000000009060408051906121b881836108b3565b600782527f43616c6962757200000000000000000000000000000000000000000000000000602083015280516121ee82826108b3565b600581527f312e302e3000000000000000000000000000000000000000000000000000000060208201526006549293909246923092909160a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001617915161228f6020826108b3565b5f80825236602083013790565b5f547f80000000000000000000000000000000000000000000000000000000000000008116156122df5773ffffffffffffffffffffffffffffffffffffffff1690565b50734337084d9e255ff0702461cf8895ce9e3b5ff10890565b61230133613288565b61230a816132e1565b156105e95761056291613132565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9082101561235c5761038f9160051b810190611bcc565b612318565b908092918237015f815290565b3d15612398573d9061237f826108fe565b9161238d60405193846108b3565b82523d5f602084013e565b606090565b805182101561235c5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81160361240e57565b6123b1565b61241d8154611820565b9081612427575050565b81601f5f9311600114612438575055565b8183526020832061245491601f0160051c810190600101611d3e565b808252602082209081548360011b905f198560031b1c191617905555565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18136030182121561026a570190565b60065460a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161760405160208101917fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647283527f000000000000000000000000000000000000000000000000000000000000000060408301527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a083015260c082015260c0815261259c60e0826108b3565b51902090565b5f3560e01c63bc197c81811463f23a6e6182141763150b7a028214176125cf57633c10b94e5f526004601cfd5b6020526020603cf35b6125e0611807565b50604051306020820152602081526125f96040826108b3565b6040519061260682610876565b60028252602082015290565b5060408114908115612622575090565b604191501490565b919082604091031261026a576020825192015190565b60208183031261026a5780359067ffffffffffffffff821161026a57019060c08282031261026a576126706108d6565b91803567ffffffffffffffff811161026a578261268e918301610950565b8352602081013567ffffffffffffffff811161026a5760a0926126b2918301610950565b6020840152604081013560408401526060810135606084015260808101356080840152013560a082015290565b919082604091031261026a576020823592013590565b9081602091031261026a57516102ff81610539565b92600284516127188161026e565b6127218161026e565b0361278a5760206127596127849361275373ffffffffffffffffffffffffffffffffffffffff9661276b95369161091a565b9061379e565b940151602080825183010191016126f5565b73ffffffffffffffffffffffffffffffffffffffff1690565b91161490565b9083516127968161026e565b61279f8161026e565b6127dc576127d7906127cf6127c460206102ff9701516020808251830101910161262a565b9590948101906126df565b92909161375b565b613773565b600184516127e98161026e565b6127f28161026e565b0361283f57611c9f61283a61282561281a60206102ff9801516020808251830101910161262a565b969095810190612640565b92604051928391602083019190602083019252565b613549565b505050505f90565b80359261038f6128578484613834565b9490949361385f565b909193929361286f84866142d4565b949093612886602088013592604089013598614304565b90916128c58985604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b03612a3b576128d391613922565b82959299939199158015612a33575b612a2557611c9f6129c061290d6102ff9c6129056129e396612a1f9b369161091a565b94369161091a565b604051928391605c61294a60208501977f5479706564446174615369676e280000000000000000000000000000000000008952602e860190613474565b7f20636f6e74656e74732c737472696e67206e616d652c737472696e672076657281527f73696f6e2c75696e7432353620636861696e49642c616464726573732076657260208201527f696679696e67436f6e74726163742c627974657333322073616c74290000000060408201520190613474565b51902092611c9f6040519384926020840196875260408401526060830190613474565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9061270a565b505050505050505050505f90565b5080156128e2565b50505050505050505f90565b906102ff949392612a1f91604090601c60208351612a6585826108b3565b828152017f506572736f6e616c5369676e286279746573207072656669786564290000000081522091805191602083019384528183015281526129e36060826108b3565b612ab290613b12565b90612aba5750565b64ffffffffff907f48c76fe1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b51907fffffffff000000000000000000000000000000000000000000000000000000008216820361026a57565b9081602091031261026a576102ff90612aed565b6102ff93926060928252602082015281604082015201906102b2565b6040513d5f823e3d90fd5b9290919260048116612b68575b50505050565b612bba9373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f9ac4eafd00000000000000000000000000000000000000000000000000000000855260048501612b2e565b0392165afa908115612c78577f9ac4eafd00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612c49575b501603612c21575f808080612b62565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b612c6b915060203d602011612c71575b612c6381836108b3565b810190612b1a565b5f612c11565b503d612c59565b612b4a565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561026a57016020813591019167ffffffffffffffff821161026a57813603831361026a57565b601f8260209493601f1993818652868601375f8582860101520116010190565b91612e3c906102ff96949592845260a06020850152612d2c60a08501612d1283610557565b73ffffffffffffffffffffffffffffffffffffffff169052565b602081013560c0850152612e0b612dff612da0612d62612d4f6040860186612c7d565b61012060e08b01526101c08a0191612ccd565b612d6f6060860186612c7d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608a8403016101008b0152612ccd565b608084013561012088015260a084013561014088015260c0840135610160880152612dce60e0850185612c7d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60898403016101808a0152612ccd565b91610100810190612c7d565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868403016101a0870152612ccd565b936040830152606082015260808184039101526102b2565b9190939460028316612e69575b505050505050565b602094612ebb73ffffffffffffffffffffffffffffffffffffffff92604051988997889687957f9e364dba00000000000000000000000000000000000000000000000000000000875260048701612ced565b0392165afa908115612c78577f9e364dba00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f24575b501603612c21575f8080808080612e61565b612f3d915060203d602011612c7157612c6381836108b3565b5f612f12565b73ffffffffffffffffffffffffffffffffffffffff165f5260205f205d565b612f7860016318fb58646004525f5260245f2090565b68fbb67fda52d4bfb8bf8214611444578115612fcf575b80195415612fa6576020525f5260405f2054151590565b9060019181815414612fca57818382015414612fca5760020154146102ff57505f90565b505090565b68fbb67fda52d4bfb8bf9150612f8f565b8051906003821015610278576020015160208151910120604051906130096020830180946102a5565b60408201526040815261259c6060826108b3565b905f9161303660016318fb58646004525f5260245f2090565b9068fbb67fda52d4bfb8bf8114611444578015613122575b811991825491816020528215613096575b805f5260405f2092835415613075575050505050565b9091929394955060011c8092015560010180915560011b6001179055600190565b91508054801561311957828114612b625760018201805490811561310b575083811461310457600283019182549283156130f55750848314612e61575f52600160405f20555f52600260405f20555f52600360405f205560079161305f565b95505050505091925055600190565b5050505050565b945050505091925055600190565b50555060019150565b5068fbb67fda52d4bfb8bf61304e565b5f5b81518051821015612b6257816131499161239d565b51805173ffffffffffffffffffffffffffffffffffffffff1680613282575030905b6131748561179e565b60ff60c882901c161580613263575b61323b5785925f8073ffffffffffffffffffffffffffffffffffffffff6131e094169460208101936131c060408651930192835190838b8b61444d565b9451915191602083519301915af192836131d861236e565b9586926145da565b158061322e575b6131f45750600101613134565b61322a906040519182917fa5fa8d2b00000000000000000000000000000000000000000000000000000000835260048301610acb565b0390fd5b50602083015115156131e7565b7f3ceb88d9000000000000000000000000000000000000000000000000000000005f5260045ffd5b503073ffffffffffffffffffffffffffffffffffffffff841614613183565b9061316b565b73ffffffffffffffffffffffffffffffffffffffff163081146132dc576102ff90604051906020820152602081526132c16040826108b3565b604051906132ce82610876565b600282526020820152612fe0565b505f90565b801561330e576132f081612f62565b156132dc575f52600360205261330960405f2054613b12565b501590565b50600190565b91909160a08184031261026a576040519060a0820182811067ffffffffffffffff82111761089257604052819381359167ffffffffffffffff831161026a576133636080939284938301610ea4565b84526020810135602085015260408101356040850152606081013561338781610539565b60608501520135910152565b7f010000000000000000000000000000000000000000000000000000000000000081149081156133c1575090565b7f010100000000000000000000000000000000000000000000000000000000000091501490565b6318fb586460045260015f5260245f2090811954918260011c92151590805415600260018301541592015415921561341f57505050565b90919293505f90613445575060019061344057506002906102ff5750600390565b919050565b92915050565b906015820180921161240e57565b906002820180921161240e57565b9190820180921161240e57565b805191908290602001825e015f815290565b9061056260016134c6936040519485917f226368616c6c656e6765223a22000000000000000000000000000000000000006020840152602d830190613474565b7f22000000000000000000000000000000000000000000000000000000000000008152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18101855201836108b3565b80516020101561235c5760400190565b6135339060209392613474565b9081520190565b9081602091031261026a575190565b92919060a081019384517f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a8106137485760208201907fff1a2a9176d650e4a99dedb58f1793003935130579fe17b5a3f698ac5b00e6346135b8835160608601516135b28161344b565b916148b6565b6020815191012003613751576135d06135d591613e0f565b613486565b6135ea825160408501516135b2845182613467565b60208151910120906020815191012003613748577f01000000000000000000000000000000000000000000000000000000000000008061365361362d8551613516565b517fff000000000000000000000000000000000000000000000000000000000000001690565b1603613748575f61366d6020925160405191828092613474565b039060025afa15612c785760205f6136a281516136968551611c9f604051938492888401613526565b60405191828092613474565b039060025afa15612c785760805f519101935f808651856136f38551611c9f8a60405194859360208501978c899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa9461370361236e565b8051968061373f575b61371f57506102ff955051905191613e76565b60019661373b965081016020908101955001925061353a915050565b1490565b5086151561370c565b50505050505f90565b5050505050505f90565b5f5260206001815f60025afa51903d1561377157565bfe5b939291906137848484848489613fd0565b9095901561379457505050505090565b6102ff955061408b565b9190915f92604051918151806040146137f6576041146137bd57505050565b602092945060608201515f1a835260408201516060525b5f5201516040526020604060805f60015afa505f6060523d6060185191604052565b5060209294507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040830151601b8160ff1c018552166060526137d4565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110610d6b57565b909163ffffffff60408301351682019263ffffffff84351692602080860195850101910110610d6b57565b905f19820191821161240e57565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255103907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551821161240e57565b9082101561235c570190565b801561240e575f190190565b90929192831161026a579190565b9093929384831161026a57841161026a578101920390565b9080613935575b50505f905f905f905f90565b7f29000000000000000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000006139b361398d6139868561388a565b85876138e4565b357fff000000000000000000000000000000000000000000000000000000000000001690565b1603613a59575f5b8181106139ce575b5050505b5f80613929565b6139dc61398d8284866138e4565b7fff0000000000000000000000000000000000000000000000000000000000000081167f280000000000000000000000000000000000000000000000000000000000000003613a4457508015613a3f57613a379082846138fc565b939093929190565b6139c3565b613a4d9061432f565b613a3f576001016139bb565b9081805b613a6a575b5050506139c7565b613a8461398d613a7d839694959661388a565b86866138e4565b7fff0000000000000000000000000000000000000000000000000000000000000081167f290000000000000000000000000000000000000000000000000000000000000003613aed575080613ade85613ae693818761390a565b9590946138fc565b9293929091565b613afa909493929461432f565b613b0d57613b07906138f0565b80613a5d565b613a62565b60a01c64ffffffffff16908115613b2a574282109190565b5f91508190565b8060401c5f52600460205260405f208054915f19831461240e5767ffffffffffffffff91600184019055160361128a57565b909163ffffffff823516820163ffffffff8135169360208083019286010184820110610d6b5761038f919493613834565b60c1610100613ba660405191826108b3565b8181527f290000000000000000000000000000000000000000000000000000000000000060e060208301927f5369676e65644261746368656443616c6c284261746368656443616c6c20626184527f746368656443616c6c2c75696e74323536206e6f6e63652c627974657333322060408201527f6b6579486173682c61646472657373206578656375746f722c75696e7432353660608201527f20646561646c696e65294261746368656443616c6c2843616c6c5b5d2063616c60808201527f6c732c626f6f6c207265766572744f6e4661696c7572652943616c6c2861646460a08201527f7265737320746f2c75696e743235362076616c75652c6279746573206461746160c08201520152209061259c613cc382516146c5565b611c9f6020840151936040810151906080613cf5606083015173ffffffffffffffffffffffffffffffffffffffff1690565b9101519160405196879560208701998a929360a09473ffffffffffffffffffffffffffffffffffffffff93989796929860c086019986526020860152604085015260608401521660808201520152565b9290919260018116613d575750505050565b613da99373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f33dd593c00000000000000000000000000000000000000000000000000000000855260048501612b2e565b0392165afa908115612c78577f33dd593c00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612c4957501603612c21575f808080612b62565b6040516102ff91613e216060836108b3565b604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f6040830152614960565b939190929383158015613f91575b8015613f89575b8015613f5f575b61374857613ea08386614a07565b156137485760405191602083526020808401526020604084015260608301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f60808301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255160a083015260208260c08160055f19fa1561026a577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255194613f599386613f53945181818909940991614ad3565b91613898565b90081590565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551821015613e92565b508115613e8b565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551841015613e84565b9081602091031261026a57516102ff81610e9a565b919093613fe06113458387615372565b8015614078575b61406c575f94611c9f6140269287966040519586946020860198899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa61403561236e565b9080614061575b1561405a578060208061405493518301019101613fbb565b90600190565b505f905f90565b50602081511461403c565b50505050505f90600190565b5061408661134582866153e9565b613fe7565b909392919261409a8486615372565b1580156142c3575b613748577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255161429061373b9561428561429c966140dd615478565b956140e66108e5565b5f81525f60208201525f604082015287526140ff6108e5565b9182526020820152600160408201526141188660200190565b9081526141236108e5565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29681527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f56020820152600160408201526080870190815261427b6141878351615736565b6040890190815261426c61425d61419e8551615736565b6101008c019081526141b38751855190615773565b9560608d019687528c6141d36141cc8a51845190615773565b9160a00190565b528c6141ec6141e58751845190615773565b9160c00190565b528c6142056141fe8951845190615773565b9160e00190565b528c61421f6142178a51855190615773565b916101200190565b528c6142396142318751855190615773565b916101400190565b528c61425361424b8951855190615773565b916101600190565b5251905190615773565b6101808b018181529551615773565b6101a08a015251835190615773565b6101c08801614253565b6101e0850152615792565b818188099309906154be565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551900690565b506142ce81846153e9565b156140a2565b909163ffffffff82351682019263ffffffff843516926020808601958501019101106142fc57565b9150505f5f91565b909163ffffffff60608301351682019263ffffffff843516926020808601958501019101106142fc57565b7fff000000000000000000000000000000000000000000000000000000000000001680159081156143ee575b81156143c4575b811561439a575b8115614373575090565b7f290000000000000000000000000000000000000000000000000000000000000091501490565b7f280000000000000000000000000000000000000000000000000000000000000081149150614369565b7f2c0000000000000000000000000000000000000000000000000000000000000081149150614362565b7f20000000000000000000000000000000000000000000000000000000000000008114915061435b565b91909160408184031261026a5761442e81612aed565b92602082015167ffffffffffffffff811161026a576102ff9201611871565b606095949092919060088416614464575050505050565b5f94965073ffffffffffffffffffffffffffffffffffffffff809493926144d487936040519a8b98899788957fec9b4ee4000000000000000000000000000000000000000000000000000000008752600487015216602485015260448401526080606484015260848301906102b2565b0393165af18015612c78575f925f9161453d575b507fffffffff000000000000000000000000000000000000000000000000000000007fec9b4ee40000000000000000000000000000000000000000000000000000000091931603612c21575f80808080613104565b7fffffffff0000000000000000000000000000000000000000000000000000000093507fec9b4ee400000000000000000000000000000000000000000000000000000000915061459e903d805f833e61459681836108b3565b810190614418565b93909391506144e8565b926102ff94926145cc928552151560208501526080604085015260808401906102b2565b9160608184039101526102b2565b909291601082166145ec575050505050565b5f73ffffffffffffffffffffffffffffffffffffffff60209561463e604051988997889687947fc82b1759000000000000000000000000000000000000000000000000000000008652600486016145a8565b0393165af1908115612c78577fc82b175900000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f916146a6575b501603612c21575f80808080613104565b6146bf915060203d602011612c7157612c6381836108b3565b5f614695565b608060576040516146d76080826108b3565b8181527f6e743235362076616c75652c6279746573206461746129000000000000000000606060208301927f4261746368656443616c6c2843616c6c5b5d2063616c6c732c626f6f6c20726584527f766572744f6e4661696c7572652943616c6c286164647265737320746f2c75696040820152015220908251805194601f1961477961476388610db0565b97614771604051998a6108b3565b808952610db0565b013660208801376060935f5b8351811015614862578061479b6001928661239d565b5160296040516147ab8a826108b3565b8181527f7465732064617461290000000000000000000000000000000000000000000000604060208301927f43616c6c286164647265737320746f2c75696e743235362076616c75652c627984520152209073ffffffffffffffffffffffffffffffffffffffff81511690604060208201519101516020815191012090604051926020840194855260408401528a8301528882015287815261484e60a0826108b3565b51902061485b828b61239d565b5201614785565b509493509461259c9250614893915060209060405161488881611c9f85820180956155cf565b519020930151151590565b604080516020810195865290810193909352151560608301528160808101611c9f565b805160609493929083811115614927575b8181111561491f575b508281106148dd57505050565b6040519450918290039101601f19601f830181165b808301518187015201801561490a57601f19906148f2565b505060408184015f6020820152016040528252565b90505f6148d0565b9250826148c7565b90614939826108fe565b61494660405191826108b3565b828152601f1961495682946108fe565b0190602036910137565b908151156149fd579061498d61498861498161497c84516123de565b613459565b6003900490565b61492f565b916020830190828051019060208201928351945f85525b8381106149b357505050505290565b600360049101916001603f845182828260121c16880101518453828282600c1c16880101518385015382828260061c168801015160028501531685010151600382015301906149a4565b50506102ff611c1d565b6ffffffffeffffffffffffffffffffffff60601b198110801590614ab5575b8015614aa4575b614a9e576ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b818381807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81970991818180090908089180091490565b50505f90565b5080158015614a2d57508115614a2d565b506ffffffffeffffffffffffffffffffffff60601b19821015614a26565b90915f925f9160ff9581158061536a575b61535f57614af283866155fc565b949097881580615357575b615309575b83811c60028460fe1c16015b156152f157600184821c16600284831c60011b1601600181146152a6575b60028114615299575b60031461528e575b5f1990969493929196019460019889975b875f1911614be55750505050505050505060405191606083015260208252602080830152602060408301527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808301526ffffffffeffffffffffffffffffffffff60601b1960a083015260208260c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b199151900990565b6ffffffffeffffffffffffffffffffffff60601b198160029c989a9c9b959697999b09936ffffffffeffffffffffffffffffffffff60601b1985800980956ffffffffeffffffffffffffffffffffff60601b19828409966ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b198a8208908a6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b19906003099c6ffffffffeffffffffffffffffffffffff60601b19908309986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19828009906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199087086ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1981938309906ffffffffeffffffffffffffffffffffff60601b19910891878c1c600116878d1c60011b600216018015615269576001811461521e575b60028114615213575b60031461520a575b8c156151f5578c916ffffffffeffffffffffffffffffffffff60601b198085818d8196090893888203920908948115614fe0575b6ffffffffeffffffffffffffffffffffff60601b19868009986ffffffffeffffffffffffffffffffffff60601b198a9788099d8e976ffffffffeffffffffffffffffffffffff60601b1991099d6ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09866ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b19848009906ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19910991856ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b19910892985f19905b0196949392979597614b4e565b8c8615614fed5750614e42565b989150919a94506ffffffffeffffffffffffffffffffffff60601b198b7fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b198180099283916ffffffffeffffffffffffffffffffffff60601b19838309946ffffffffeffffffffffffffffffffffff60601b1991099d8e916ffffffffeffffffffffffffffffffffff60601b198281038208916ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1990600309926ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19838009906ffffffffeffffffffffffffffffffffff60601b1991089b6ffffffffeffffffffffffffffffffffff60601b199109918b6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b1991086ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b199108925f1990614fd3565b60019c50909a8c98509094505f199150614fd3565b50508183614e0e565b8b92508a9150614e06565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29692507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59150614dfd565b5050505f19906ffffffffeffffffffffffffffffffffff60601b199a949a0393614fd3565b889750859150614b3d565b9697508796859250614b35565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29698507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59250614b2c565b5f1901600184821c16600284831c60011b1601614b0e565b91927fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551919382039008915f9183158061534f575b15614b02575050505050505050505f90565b50600161533d565b508515614afd565b505050505050505f90565b508015614ae4565b9081151591826153bf575b50816153b5575b8161538d575090565b7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89150111590565b8015159150615384565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325511191505f61537d565b6ffffffffeffffffffffffffffffffffff60601b1980807f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b8185817fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81838009080908818580091493109110161690565b6040519061546782610897565b5f6040838281528260208201520152565b6040519061020061548981846108b3565b825f5b82811061549857505050565b6020906154a361545a565b818401520161548c565b90601081101561235c5760051b0190565b5f9392849283929183915b608083106154df575050505061038f9293615a28565b856155ad575b600c6154f18260fc1c90565b1660036154fe8460fe1c90565b1617604061550c82876154ad565b510151615534575b5061552b61552460019260021b90565b9260021b90565b920191906154c9565b959194909782155f146155835750505061554e84836154ad565b515192600161552b6155246040615574602061556a8b8a6154ad565b51015199886154ad565b5101519796995b925050615514565b61552495926001926155a29261559c61552b9a896154ad565b5161587f565b97919690969961557b565b96946155be91946155c493966157f8565b916157f8565b9491939093966154e5565b80516020909101905f5b8181106155e65750505090565b82518452602093840193909201916001016155d9565b91907f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5918015615730578461038f9495831480615727575b156157125750506ffffffffeffffffffffffffffffffffff60601b1982600209916ffffffffeffffffffffffffffffffffff60601b198084800993818080808881818a09950996817fffffffff00000001000000000000000000000000fffffffffffffffffffffffe816001840892080960030981808080867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd0981858009089681600181818c099b099809810393868203900890090890615b45565b90919261571e93615aa7565b92909190615b45565b50818414615655565b50925090565b6157569061574261545a565b5080519060406020820151910151916157f8565b906040519261576484610897565b83526020830152604082015290565b6157569161577f61545a565b508051604060208301519201519261587f565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f6157dd92615bdb565b90156157e65790565b634e487b715f5260126020526024601cfd5b9290916ffffffffeffffffffffffffffffffffff60601b1980918180868009968180808a818080808a800980097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b82039008900908940960020990565b91939092935f945f945f946040810151906ffffffffeffffffffffffffffffffffff60601b198280096ffffffffeffffffffffffffffffffffff60601b19858009926ffffffffeffffffffffffffffffffffff60601b1980878609602085015109916ffffffffeffffffffffffffffffffffff60601b19808681868103818d8189890990090896510991818381039189090890811585151694855f146159c35750505050506001146159315750505050565b6ffffffffeffffffffffffffffffffffff60601b198080809a508699508097985080969381808087819998099d838f94097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b820390089009089409600209905f808080612b62565b929b50935096506ffffffffeffffffffffffffffffffffff60601b1980808080809c9d50809a995080985080969f508b8009809709958a098180876002098103818381038188800908089d098103938c8203900890090895099009905f808080612b62565b92918015615a9d576ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffd615a6f92615bdb565b9190156157e6576ffffffffeffffffffffffffffffffffff60601b1991829081808280098097099509900990565b505090505f905f90565b9392908015615b38576ffffffffeffffffffffffffffffffffff60601b19806001969481808080809a9881809981039d8e920908938160018b820392090881818009998a9182099809918180898180877fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09818381038188800908089c09938b820390080908946001099260010990565b5092509190600190600190565b9092919260405192602084526020808501526020604085015260608401527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808401526ffffffffeffffffffffffffffffffffff60601b1960a084015260208360c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b198093918180935180920995098009900991565b91908115615c16576020925f9260c0926040519286845286808501528660408501526060840152608083015260a082015260055afa905f5190565b5050505f905f9056fea164736f6c634300081d000a",
- "nonce": "0x4",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000043000000000000000000000000000000000000040000000000000000000000005c346464d33f90babaf70db6388507cc889c1070000000000000000000000000792edade80af5fc680d96a2ed80a44247d2cf6fd96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b540000000000000000000000001631559198a9e474033433b2958dabc135ab6446000000000000000000000000b218e4f7cf0533d4696fdfc419a0023d33345f280000000000000000000000004ad2f4cca2682cbb5b950d660dd458a1d3f1baad0000000000000000000000002d509190ed0172ba588407d4c2df918f955cc6e1",
+ "nonce": "0x8",
"chainId": "0x13e31"
},
"additionalContracts": [],
@@ -22,28 +24,28 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0x72ca25",
+ "cumulativeGasUsed": "0x9d061e",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0x16a457d4b27488241c9117829ebd1b32c807763d5b59a47c1b6650d7d9204c70",
- "transactionIndex": "0x5",
- "blockHash": "0xb7ba1ed86b6c47e1494e69d3e29480c936c1ca5ec9a53f2c93d555fa56ed42f6",
- "blockNumber": "0x124b35e",
- "gasUsed": "0x4e5d40",
- "effectiveGasPrice": "0x72034",
- "from": "0xe49acc3b16c097ec88dc9352ce4cd57ab7e35b95",
+ "transactionHash": "0xde880e1afb0d224c3b7eae8446240a0f6ca91a424cce7d108cc11d11731f0738",
+ "transactionIndex": "0xd",
+ "blockHash": "0x20fe11b39b2599a8197c976aded64dc05ec14ac990f2c4bb627712e0d9891d9b",
+ "blockNumber": "0x1a1ffff",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x482",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": "0x458f5a9f47a01bea5d7a32662660559d9ed3312c",
- "l1Fee": "0xcb0a809ebc",
- "l1GasPrice": "0x87eb5b90",
- "l1GasUsed": "0x54e08"
+ "contractAddress": "0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7",
+ "l1Fee": "0xe322b682b",
+ "l1GasPrice": "0x9d40532",
+ "l1GasUsed": "0x52108"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1747174697,
+ "timestamp": 1763597934991,
"chain": 81457,
- "commit": "ae93235"
+ "commit": "b0d3829"
}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/8453/run-1763597784466.json b/broadcast/Deploy-all.s.sol/8453/run-1763597784466.json
new file mode 100644
index 00000000..c009542e
--- /dev/null
+++ b/broadcast/Deploy-all.s.sol/8453/run-1763597784466.json
@@ -0,0 +1,54 @@
+{
+ "transactions": [
+ {
+ "hash": "0x5011641b1bee40f6357a6d23563d9ef1e6eb765d5f9d2908f59e8d087713091a",
+ "transactionType": "CREATE2",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259",
+ "function": null,
+ "arguments": [
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6, 0x33128a8fC17869897dcE68Ed026d694621f6FDfD, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x498581fF718922c3f8e6A244956aF099B2652b2b, 0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1, 0x7C5f5A4bBd8fD63184577525326123B519429bDc, 0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64)"
+ ],
+ "transaction": {
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "value": "0x0",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000008909dc15e40173ff4699343b6eb8132c65e18ec600000000000000000000000033128a8fc17869897dce68ed026d694621f6fdfd96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b00000000000000000000000003a520b32c04bf3beef7beb72e919cf822ed34f10000000000000000000000007c5f5a4bbd8fd63184577525326123b519429bdc00000000000000000000000009aea4b2242abc8bb4bb78d537a67a245a7bec64",
+ "nonce": "0x8",
+ "chainId": "0x2105"
+ },
+ "additionalContracts": [],
+ "isFixedGasLimit": false
+ }
+ ],
+ "receipts": [
+ {
+ "status": "0x1",
+ "cumulativeGasUsed": "0x248fc7e",
+ "logs": [],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "type": "0x2",
+ "transactionHash": "0x5011641b1bee40f6357a6d23563d9ef1e6eb765d5f9d2908f59e8d087713091a",
+ "transactionIndex": "0x95",
+ "blockHash": "0x935f3178caea8d5526439ba54073c74ffc5e4cb0bf7412f80bc4e7c96115a080",
+ "blockNumber": "0x24a0073",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x281ea7",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
+ "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
+ "contractAddress": "0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259",
+ "l1BaseFeeScalar": "0x8dd",
+ "l1BlobBaseFee": "0xf3",
+ "l1BlobBaseFeeScalar": "0x101c12",
+ "l1Fee": "0x27824033",
+ "l1GasPrice": "0xae1e152",
+ "l1GasUsed": "0x2f17b"
+ }
+ ],
+ "libraries": [],
+ "pending": [],
+ "returns": {},
+ "timestamp": 1763597784466,
+ "chain": 8453,
+ "commit": "1f66908"
+}
\ No newline at end of file
diff --git a/broadcast/Deploy-all.s.sol/8453/run-latest.json b/broadcast/Deploy-all.s.sol/8453/run-latest.json
index cf6f9cb2..c009542e 100644
--- a/broadcast/Deploy-all.s.sol/8453/run-latest.json
+++ b/broadcast/Deploy-all.s.sol/8453/run-latest.json
@@ -1,20 +1,20 @@
{
"transactions": [
{
- "hash": "0x18eaf38c7be1c336bea3fde5638af076232c9d3c537203b8c9671e0962e3baac",
+ "hash": "0x5011641b1bee40f6357a6d23563d9ef1e6eb765d5f9d2908f59e8d087713091a",
"transactionType": "CREATE2",
- "contractName": "ERC7914Detector",
- "contractAddress": "0xc470458fc6a7e43471b31e6a2eb2612215a7102e",
+ "contractName": "UniversalRouter",
+ "contractAddress": "0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259",
"function": null,
"arguments": [
- "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00"
+ "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6, 0x33128a8fC17869897dcE68Ed026d694621f6FDfD, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x498581fF718922c3f8e6A244956aF099B2652b2b, 0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1, 0x7C5f5A4bBd8fD63184577525326123B519429bDc, 0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64)"
],
"transaction": {
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"value": "0x0",
- "input": "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b506040516103c53803806103c583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610335610090600039600081816068015260d301526103356000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806337e276381461003b57806385bb2fa814610063575b600080fd5b61004e6100493660046102b7565b6100a2565b60405190151581526020015b60405180910390f35b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161005a565b6000813b8082036100b65750600092915050565b6100bf83610135565b156101255760006100cf84610172565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610114575060019392505050565b61011d81610191565b949350505050565b61012e83610191565b9392505050565b60006017826001600160a01b03163b101561015257506000919050565b61ef0160f01b610161836102a6565b6001600160e81b0319161492915050565b60008061017e836102a6565b60481c6001600160a01b03169392505050565b6040805160006024820181905260448201819052606480830182905283518084039091018152608490920183526020820180516001600160e01b031663789ff70160e01b9081179091529251909291839182916001600160a01b038716916101f991906102e0565b600060405180830381855afa9150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b509150915081801561024c575080516020145b1561027f57600081806020019051810190610267919061030f565b90506001811161027d5750600195945050505050565b505b81801561028b57508051155b1561029b57506000949350505050565b506000949350505050565b60006017600080843c505060005190565b6000602082840312156102c957600080fd5b81356001600160a01b038116811461012e57600080fd5b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b60006020828403121561032157600080fd5b505191905056fea164736f6c6343000813000a000000000000000000000000000000009b1d0af20d8c6d0a44e162d11f9b8f00",
- "nonce": "0x143a",
+ "input": "0x00000000000000000000000000000000000000000000000000000000000000006102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba300000000000000000000000042000000000000000000000000000000000000060000000000000000000000008909dc15e40173ff4699343b6eb8132c65e18ec600000000000000000000000033128a8fc17869897dce68ed026d694621f6fdfd96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b00000000000000000000000003a520b32c04bf3beef7beb72e919cf822ed34f10000000000000000000000007c5f5a4bbd8fd63184577525326123b519429bdc00000000000000000000000009aea4b2242abc8bb4bb78d537a67a245a7bec64",
+ "nonce": "0x8",
"chainId": "0x2105"
},
"additionalContracts": [],
@@ -24,31 +24,31 @@
"receipts": [
{
"status": "0x1",
- "cumulativeGasUsed": "0x187fa83",
+ "cumulativeGasUsed": "0x248fc7e",
"logs": [],
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"type": "0x2",
- "transactionHash": "0x18eaf38c7be1c336bea3fde5638af076232c9d3c537203b8c9671e0962e3baac",
- "transactionIndex": "0x87",
- "blockHash": "0xd5acdc381a080a333b49412b5e0e5691e976104877af0a4b14f81fd6dff9f7ff",
- "blockNumber": "0x212878c",
- "gasUsed": "0x38cb0",
- "effectiveGasPrice": "0x14e74c1",
- "from": "0x250a94c03b9b57c93cc5549760d59d6eacfb136d",
+ "transactionHash": "0x5011641b1bee40f6357a6d23563d9ef1e6eb765d5f9d2908f59e8d087713091a",
+ "transactionIndex": "0x95",
+ "blockHash": "0x935f3178caea8d5526439ba54073c74ffc5e4cb0bf7412f80bc4e7c96115a080",
+ "blockNumber": "0x24a0073",
+ "gasUsed": "0x489009",
+ "effectiveGasPrice": "0x281ea7",
+ "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6",
"to": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
- "contractAddress": null,
+ "contractAddress": "0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259",
"l1BaseFeeScalar": "0x8dd",
- "l1BlobBaseFee": "0x1",
+ "l1BlobBaseFee": "0xf3",
"l1BlobBaseFeeScalar": "0x101c12",
- "l1Fee": "0xff117d105",
- "l1GasPrice": "0x9be27239",
- "l1GasUsed": "0x2d12"
+ "l1Fee": "0x27824033",
+ "l1GasPrice": "0xae1e152",
+ "l1GasUsed": "0x2f17b"
}
],
"libraries": [],
"pending": [],
"returns": {},
- "timestamp": 1756326906,
+ "timestamp": 1763597784466,
"chain": 8453,
- "commit": "320811c"
+ "commit": "1f66908"
}
\ No newline at end of file
diff --git a/deployments/1.md b/deployments/1.md
index a0122645..c45de0b6 100644
--- a/deployments/1.md
+++ b/deployments/1.md
@@ -36,8 +36,9 @@
- [Uniswap V2 Factory](#uniswap-v2-factory)
- [Calibur Entry](#calibur-entry)
- [Deployment History](#deployment-history)
- - [Fri May 23 2025](#fri-may-23-2025)
+ - [Thu Jan 31 57856](#thu-jan-31-57856)
- [Wed Aug 27 2025](#wed-aug-27-2025)
+ - [Fri May 23 2025](#fri-may-23-2025)
- [Fri May 02 2025](#fri-may-02-2025)
- [Thu Jan 30 2025](#thu-jan-30-2025)
- [Thu Jan 23 2025](#thu-jan-23-2025)
@@ -110,7 +111,7 @@
| UniversalRouter |
- 0x66a9893cc07d91d95644aedd05d03f95e1dba8af |
+ 0xd92a36b0000531ef3063ded4de20a0783308446c |
N/A |
@@ -225,7 +226,7 @@
Address: [0xc470458fc6a7e43471b31e6a2eb2612215a7102e](https://etherscan.io/address/0xc470458fc6a7e43471b31e6a2eb2612215a7102e)
-Deployment Transaction: [0xdf55d820307711320819d4fb080902214d130d4d0c4e3321341a8eea11980a6c](https://etherscan.io/tx/0xdf55d820307711320819d4fb080902214d130d4d0c4e3321341a8eea11980a6c)
+Deployment Transaction: [0xdf55d820307711320819d4fb080902214d130d4d0c4e3321341a8eea11980a6c](https://eth.blockscout.com/tx/0xdf55d820307711320819d4fb080902214d130d4d0c4e3321341a8eea11980a6c)
@@ -241,7 +242,7 @@ Wed, 27 Aug 2025 20:25:51 UTC
Address: [0xcdde8f9c3414a00f804e5c565eed9949ad17e888](https://etherscan.io/address/0xcdde8f9c3414a00f804e5c565eed9949ad17e888)
-Deployment Transaction: [0x8c5526a3239bd3994144bae9d762efa945485ac9da9c51f53734a02ff9c62da2](https://etherscan.io/tx/0x8c5526a3239bd3994144bae9d762efa945485ac9da9c51f53734a02ff9c62da2)
+Deployment Transaction: [0x8c5526a3239bd3994144bae9d762efa945485ac9da9c51f53734a02ff9c62da2](https://eth.blockscout.com/tx/0x8c5526a3239bd3994144bae9d762efa945485ac9da9c51f53734a02ff9c62da2)
@@ -257,7 +258,7 @@ Wed, 27 Aug 2025 20:25:51 UTC
Address: [0x3ac6e14a142251eb3fe739399e0a8da81ed06888](https://etherscan.io/address/0x3ac6e14a142251eb3fe739399e0a8da81ed06888)
-Deployment Transaction: [0xbe0998cacc36d9689aaa6ada9975df5bf480b486cdd568a50b8140007f8fca81](https://etherscan.io/tx/0xbe0998cacc36d9689aaa6ada9975df5bf480b486cdd568a50b8140007f8fca81)
+Deployment Transaction: [0xbe0998cacc36d9689aaa6ada9975df5bf480b486cdd568a50b8140007f8fca81](https://eth.blockscout.com/tx/0xbe0998cacc36d9689aaa6ada9975df5bf480b486cdd568a50b8140007f8fca81)
@@ -273,7 +274,7 @@ Wed, 27 Aug 2025 20:25:51 UTC
Address: [0x57991106cb7aa27e2771beda0d6522f68524a888](https://etherscan.io/address/0x57991106cb7aa27e2771beda0d6522f68524a888)
-Deployment Transaction: [0x4d0a27817e26b192727a0d22086852f0394b788264de01ccf0293cfc63b25e99](https://etherscan.io/tx/0x4d0a27817e26b192727a0d22086852f0394b788264de01ccf0293cfc63b25e99)
+Deployment Transaction: [0x4d0a27817e26b192727a0d22086852f0394b788264de01ccf0293cfc63b25e99](https://eth.blockscout.com/tx/0x4d0a27817e26b192727a0d22086852f0394b788264de01ccf0293cfc63b25e99)
@@ -289,7 +290,7 @@ Fri, 02 May 2025 19:22:43 UTC
Address: [0xE63C5F5005909E96b5aA9CE10744CCE70eC16CC3](https://etherscan.io/address/0xE63C5F5005909E96b5aA9CE10744CCE70eC16CC3)
-Deployment Transaction: [0xa066fbaed2170a828193d09be87073fc7ba003fa14214a2e08d41b07156f81f9](https://etherscan.io/tx/0xa066fbaed2170a828193d09be87073fc7ba003fa14214a2e08d41b07156f81f9)
+Deployment Transaction: [0xa066fbaed2170a828193d09be87073fc7ba003fa14214a2e08d41b07156f81f9](https://eth.blockscout.com/tx/0xa066fbaed2170a828193d09be87073fc7ba003fa14214a2e08d41b07156f81f9)
@@ -305,7 +306,7 @@ Wed, 29 Jan 2025 23:51:23 UTC
Address: [0xd1428ba554f4c8450b763a0b2040a4935c63f06c](https://etherscan.io/address/0xd1428ba554f4c8450b763a0b2040a4935c63f06c)
-Deployment Transaction: [0xf1670f6207b57912bacf5dd33045fa2ae7f3754f4933c11e5d8f892bf27d8977](https://etherscan.io/tx/0xf1670f6207b57912bacf5dd33045fa2ae7f3754f4933c11e5d8f892bf27d8977)
+Deployment Transaction: [0xf1670f6207b57912bacf5dd33045fa2ae7f3754f4933c11e5d8f892bf27d8977](https://eth.blockscout.com/tx/0xf1670f6207b57912bacf5dd33045fa2ae7f3754f4933c11e5d8f892bf27d8977)
@@ -350,7 +351,7 @@ Implementation: [0xb5b6d1ba9d3c85d3e94331341c1c880b22e3f144](https://etherscan.i
Address: [0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e](https://etherscan.io/address/0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e)
-Deployment Transaction: [0x9b4fa07bf2fb896e4d09479402eb587e89195dd3a33ceacfc95ce3e410f7fd4c](https://etherscan.io/tx/0x9b4fa07bf2fb896e4d09479402eb587e89195dd3a33ceacfc95ce3e410f7fd4c)
+Deployment Transaction: [0x9b4fa07bf2fb896e4d09479402eb587e89195dd3a33ceacfc95ce3e410f7fd4c](https://eth.blockscout.com/tx/0x9b4fa07bf2fb896e4d09479402eb587e89195dd3a33ceacfc95ce3e410f7fd4c)
@@ -366,7 +367,7 @@ Thu, 23 Jan 2025 18:52:35 UTC
Address: [0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203](https://etherscan.io/address/0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203)
-Deployment Transaction: [0xc56194b3e8eb020eefcd6aafa6e445d331f0f174adf504ec831ce6a0ebf9a059](https://etherscan.io/tx/0xc56194b3e8eb020eefcd6aafa6e445d331f0f174adf504ec831ce6a0ebf9a059)
+Deployment Transaction: [0xc56194b3e8eb020eefcd6aafa6e445d331f0f174adf504ec831ce6a0ebf9a059](https://eth.blockscout.com/tx/0xc56194b3e8eb020eefcd6aafa6e445d331f0f174adf504ec831ce6a0ebf9a059)
@@ -382,7 +383,7 @@ Thu, 23 Jan 2025 18:52:35 UTC
Address: [0x7ffe42c4a5deea5b0fec41c94c136cf115597227](https://etherscan.io/address/0x7ffe42c4a5deea5b0fec41c94c136cf115597227)
-Deployment Transaction: [0x3d71d82b2c02425520a1296de1513ab45c4fc6e4768582673ae68aff4bb1b3f0](https://etherscan.io/tx/0x3d71d82b2c02425520a1296de1513ab45c4fc6e4768582673ae68aff4bb1b3f0)
+Deployment Transaction: [0x3d71d82b2c02425520a1296de1513ab45c4fc6e4768582673ae68aff4bb1b3f0](https://eth.blockscout.com/tx/0x3d71d82b2c02425520a1296de1513ab45c4fc6e4768582673ae68aff4bb1b3f0)
@@ -396,15 +397,15 @@ Thu, 23 Jan 2025 18:52:35 UTC
### Universal Router
-Address: [0x66a9893cc07d91d95644aedd05d03f95e1dba8af](https://etherscan.io/address/0x66a9893cc07d91d95644aedd05d03f95e1dba8af)
+Address: [0xd92a36b0000531ef3063ded4de20a0783308446c](https://etherscan.io/address/0xd92a36b0000531ef3063ded4de20a0783308446c)
-Deployment Transaction: [0x7e770b7713bde88afd49651461b8533a5e7d864b9ddb20252392aaa1ef6cc6e0](https://etherscan.io/tx/0x7e770b7713bde88afd49651461b8533a5e7d864b9ddb20252392aaa1ef6cc6e0)
+Deployment Transaction: [0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e](https://eth.blockscout.com/tx/0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e)
-Commit Hash: [2656054](https://github.com/Uniswap/contracts/commit/2656054)
+Commit Hash: [d2d9c4a](https://github.com/Uniswap/contracts/commit/d2d9c4a)
-Thu, 23 Jan 2025 18:52:35 UTC
+Thu, 31 Jan 57856 19:11:55 UTC
@@ -414,7 +415,7 @@ Thu, 23 Jan 2025 18:52:35 UTC
Address: [0x000000000004444c5dc75cB358380D2e3dE08A90](https://etherscan.io/address/0x000000000004444c5dc75cB358380D2e3dE08A90)
-Deployment Transaction: [0x747e0e02b7590eed32cface28e83260884e0b80675f5ae223c6888053aa68528](https://etherscan.io/tx/0x747e0e02b7590eed32cface28e83260884e0b80675f5ae223c6888053aa68528)
+Deployment Transaction: [0x747e0e02b7590eed32cface28e83260884e0b80675f5ae223c6888053aa68528](https://eth.blockscout.com/tx/0x747e0e02b7590eed32cface28e83260884e0b80675f5ae223c6888053aa68528)
@@ -430,7 +431,7 @@ Thu, 23 Jan 2025 16:16:47 UTC
Address: [0xbc708B192552e19A088b4C4B8772aEeA83bCf760](https://etherscan.io/address/0xbc708B192552e19A088b4C4B8772aEeA83bCf760)
-Deployment Transaction: [0xc184f784fc37c08b91117b799e93bf45afd6007dc5ad8deff5820ef14497e4b3](https://etherscan.io/tx/0xc184f784fc37c08b91117b799e93bf45afd6007dc5ad8deff5820ef14497e4b3)
+Deployment Transaction: [0xc184f784fc37c08b91117b799e93bf45afd6007dc5ad8deff5820ef14497e4b3](https://eth.blockscout.com/tx/0xc184f784fc37c08b91117b799e93bf45afd6007dc5ad8deff5820ef14497e4b3)
@@ -446,7 +447,7 @@ Tue, 09 Jul 2024 14:45:11 UTC
Address: [0x000000fee13a103A10D593b9AE06b3e05F2E7E1c](https://etherscan.io/address/0x000000fee13a103A10D593b9AE06b3e05F2E7E1c)
-Deployment Transaction: [0xb43e27f11f83fdcf42fee9d18e14fa6dce19a6dd0dc229677ca31c943be4c447](https://etherscan.io/tx/0xb43e27f11f83fdcf42fee9d18e14fa6dce19a6dd0dc229677ca31c943be4c447)
+Deployment Transaction: [0xb43e27f11f83fdcf42fee9d18e14fa6dce19a6dd0dc229677ca31c943be4c447](https://eth.blockscout.com/tx/0xb43e27f11f83fdcf42fee9d18e14fa6dce19a6dd0dc229677ca31c943be4c447)
@@ -462,7 +463,7 @@ Thu, 09 May 2024 22:44:59 UTC
Address: [0x00000011F84B9aa48e5f8aA8B9897600006289Be](https://etherscan.io/address/0x00000011F84B9aa48e5f8aA8B9897600006289Be)
-Deployment Transaction: [0x5d80bc56d21ac5cb858a1445dfc8ec7fe2edfec5366a945f6ace185b0ff4315d](https://etherscan.io/tx/0x5d80bc56d21ac5cb858a1445dfc8ec7fe2edfec5366a945f6ace185b0ff4315d)
+Deployment Transaction: [0x5d80bc56d21ac5cb858a1445dfc8ec7fe2edfec5366a945f6ace185b0ff4315d](https://eth.blockscout.com/tx/0x5d80bc56d21ac5cb858a1445dfc8ec7fe2edfec5366a945f6ace185b0ff4315d)
@@ -478,7 +479,7 @@ Tue, 07 May 2024 00:11:11 UTC
Address: [0x5e55C9e631FAE526cd4B0526C4818D6e0a9eF0e3](https://etherscan.io/address/0x5e55C9e631FAE526cd4B0526C4818D6e0a9eF0e3)
-Deployment Transaction: [0x987a4ebc41d0713ffa5ffa7de5e5de8c243face6c92318272eeef3f78f3fe32c](https://etherscan.io/tx/0x987a4ebc41d0713ffa5ffa7de5e5de8c243face6c92318272eeef3f78f3fe32c)
+Deployment Transaction: [0x987a4ebc41d0713ffa5ffa7de5e5de8c243face6c92318272eeef3f78f3fe32c](https://eth.blockscout.com/tx/0x987a4ebc41d0713ffa5ffa7de5e5de8c243face6c92318272eeef3f78f3fe32c)
@@ -494,7 +495,7 @@ Mon, 15 Apr 2024 18:21:35 UTC
Address: [0x54539967a06Fc0E3C3ED0ee320Eb67362D13C5fF](https://etherscan.io/address/0x54539967a06Fc0E3C3ED0ee320Eb67362D13C5fF)
-Deployment Transaction: [0x7743c23afeca03c875e3664159eb71381d981a0e689ed7e8adceea6db769f107](https://etherscan.io/tx/0x7743c23afeca03c875e3664159eb71381d981a0e689ed7e8adceea6db769f107)
+Deployment Transaction: [0x7743c23afeca03c875e3664159eb71381d981a0e689ed7e8adceea6db769f107](https://eth.blockscout.com/tx/0x7743c23afeca03c875e3664159eb71381d981a0e689ed7e8adceea6db769f107)
@@ -510,7 +511,7 @@ Wed, 26 Jul 2023 14:56:35 UTC
Address: [0x6000da47483062A0D734Ba3dc7576Ce6A0B645C4](https://etherscan.io/address/0x6000da47483062A0D734Ba3dc7576Ce6A0B645C4)
-Deployment Transaction: [0xa86efffcc790c0c65c83b0aab4c8cbfff1c6195a8276ef9f5dbe99f50e48d9f2](https://etherscan.io/tx/0xa86efffcc790c0c65c83b0aab4c8cbfff1c6195a8276ef9f5dbe99f50e48d9f2)
+Deployment Transaction: [0xa86efffcc790c0c65c83b0aab4c8cbfff1c6195a8276ef9f5dbe99f50e48d9f2](https://eth.blockscout.com/tx/0xa86efffcc790c0c65c83b0aab4c8cbfff1c6195a8276ef9f5dbe99f50e48d9f2)
@@ -526,7 +527,7 @@ Wed, 26 Jul 2023 14:56:35 UTC
Address: [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3)
-Deployment Transaction: [0xf2f1fe96c16ee674bb7fcee166be52465a418927d124f5f1d231b36eae65d377](https://etherscan.io/tx/0xf2f1fe96c16ee674bb7fcee166be52465a418927d124f5f1d231b36eae65d377)
+Deployment Transaction: [0xf2f1fe96c16ee674bb7fcee166be52465a418927d124f5f1d231b36eae65d377](https://eth.blockscout.com/tx/0xf2f1fe96c16ee674bb7fcee166be52465a418927d124f5f1d231b36eae65d377)
@@ -542,7 +543,7 @@ Thu, 17 Nov 2022 01:17:59 UTC
Address: [0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E](https://etherscan.io/address/0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E)
-Deployment Transaction: [0x6290f7b4024dd5fcc9c482e981bfc0a241dc1ae78e68d407d929c867bbcdb80f](https://etherscan.io/tx/0x6290f7b4024dd5fcc9c482e981bfc0a241dc1ae78e68d407d929c867bbcdb80f)
+Deployment Transaction: [0x6290f7b4024dd5fcc9c482e981bfc0a241dc1ae78e68d407d929c867bbcdb80f](https://eth.blockscout.com/tx/0x6290f7b4024dd5fcc9c482e981bfc0a241dc1ae78e68d407d929c867bbcdb80f)
@@ -558,7 +559,7 @@ Fri, 22 Jul 2022 17:23:00 UTC
Address: [0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45](https://etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45)
-Deployment Transaction: [0x7299cca7203f60a831756e043f4c2ccb0ee6cb7cf8aed8420f0ae99a16883a2b](https://etherscan.io/tx/0x7299cca7203f60a831756e043f4c2ccb0ee6cb7cf8aed8420f0ae99a16883a2b)
+Deployment Transaction: [0x7299cca7203f60a831756e043f4c2ccb0ee6cb7cf8aed8420f0ae99a16883a2b](https://eth.blockscout.com/tx/0x7299cca7203f60a831756e043f4c2ccb0ee6cb7cf8aed8420f0ae99a16883a2b)
@@ -574,7 +575,7 @@ Tue, 14 Dec 2021 17:37:26 UTC
Address: [0x61fFE014bA17989E743c5F6cB21bF9697530B21e](https://etherscan.io/address/0x61fFE014bA17989E743c5F6cB21bF9697530B21e)
-Deployment Transaction: [0xff27d2945a7ce3e3682ad077f29b2bfdc819931a1e7fd4507fb9114a8861084e](https://etherscan.io/tx/0xff27d2945a7ce3e3682ad077f29b2bfdc819931a1e7fd4507fb9114a8861084e)
+Deployment Transaction: [0xff27d2945a7ce3e3682ad077f29b2bfdc819931a1e7fd4507fb9114a8861084e](https://eth.blockscout.com/tx/0xff27d2945a7ce3e3682ad077f29b2bfdc819931a1e7fd4507fb9114a8861084e)
@@ -590,7 +591,7 @@ Wed, 01 Dec 2021 23:35:44 UTC
Address: [0xA5644E29708357803b5A882D272c41cC0dF92B34](https://etherscan.io/address/0xA5644E29708357803b5A882D272c41cC0dF92B34)
-Deployment Transaction: [0x399fa9a469d5bdf41130b35298ce25f0be3601dbce0629725f0dba7d37bcd699](https://etherscan.io/tx/0x399fa9a469d5bdf41130b35298ce25f0be3601dbce0629725f0dba7d37bcd699)
+Deployment Transaction: [0x399fa9a469d5bdf41130b35298ce25f0be3601dbce0629725f0dba7d37bcd699](https://eth.blockscout.com/tx/0x399fa9a469d5bdf41130b35298ce25f0be3601dbce0629725f0dba7d37bcd699)
@@ -606,7 +607,7 @@ Tue, 04 May 2021 19:35:26 UTC
Address: [0xC36442b4a4522E871399CD717aBDD847Ab11FE88](https://etherscan.io/address/0xC36442b4a4522E871399CD717aBDD847Ab11FE88)
-Deployment Transaction: [0xc5eabeff36dc4593e58ede208838105815106e5a11aa725638d72b43f88e5fb2](https://etherscan.io/tx/0xc5eabeff36dc4593e58ede208838105815106e5a11aa725638d72b43f88e5fb2)
+Deployment Transaction: [0xc5eabeff36dc4593e58ede208838105815106e5a11aa725638d72b43f88e5fb2](https://eth.blockscout.com/tx/0xc5eabeff36dc4593e58ede208838105815106e5a11aa725638d72b43f88e5fb2)
@@ -622,7 +623,7 @@ Tue, 04 May 2021 19:35:13 UTC
Address: [0xEe6A57eC80ea46401049E92587E52f5Ec1c24785](https://etherscan.io/address/0xEe6A57eC80ea46401049E92587E52f5Ec1c24785)
-Deployment Transaction: [0x453325d71464a4c932f1367a3b67d76265051e160dc59027e8242b1857aad880](https://etherscan.io/tx/0x453325d71464a4c932f1367a3b67d76265051e160dc59027e8242b1857aad880)
+Deployment Transaction: [0x453325d71464a4c932f1367a3b67d76265051e160dc59027e8242b1857aad880](https://eth.blockscout.com/tx/0x453325d71464a4c932f1367a3b67d76265051e160dc59027e8242b1857aad880)
@@ -671,7 +672,7 @@ Proxy Admin: [0xB753548F6E010e7e680BA186F9Ca1BdAB2E90cf2](https://etherscan.io/a
Address: [0x42B24A95702b9986e82d421cC3568932790A48Ec](https://etherscan.io/address/0x42B24A95702b9986e82d421cC3568932790A48Ec)
-Deployment Transaction: [0xb722fce9e757d6a005678267984e86f2ee220edcc8405e60e5ccdcc1a1238e45](https://etherscan.io/tx/0xb722fce9e757d6a005678267984e86f2ee220edcc8405e60e5ccdcc1a1238e45)
+Deployment Transaction: [0xb722fce9e757d6a005678267984e86f2ee220edcc8405e60e5ccdcc1a1238e45](https://eth.blockscout.com/tx/0xb722fce9e757d6a005678267984e86f2ee220edcc8405e60e5ccdcc1a1238e45)
@@ -687,7 +688,7 @@ Tue, 04 May 2021 19:32:14 UTC
Address: [0xE592427A0AEce92De3Edee1F18E0157C05861564](https://etherscan.io/address/0xE592427A0AEce92De3Edee1F18E0157C05861564)
-Deployment Transaction: [0xe881c43cd88063e84a1d0283f41ee5348239b259c0d17a7e2e4552da3f4b2bc7](https://etherscan.io/tx/0xe881c43cd88063e84a1d0283f41ee5348239b259c0d17a7e2e4552da3f4b2bc7)
+Deployment Transaction: [0xe881c43cd88063e84a1d0283f41ee5348239b259c0d17a7e2e4552da3f4b2bc7](https://eth.blockscout.com/tx/0xe881c43cd88063e84a1d0283f41ee5348239b259c0d17a7e2e4552da3f4b2bc7)
@@ -703,7 +704,7 @@ Tue, 04 May 2021 19:30:41 UTC
Address: [0xbfd8137f7d1516D3ea5cA83523914859ec47F573](https://etherscan.io/address/0xbfd8137f7d1516D3ea5cA83523914859ec47F573)
-Deployment Transaction: [0x73ae3fbc5d17ade6ca9bd0fdb9014dcc0b540e3b9bc5db89d0103889b930b215](https://etherscan.io/tx/0x73ae3fbc5d17ade6ca9bd0fdb9014dcc0b540e3b9bc5db89d0103889b930b215)
+Deployment Transaction: [0x73ae3fbc5d17ade6ca9bd0fdb9014dcc0b540e3b9bc5db89d0103889b930b215](https://eth.blockscout.com/tx/0x73ae3fbc5d17ade6ca9bd0fdb9014dcc0b540e3b9bc5db89d0103889b930b215)
@@ -719,7 +720,7 @@ Tue, 04 May 2021 19:29:02 UTC
Address: [0x1F98431c8aD98523631AE4a59f267346ea31F984](https://etherscan.io/address/0x1F98431c8aD98523631AE4a59f267346ea31F984)
-Deployment Transaction: [0x1e20cd6d47d7021ae7e437792823517eeadd835df09dde17ab45afd7a5df4603](https://etherscan.io/tx/0x1e20cd6d47d7021ae7e437792823517eeadd835df09dde17ab45afd7a5df4603)
+Deployment Transaction: [0x1e20cd6d47d7021ae7e437792823517eeadd835df09dde17ab45afd7a5df4603](https://eth.blockscout.com/tx/0x1e20cd6d47d7021ae7e437792823517eeadd835df09dde17ab45afd7a5df4603)
@@ -735,7 +736,7 @@ Tue, 04 May 2021 19:27:00 UTC
Address: [0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D](https://etherscan.io/address/0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D)
-Deployment Transaction: [0x4fc1580e7f66c58b7c26881cce0aab9c3509afe6e507527f30566fbf8039bcd0](https://etherscan.io/tx/0x4fc1580e7f66c58b7c26881cce0aab9c3509afe6e507527f30566fbf8039bcd0)
+Deployment Transaction: [0x4fc1580e7f66c58b7c26881cce0aab9c3509afe6e507527f30566fbf8039bcd0](https://eth.blockscout.com/tx/0x4fc1580e7f66c58b7c26881cce0aab9c3509afe6e507527f30566fbf8039bcd0)
@@ -751,7 +752,7 @@ Fri, 05 Jun 2020 20:17:21 UTC
Address: [0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f](https://etherscan.io/address/0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f)
-Deployment Transaction: [0xc31d7e7e85cab1d38ce1b8ac17e821ccd47dbde00f9d57f2bd8613bff9428396](https://etherscan.io/tx/0xc31d7e7e85cab1d38ce1b8ac17e821ccd47dbde00f9d57f2bd8613bff9428396)
+Deployment Transaction: [0xc31d7e7e85cab1d38ce1b8ac17e821ccd47dbde00f9d57f2bd8613bff9428396](https://eth.blockscout.com/tx/0xc31d7e7e85cab1d38ce1b8ac17e821ccd47dbde00f9d57f2bd8613bff9428396)
@@ -767,7 +768,7 @@ Mon, 04 May 2020 16:34:02 UTC
Address: [0x000000009b1d0af20d8c6d0a44e162d11f9b8f00](https://etherscan.io/address/0x000000009b1d0af20d8c6d0a44e162d11f9b8f00)
-Deployment Transaction: [0xf7d094c82512c971d821190e914eada76eec34da638736f09fa2fe1a9456d894](https://etherscan.io/tx/0xf7d094c82512c971d821190e914eada76eec34da638736f09fa2fe1a9456d894)
+Deployment Transaction: [0xf7d094c82512c971d821190e914eada76eec34da638736f09fa2fe1a9456d894](https://eth.blockscout.com/tx/0xf7d094c82512c971d821190e914eada76eec34da638736f09fa2fe1a9456d894)
@@ -780,7 +781,7 @@ Fri, 23 May 2025 19:33:25 UTC
## Deployment History
-### Fri May 23 2025
+### Thu Jan 31 57856
@@ -788,11 +789,19 @@ Deployed contracts:
- Calibur Entry
+ Universal Router
- | Commit hash: 0a52cd5 |
+ Commit hash: d2d9c4a |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","v2Factory":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","v3Factory":"0x1F98431c8aD98523631AE4a59f267346ea31F984","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x000000000004444c5dc75cB358380D2e3dE08A90","v3NFTPositionManager":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","v4PositionManager":"0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e","spokePool":"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C"} |
@@ -888,6 +897,25 @@ Deployed contracts:
+### Fri May 23 2025
+
+
+
+Deployed contracts:
+
+
+
+ Calibur Entry
+
+
+
+
+
+
### Fri May 02 2025
@@ -1002,7 +1030,7 @@ Deployed contracts:
| _nativeCurrencyLabelBytes |
- 0x4554480000000000000000000000000000000000000000000000000000000000 |
+ 0x4554480000000000000000000000000000000000000000000000000000000000 |
diff --git a/deployments/10.md b/deployments/10.md
index a0d5abff..6cb5a74e 100644
--- a/deployments/10.md
+++ b/deployments/10.md
@@ -26,8 +26,9 @@
- [W E T H Hook](#w-e-t-h-hook)
- [E R C7914 Detector](#e-r-c7914-detector)
- [Deployment History](#deployment-history)
- - [Fri May 23 2025](#fri-may-23-2025)
+ - [Fri Feb 22 57856](#fri-feb-22-57856)
- [Wed Aug 27 2025](#wed-aug-27-2025)
+ - [Fri May 23 2025](#fri-may-23-2025)
- [Fri May 02 2025](#fri-may-02-2025)
- [Tue Jan 21 2025](#tue-jan-21-2025)
- [Tue Jul 09 2024](#tue-jul-09-2024)
@@ -65,7 +66,7 @@
| UniversalRouter |
- 0x851116d9223fabed8e56c0e6b8ad0c31d98b3507 |
+ 0xde20eee5398d3790a4d356e8925bd21ea65d99af |
N/A |
@@ -206,15 +207,15 @@ Thu, 08 Feb 2024 17:27:57 UTC
### Universal Router
-Address: [0x851116d9223fabed8e56c0e6b8ad0c31d98b3507](https://optimistic.etherscan.io/address/0x851116d9223fabed8e56c0e6b8ad0c31d98b3507)
+Address: [0xde20eee5398d3790a4d356e8925bd21ea65d99af](https://optimistic.etherscan.io/address/0xde20eee5398d3790a4d356e8925bd21ea65d99af)
-Deployment Transaction: [0x94d12336287ba223b06942a9dec48be6ada41c0e8d9aa65f6cc1d5929060bd14](https://optimistic.etherscan.io/tx/0x94d12336287ba223b06942a9dec48be6ada41c0e8d9aa65f6cc1d5929060bd14)
+Deployment Transaction: [0x5413e69a593fecdb2958f3cf80893172ae24b16ba5bb8482c83814b199a7ece7](https://optimistic.etherscan.io/tx/0x5413e69a593fecdb2958f3cf80893172ae24b16ba5bb8482c83814b199a7ece7)
-Commit Hash: [135b1f9](https://github.com/Uniswap/contracts/commit/135b1f9)
+Commit Hash: [cc18617](https://github.com/Uniswap/contracts/commit/cc18617)
-Tue, 21 Jan 2025 21:17:58 UTC
+Fri, 22 Feb 57856 15:30:43 UTC
@@ -555,7 +556,7 @@ Wed, 27 Aug 2025 20:47:14 UTC
## Deployment History
-### Fri May 23 2025
+### Fri Feb 22 57856
@@ -563,11 +564,19 @@ Deployed contracts:
- Calibur Entry
+ Universal Router
- | Commit hash: 0a52cd5 |
+ Commit hash: cc18617 |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x4200000000000000000000000000000000000006","v2Factory":"0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf","v3Factory":"0x1F98431c8aD98523631AE4a59f267346ea31F984","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x9a13F98Cb987694C9F086b1F5eB990EeA8264Ec3","v3NFTPositionManager":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","v4PositionManager":"0x3C3Ea4B57a46241e54610e5f022E5c45859A1017","spokePool":"0x6f26Bf09B1C792e3228e5467807a900A503c028"} |
@@ -601,6 +610,25 @@ Deployed contracts:
+### Fri May 23 2025
+
+
+
+Deployed contracts:
+
+
+
+ Calibur Entry
+
+
+
+
+
+
### Fri May 02 2025
diff --git a/deployments/11155111.md b/deployments/11155111.md
index b84300d5..289c4207 100644
--- a/deployments/11155111.md
+++ b/deployments/11155111.md
@@ -4,6 +4,7 @@
### Table of Contents
- [Summary](#summary)
- [Contracts](#contracts)
+ - [Universal Router](#universal-router)
- [Calibur Entry](#calibur-entry)
- [Position Manager](#position-manager)
- [V4 Quoter](#v4-quoter)
@@ -11,7 +12,6 @@
- [Pool Manager](#pool-manager)
- [Uniswap V2 Router02](#uniswap-v2-router02)
- [Mixed Route Quoter V2](#mixed-route-quoter-v2)
- - [Universal Router](#universal-router)
- [Uniswap V2 Factory](#uniswap-v2-factory)
- [Swap Router02](#swap-router02)
- [Quoter V2](#quoter-v2)
@@ -22,6 +22,7 @@
- [Uniswap V3 Factory](#uniswap-v3-factory)
- [Permit2](#permit2)
- [Deployment History](#deployment-history)
+ - [Wed Nov 19 2025](#wed-nov-19-2025)
- [Fri May 23 2025](#fri-may-23-2025)
- [Wed Dec 11 2024](#wed-dec-11-2024)
- [Tue Oct 22 2024](#tue-oct-22-2024)
@@ -38,6 +39,11 @@
Address |
Version |
+ | UniversalRouter |
+ 0x470FFC67b1feEEC31D16C46AC7545C98716a194c |
+ N/A |
+
+
| CaliburEntry |
0x000000009b1d0af20d8c6d0a44e162d11f9b8f00 |
N/A |
@@ -72,11 +78,6 @@
0x4745F77b56a0E2294426E3936dc4Fab68d9543Cd |
N/A |
-
- | UniversalRouter |
- 0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD |
- N/A |
-
| UniswapV2Factory |
0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0 |
@@ -125,6 +126,22 @@
## Contracts
+### Universal Router
+
+Address: [0x470FFC67b1feEEC31D16C46AC7545C98716a194c](https://sepolia.etherscan.io/address/0x470FFC67b1feEEC31D16C46AC7545C98716a194c)
+
+Deployment Transaction: [0xdac96ccdd5f2ef8dbf82dcbe1d9d4563eb28e95e8c49120aecc2a727add89454](https://sepolia.etherscan.io/tx/0xdac96ccdd5f2ef8dbf82dcbe1d9d4563eb28e95e8c49120aecc2a727add89454)
+
+
+
+
+
+Wed, 19 Nov 2025 22:51:48 UTC
+
+
+
+---
+
### Calibur Entry
Address: [0x000000009b1d0af20d8c6d0a44e162d11f9b8f00](https://sepolia.etherscan.io/address/0x000000009b1d0af20d8c6d0a44e162d11f9b8f00)
@@ -235,22 +252,6 @@ Fri, 13 Sep 2024 19:12:12 UTC
----
-
-### Universal Router
-
-Address: [0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD](https://sepolia.etherscan.io/address/0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD)
-
-Deployment Transaction: [0xa3fd4cd5c0acb5b28e03cd56d79bb64b4c5b6288775bee424d4f4cd1cce83a8a](https://sepolia.etherscan.io/tx/0xa3fd4cd5c0acb5b28e03cd56d79bb64b4c5b6288775bee424d4f4cd1cce83a8a)
-
-
-
-
-
-Tue, 23 May 2023 13:19:48 UTC
-
-
-
---
### Uniswap V2 Factory
@@ -398,6 +399,31 @@ Fri, 25 Nov 2022 14:19:48 UTC
## Deployment History
+### Wed Nov 19 2025
+
+
+
+Deployed contracts:
+
+
+
+ Universal Router
+
+
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14","v2Factory":"0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0","v3Factory":"0x0227628f3F023bb0B980b67D528571c95c6DaC1c","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0xE03A1074c86CFeDd5C142C4F04F1a1536e203543","v3NFTPositionManager":"0x1238536071E1c677A632429e3655c799b22cDA52","v4PositionManager":"0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4","spokePool":"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662"} |
+
+
+
+
+
+
### Fri May 23 2025
diff --git a/deployments/130.md b/deployments/130.md
index 8f16f27a..24182b55 100644
--- a/deployments/130.md
+++ b/deployments/130.md
@@ -4,6 +4,14 @@
### Table of Contents
- [Summary](#summary)
- [Contracts](#contracts)
+ - [E R C7914 Detector](#e-r-c7914-detector)
+ - [Calibur Entry](#calibur-entry)
+ - [W E T H Hook](#w-e-t-h-hook)
+ - [Position Descriptor](#position-descriptor)
+ - [Position Manager](#position-manager)
+ - [V4 Quoter](#v4-quoter)
+ - [State View](#state-view)
+ - [Universal Router](#universal-router)
- [Uniswap V2 Router02](#uniswap-v2-router02)
- [Uniswap Interface Multicall](#uniswap-interface-multicall)
- [Quoter V2](#quoter-v2)
@@ -15,20 +23,15 @@
- [Quoter](#quoter)
- [Swap Router02](#swap-router02)
- [Fee On Transfer Detector](#fee-on-transfer-detector)
- - [Position Descriptor](#position-descriptor)
- - [Position Manager](#position-manager)
- - [V4 Quoter](#v4-quoter)
- - [State View](#state-view)
- - [Universal Router](#universal-router)
- - [Calibur Entry](#calibur-entry)
- - [W E T H Hook](#w-e-t-h-hook)
- - [E R C7914 Detector](#e-r-c7914-detector)
+ - [Pool Manager](#pool-manager)
- [Deployment History](#deployment-history)
- - [Fri May 23 2025](#fri-may-23-2025)
+ - [Tue Mar 25 57856](#tue-mar-25-57856)
- [Wed Aug 27 2025](#wed-aug-27-2025)
+ - [Fri May 23 2025](#fri-may-23-2025)
- [Fri May 02 2025](#fri-may-02-2025)
- [Wed Jan 22 2025](#wed-jan-22-2025)
- [Fri Nov 08 2024](#fri-nov-08-2024)
+ - [Mon Nov 04 2024](#mon-nov-04-2024)
## Summary
## Contracts
-### Uniswap V2 Router02
+### E R C7914 Detector
-Address: [0x284f11109359a7e1306c3e447ef14d38400063ff](https://uniscan.xyz/address/0x284f11109359a7e1306c3e447ef14d38400063ff)
+Address: [0xc470458fc6a7e43471b31e6a2eb2612215a7102e](https://uniscan.xyz/address/0xc470458fc6a7e43471b31e6a2eb2612215a7102e)
-Deployment Transaction: [0x875c8ceb1eb2e79d6641db6d3c0f8bca2c5bd51cb0966c75d27b7fa8be80ab02](https://uniscan.xyz/tx/0x875c8ceb1eb2e79d6641db6d3c0f8bca2c5bd51cb0966c75d27b7fa8be80ab02)
+Deployment Transaction: [0xbec3c59bc540a2816c38d59072d375bb94ab3eb64d3377f6194e19928e5055b4](https://uniscan.xyz/tx/0xbec3c59bc540a2816c38d59072d375bb94ab3eb64d3377f6194e19928e5055b4)
-Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
+Commit Hash: [320811c](https://github.com/Uniswap/contracts/commit/320811c)
-Fri, 08 Nov 2024 05:08:34 UTC
+Wed, 27 Aug 2025 20:28:39 UTC
---
-### Uniswap Interface Multicall
+### Calibur Entry
-Address: [0xb7610f9b733e7d45184be3a1bc966960ccc54f0b](https://uniscan.xyz/address/0xb7610f9b733e7d45184be3a1bc966960ccc54f0b)
+Address: [0x000000009b1d0af20d8c6d0a44e162d11f9b8f00](https://uniscan.xyz/address/0x000000009b1d0af20d8c6d0a44e162d11f9b8f00)
-Deployment Transaction: [0xc271a787c2ef97c21e58012f2e72b470933c068c86eca28d56240aacfda33a2f](https://uniscan.xyz/tx/0xc271a787c2ef97c21e58012f2e72b470933c068c86eca28d56240aacfda33a2f)
+Deployment Transaction: [0x3c7fe24fc0319f1597d783bfd792aa4a4051847234eb26ba5f3bb1d6f14fdbf7](https://uniscan.xyz/tx/0x3c7fe24fc0319f1597d783bfd792aa4a4051847234eb26ba5f3bb1d6f14fdbf7)
-Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
+Commit Hash: [0a52cd5](https://github.com/Uniswap/contracts/commit/0a52cd5)
-Fri, 08 Nov 2024 05:08:34 UTC
+Fri, 23 May 2025 19:35:20 UTC
---
-### Quoter V2
+### W E T H Hook
-Address: [0x385a5cf5f83e99f7bb2852b6a19c3538b9fa7658](https://uniscan.xyz/address/0x385a5cf5f83e99f7bb2852b6a19c3538b9fa7658)
+Address: [0x730b109bad65152c67ecc94eb8b0968603dba888](https://uniscan.xyz/address/0x730b109bad65152c67ecc94eb8b0968603dba888)
-Deployment Transaction: [0x376cb78b158d6731f95d34b2bfbefb9396bf49b84a89987db8d2e0cd731557a9](https://uniscan.xyz/tx/0x376cb78b158d6731f95d34b2bfbefb9396bf49b84a89987db8d2e0cd731557a9)
+Deployment Transaction: [0xd1bd2428515d7d82628d89949978f517fec75f3f41b38b59434dfa5ac5dac90f](https://uniscan.xyz/tx/0xd1bd2428515d7d82628d89949978f517fec75f3f41b38b59434dfa5ac5dac90f)
-Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
+Commit Hash: [c797b9e](https://github.com/Uniswap/contracts/commit/c797b9e)
-Fri, 08 Nov 2024 05:08:34 UTC
+Fri, 02 May 2025 19:35:21 UTC
---
-### Tick Lens
+### Position Descriptor
-Address: [0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443](https://uniscan.xyz/address/0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443)
+Address: [0x9fb28449a191cd8c03a1b7abfb0f5996ecf7f722](https://uniscan.xyz/address/0x9fb28449a191cd8c03a1b7abfb0f5996ecf7f722)
-Deployment Transaction: [0xd8be4256aee637152874cf89e6d7f365b7ce4af9f0879fa4996f081b095bc2b7](https://uniscan.xyz/tx/0xd8be4256aee637152874cf89e6d7f365b7ce4af9f0879fa4996f081b095bc2b7)
+Deployment Transaction: [0x86f8f6510d17aaafa452e052fe0a50479145abe63373bf6f60d49a2790c55288](https://uniscan.xyz/tx/0x86f8f6510d17aaafa452e052fe0a50479145abe63373bf6f60d49a2790c55288)
-Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
+Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
-Fri, 08 Nov 2024 05:08:34 UTC
+Wed, 22 Jan 2025 17:49:16 UTC
+
+
+
+_Proxy Information_
+Proxy Type: TransparentUpgradeableProxy
+
+
+
+Implementation: [0x8be6f6785b71c16ca238abbcdd3f33271969c305](https://uniscan.xyz/address/0x8be6f6785b71c16ca238abbcdd3f33271969c305)
+
+
+
+
+ Implementation History
+
+
+
+
---
-### N F T Descriptor
+### Position Manager
-Address: [0x2f6182205bc7f3864169cef4af3128055f79ab2f](https://uniscan.xyz/address/0x2f6182205bc7f3864169cef4af3128055f79ab2f)
+Address: [0x4529a01c7a0410167c5740c487a8de60232617bf](https://uniscan.xyz/address/0x4529a01c7a0410167c5740c487a8de60232617bf)
-Deployment Transaction: [0xda1397d41f1cde4d9469d5a7a7734ba32f717072a7b682795713be5c3e5b21db](https://uniscan.xyz/tx/0xda1397d41f1cde4d9469d5a7a7734ba32f717072a7b682795713be5c3e5b21db)
+Deployment Transaction: [0x51161eb65e19fabceb5de42cf48b3d4d283fa9d455c755d2f2fbf7b91b77d9ee](https://uniscan.xyz/tx/0x51161eb65e19fabceb5de42cf48b3d4d283fa9d455c755d2f2fbf7b91b77d9ee)
-Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
+Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
-Fri, 08 Nov 2024 05:08:34 UTC
+Wed, 22 Jan 2025 17:49:16 UTC
---
-### Nonfungible Token Position Descriptor
+### V4 Quoter
-Address: [0x0dfa04b28ab68ffd0e6e17fac6ec16d4846a2004](https://uniscan.xyz/address/0x0dfa04b28ab68ffd0e6e17fac6ec16d4846a2004)
+Address: [0x333e3c607b141b18ff6de9f258db6e77fe7491e0](https://uniscan.xyz/address/0x333e3c607b141b18ff6de9f258db6e77fe7491e0)
-Deployment Transaction: [0xc04b531f3ff842dffd44b697e0c3200174a309cf735b8c0b33c6226f1bc7813f](https://uniscan.xyz/tx/0xc04b531f3ff842dffd44b697e0c3200174a309cf735b8c0b33c6226f1bc7813f)
+Deployment Transaction: [0xd017255a7c984031cc1577095b26f3eb71de25fcc8ce5fe0e330c8539dcfe073](https://uniscan.xyz/tx/0xd017255a7c984031cc1577095b26f3eb71de25fcc8ce5fe0e330c8539dcfe073)
-Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
+Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
-Fri, 08 Nov 2024 05:08:34 UTC
+Wed, 22 Jan 2025 17:49:16 UTC
-_Proxy Information_
+---
+### State View
+Address: [0x86e8631a016f9068c3f085faf484ee3f5fdee8f2](https://uniscan.xyz/address/0x86e8631a016f9068c3f085faf484ee3f5fdee8f2)
-Proxy Type: TransparentUpgradeableProxy
+Deployment Transaction: [0xa661aabf0b39113be264ffa38d73be6a71c259a00c217741e26c883761d906f4](https://uniscan.xyz/tx/0xa661aabf0b39113be264ffa38d73be6a71c259a00c217741e26c883761d906f4)
-Implementation: [0x477d03877c1a8afddc4b7945cceb01f4ff907429](https://uniscan.xyz/address/0x477d03877c1a8afddc4b7945cceb01f4ff907429)
+Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
+Wed, 22 Jan 2025 17:49:16 UTC
-Proxy Admin: [0x96df89210cdd66997472aec13242934d30ed8de8](https://uniscan.xyz/address/0x96df89210cdd66997472aec13242934d30ed8de8)
+---
+
+### Universal Router
+
+Address: [0xe6039ae5b44f90d56c6b029354fb22999861a9a0](https://uniscan.xyz/address/0xe6039ae5b44f90d56c6b029354fb22999861a9a0)
+
+Deployment Transaction: [0xbe465e72ad881676b0fc5d4176c5cf619db9b978cb2a9f5c0f98fd0e24a0bfe9](https://uniscan.xyz/tx/0xbe465e72ad881676b0fc5d4176c5cf619db9b978cb2a9f5c0f98fd0e24a0bfe9)
+
+
+
+Commit Hash: [c0b6b96](https://github.com/Uniswap/contracts/commit/c0b6b96)
+
+Mon, 24 Mar 57856 23:26:28 UTC
-
- Implementation History
-
-
-
---
-### Nonfungible Position Manager
+### Uniswap V2 Router02
-Address: [0x943e6e07a7e8e791dafc44083e54041d743c46e9](https://uniscan.xyz/address/0x943e6e07a7e8e791dafc44083e54041d743c46e9)
+Address: [0x284f11109359a7e1306c3e447ef14d38400063ff](https://uniscan.xyz/address/0x284f11109359a7e1306c3e447ef14d38400063ff)
-Deployment Transaction: [0x3432429d30f964476512a0b1db6ca587694a492669907e59972386ba8f7cc69b](https://uniscan.xyz/tx/0x3432429d30f964476512a0b1db6ca587694a492669907e59972386ba8f7cc69b)
+Deployment Transaction: [0x875c8ceb1eb2e79d6641db6d3c0f8bca2c5bd51cb0966c75d27b7fa8be80ab02](https://uniscan.xyz/tx/0x875c8ceb1eb2e79d6641db6d3c0f8bca2c5bd51cb0966c75d27b7fa8be80ab02)
@@ -279,11 +315,11 @@ Fri, 08 Nov 2024 05:08:34 UTC
---
-### V3 Migrator
+### Uniswap Interface Multicall
-Address: [0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc](https://uniscan.xyz/address/0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc)
+Address: [0xb7610f9b733e7d45184be3a1bc966960ccc54f0b](https://uniscan.xyz/address/0xb7610f9b733e7d45184be3a1bc966960ccc54f0b)
-Deployment Transaction: [0xa3ab7a1cca6ee96f948c048c65113a6bf9684bfdf4da922b4ce5eff1658c2de0](https://uniscan.xyz/tx/0xa3ab7a1cca6ee96f948c048c65113a6bf9684bfdf4da922b4ce5eff1658c2de0)
+Deployment Transaction: [0xc271a787c2ef97c21e58012f2e72b470933c068c86eca28d56240aacfda33a2f](https://uniscan.xyz/tx/0xc271a787c2ef97c21e58012f2e72b470933c068c86eca28d56240aacfda33a2f)
@@ -295,11 +331,11 @@ Fri, 08 Nov 2024 05:08:34 UTC
---
-### Quoter
+### Quoter V2
-Address: [0x565ac8c7863d9bb16d07e809ff49fe5cd467634c](https://uniscan.xyz/address/0x565ac8c7863d9bb16d07e809ff49fe5cd467634c)
+Address: [0x385a5cf5f83e99f7bb2852b6a19c3538b9fa7658](https://uniscan.xyz/address/0x385a5cf5f83e99f7bb2852b6a19c3538b9fa7658)
-Deployment Transaction: [0x1fc40ce3574d9fcf3768075bbcdda628dcdcd24be29bee022b27ddc6ccc12ec9](https://uniscan.xyz/tx/0x1fc40ce3574d9fcf3768075bbcdda628dcdcd24be29bee022b27ddc6ccc12ec9)
+Deployment Transaction: [0x376cb78b158d6731f95d34b2bfbefb9396bf49b84a89987db8d2e0cd731557a9](https://uniscan.xyz/tx/0x376cb78b158d6731f95d34b2bfbefb9396bf49b84a89987db8d2e0cd731557a9)
@@ -311,11 +347,11 @@ Fri, 08 Nov 2024 05:08:34 UTC
---
-### Swap Router02
+### Tick Lens
-Address: [0x73855d06de49d0fe4a9c42636ba96c62da12ff9c](https://uniscan.xyz/address/0x73855d06de49d0fe4a9c42636ba96c62da12ff9c)
+Address: [0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443](https://uniscan.xyz/address/0xd5d76fa166ab8d8ad4c9f61aaa81457b66cbe443)
-Deployment Transaction: [0x632b122010b65269964201edab41a9e4a8f91d6d71b986945e89c5e98e3a1c1e](https://uniscan.xyz/tx/0x632b122010b65269964201edab41a9e4a8f91d6d71b986945e89c5e98e3a1c1e)
+Deployment Transaction: [0xd8be4256aee637152874cf89e6d7f365b7ce4af9f0879fa4996f081b095bc2b7](https://uniscan.xyz/tx/0xd8be4256aee637152874cf89e6d7f365b7ce4af9f0879fa4996f081b095bc2b7)
@@ -327,11 +363,11 @@ Fri, 08 Nov 2024 05:08:34 UTC
---
-### Fee On Transfer Detector
+### N F T Descriptor
-Address: [0x55e74a5c3310bbccdd0b655ade2309e0d0d25826](https://uniscan.xyz/address/0x55e74a5c3310bbccdd0b655ade2309e0d0d25826)
+Address: [0x2f6182205bc7f3864169cef4af3128055f79ab2f](https://uniscan.xyz/address/0x2f6182205bc7f3864169cef4af3128055f79ab2f)
-Deployment Transaction: [0x49bcd22f916527fdc918f7e0442494cd92dbaebaa1b0d9746d9c4a051ed71b2e](https://uniscan.xyz/tx/0x49bcd22f916527fdc918f7e0442494cd92dbaebaa1b0d9746d9c4a051ed71b2e)
+Deployment Transaction: [0xda1397d41f1cde4d9469d5a7a7734ba32f717072a7b682795713be5c3e5b21db](https://uniscan.xyz/tx/0xda1397d41f1cde4d9469d5a7a7734ba32f717072a7b682795713be5c3e5b21db)
@@ -343,17 +379,17 @@ Fri, 08 Nov 2024 05:08:34 UTC
---
-### Position Descriptor
+### Nonfungible Token Position Descriptor
-Address: [0x9fb28449a191cd8c03a1b7abfb0f5996ecf7f722](https://uniscan.xyz/address/0x9fb28449a191cd8c03a1b7abfb0f5996ecf7f722)
+Address: [0x0dfa04b28ab68ffd0e6e17fac6ec16d4846a2004](https://uniscan.xyz/address/0x0dfa04b28ab68ffd0e6e17fac6ec16d4846a2004)
-Deployment Transaction: [0x86f8f6510d17aaafa452e052fe0a50479145abe63373bf6f60d49a2790c55288](https://uniscan.xyz/tx/0x86f8f6510d17aaafa452e052fe0a50479145abe63373bf6f60d49a2790c55288)
+Deployment Transaction: [0xc04b531f3ff842dffd44b697e0c3200174a309cf735b8c0b33c6226f1bc7813f](https://uniscan.xyz/tx/0xc04b531f3ff842dffd44b697e0c3200174a309cf735b8c0b33c6226f1bc7813f)
-Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
+Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
-Wed, 22 Jan 2025 17:49:16 UTC
+Fri, 08 Nov 2024 05:08:34 UTC
@@ -365,7 +401,11 @@ Proxy Type: TransparentUpgradeableProxy
-Implementation: [0x8be6f6785b71c16ca238abbcdd3f33271969c305](https://uniscan.xyz/address/0x8be6f6785b71c16ca238abbcdd3f33271969c305)
+Implementation: [0x477d03877c1a8afddc4b7945cceb01f4ff907429](https://uniscan.xyz/address/0x477d03877c1a8afddc4b7945cceb01f4ff907429)
+
+
+
+Proxy Admin: [0x96df89210cdd66997472aec13242934d30ed8de8](https://uniscan.xyz/address/0x96df89210cdd66997472aec13242934d30ed8de8)
@@ -379,8 +419,8 @@ Implementation: [0x8be6f6785b71c16ca238abbcdd3f33271969c305](https://uniscan.xyz
| N/A |
- 0x8be6f6785b71c16ca238abbcdd3f33271969c305 |
- 417770f |
+ 0x477d03877c1a8afddc4b7945cceb01f4ff907429 |
+ 941946a |
@@ -388,120 +428,104 @@ Implementation: [0x8be6f6785b71c16ca238abbcdd3f33271969c305](https://uniscan.xyz
---
-### Position Manager
+### Nonfungible Position Manager
-Address: [0x4529a01c7a0410167c5740c487a8de60232617bf](https://uniscan.xyz/address/0x4529a01c7a0410167c5740c487a8de60232617bf)
+Address: [0x943e6e07a7e8e791dafc44083e54041d743c46e9](https://uniscan.xyz/address/0x943e6e07a7e8e791dafc44083e54041d743c46e9)
-Deployment Transaction: [0x51161eb65e19fabceb5de42cf48b3d4d283fa9d455c755d2f2fbf7b91b77d9ee](https://uniscan.xyz/tx/0x51161eb65e19fabceb5de42cf48b3d4d283fa9d455c755d2f2fbf7b91b77d9ee)
+Deployment Transaction: [0x3432429d30f964476512a0b1db6ca587694a492669907e59972386ba8f7cc69b](https://uniscan.xyz/tx/0x3432429d30f964476512a0b1db6ca587694a492669907e59972386ba8f7cc69b)
-Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
+Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
-Wed, 22 Jan 2025 17:49:16 UTC
+Fri, 08 Nov 2024 05:08:34 UTC
---
-### V4 Quoter
+### V3 Migrator
-Address: [0x333e3c607b141b18ff6de9f258db6e77fe7491e0](https://uniscan.xyz/address/0x333e3c607b141b18ff6de9f258db6e77fe7491e0)
+Address: [0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc](https://uniscan.xyz/address/0xb9d0c246f306b1aaf02ae6ba112d5ef25e5b60dc)
-Deployment Transaction: [0xd017255a7c984031cc1577095b26f3eb71de25fcc8ce5fe0e330c8539dcfe073](https://uniscan.xyz/tx/0xd017255a7c984031cc1577095b26f3eb71de25fcc8ce5fe0e330c8539dcfe073)
+Deployment Transaction: [0xa3ab7a1cca6ee96f948c048c65113a6bf9684bfdf4da922b4ce5eff1658c2de0](https://uniscan.xyz/tx/0xa3ab7a1cca6ee96f948c048c65113a6bf9684bfdf4da922b4ce5eff1658c2de0)
-Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
+Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
-Wed, 22 Jan 2025 17:49:16 UTC
+Fri, 08 Nov 2024 05:08:34 UTC
---
-### State View
+### Quoter
-Address: [0x86e8631a016f9068c3f085faf484ee3f5fdee8f2](https://uniscan.xyz/address/0x86e8631a016f9068c3f085faf484ee3f5fdee8f2)
+Address: [0x565ac8c7863d9bb16d07e809ff49fe5cd467634c](https://uniscan.xyz/address/0x565ac8c7863d9bb16d07e809ff49fe5cd467634c)
-Deployment Transaction: [0xa661aabf0b39113be264ffa38d73be6a71c259a00c217741e26c883761d906f4](https://uniscan.xyz/tx/0xa661aabf0b39113be264ffa38d73be6a71c259a00c217741e26c883761d906f4)
+Deployment Transaction: [0x1fc40ce3574d9fcf3768075bbcdda628dcdcd24be29bee022b27ddc6ccc12ec9](https://uniscan.xyz/tx/0x1fc40ce3574d9fcf3768075bbcdda628dcdcd24be29bee022b27ddc6ccc12ec9)
-Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
+Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
-Wed, 22 Jan 2025 17:49:16 UTC
+Fri, 08 Nov 2024 05:08:34 UTC
---
-### Universal Router
+### Swap Router02
-Address: [0xef740bf23acae26f6492b10de645d6b98dc8eaf3](https://uniscan.xyz/address/0xef740bf23acae26f6492b10de645d6b98dc8eaf3)
+Address: [0x73855d06de49d0fe4a9c42636ba96c62da12ff9c](https://uniscan.xyz/address/0x73855d06de49d0fe4a9c42636ba96c62da12ff9c)
-Deployment Transaction: [0x8ba6faddd12cf5aaabd6a7a17bd0d1fbd6c258238536b732ad56e44f0077d81e](https://uniscan.xyz/tx/0x8ba6faddd12cf5aaabd6a7a17bd0d1fbd6c258238536b732ad56e44f0077d81e)
+Deployment Transaction: [0x632b122010b65269964201edab41a9e4a8f91d6d71b986945e89c5e98e3a1c1e](https://uniscan.xyz/tx/0x632b122010b65269964201edab41a9e4a8f91d6d71b986945e89c5e98e3a1c1e)
-Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
+Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
-Wed, 22 Jan 2025 17:49:16 UTC
+Fri, 08 Nov 2024 05:08:34 UTC
---
-### Calibur Entry
+### Fee On Transfer Detector
-Address: [0x000000009b1d0af20d8c6d0a44e162d11f9b8f00](https://uniscan.xyz/address/0x000000009b1d0af20d8c6d0a44e162d11f9b8f00)
+Address: [0x55e74a5c3310bbccdd0b655ade2309e0d0d25826](https://uniscan.xyz/address/0x55e74a5c3310bbccdd0b655ade2309e0d0d25826)
-Deployment Transaction: [0x3c7fe24fc0319f1597d783bfd792aa4a4051847234eb26ba5f3bb1d6f14fdbf7](https://uniscan.xyz/tx/0x3c7fe24fc0319f1597d783bfd792aa4a4051847234eb26ba5f3bb1d6f14fdbf7)
+Deployment Transaction: [0x49bcd22f916527fdc918f7e0442494cd92dbaebaa1b0d9746d9c4a051ed71b2e](https://uniscan.xyz/tx/0x49bcd22f916527fdc918f7e0442494cd92dbaebaa1b0d9746d9c4a051ed71b2e)
-Commit Hash: [0a52cd5](https://github.com/Uniswap/contracts/commit/0a52cd5)
+Commit Hash: [941946a](https://github.com/Uniswap/contracts/commit/941946a)
-Fri, 23 May 2025 19:35:20 UTC
+Fri, 08 Nov 2024 05:08:34 UTC
---
-### W E T H Hook
-
-Address: [0x730b109bad65152c67ecc94eb8b0968603dba888](https://uniscan.xyz/address/0x730b109bad65152c67ecc94eb8b0968603dba888)
-
-Deployment Transaction: [0xd1bd2428515d7d82628d89949978f517fec75f3f41b38b59434dfa5ac5dac90f](https://uniscan.xyz/tx/0xd1bd2428515d7d82628d89949978f517fec75f3f41b38b59434dfa5ac5dac90f)
-
+### Pool Manager
+Address: [0x1F98400000000000000000000000000000000004](https://uniscan.xyz/address/0x1F98400000000000000000000000000000000004)
-Commit Hash: [c797b9e](https://github.com/Uniswap/contracts/commit/c797b9e)
-
-Fri, 02 May 2025 19:35:21 UTC
-
-
-
----
-
-### E R C7914 Detector
-
-Address: [0xc470458fc6a7e43471b31e6a2eb2612215a7102e](https://uniscan.xyz/address/0xc470458fc6a7e43471b31e6a2eb2612215a7102e)
+Deployment Transaction: [GENESIS_1f98400000000000000000000000000000000004](https://uniscan.xyz/tx/GENESIS_1f98400000000000000000000000000000000004)
-Deployment Transaction: [0xbec3c59bc540a2816c38d59072d375bb94ab3eb64d3377f6194e19928e5055b4](https://uniscan.xyz/tx/0xbec3c59bc540a2816c38d59072d375bb94ab3eb64d3377f6194e19928e5055b4)
-Commit Hash: [320811c](https://github.com/Uniswap/contracts/commit/320811c)
-Wed, 27 Aug 2025 20:28:39 UTC
+Mon, 04 Nov 2024 19:26:00 UTC
## Deployment History
-### Fri May 23 2025
+### Tue Mar 25 57856
@@ -509,11 +533,19 @@ Deployed contracts:
- Calibur Entry
+ Universal Router
- | Commit hash: 0a52cd5 |
+ Commit hash: c0b6b96 |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x4200000000000000000000000000000000000006","v2Factory":"0x1F98400000000000000000000000000000000002","v3Factory":"0x1F98400000000000000000000000000000000003","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x1F98400000000000000000000000000000000004","v3NFTPositionManager":"0x943e6e07a7E8E791dAFC44083e54041D743C46E9","v4PositionManager":"0x4529A01c7A0410167c5740C487A8DE60232617bf","spokePool":"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC6"} |
@@ -565,6 +597,25 @@ Deployed contracts:
+### Fri May 23 2025
+
+
+
+Deployed contracts:
+
+
+
+ Calibur Entry
+
+
+
+
+
+
### Fri May 02 2025
@@ -939,4 +990,21 @@ Deployed contracts:
+
+
+
+### Mon Nov 04 2024
+
+
+
+Deployed contracts:
+
+
+
+ Pool Manager
+
+
+
\ No newline at end of file
diff --git a/deployments/1301.md b/deployments/1301.md
index 695e6fc3..ce352a52 100644
--- a/deployments/1301.md
+++ b/deployments/1301.md
@@ -24,8 +24,9 @@
- [Uniswap V2 Factory](#uniswap-v2-factory)
- [E R C7914 Detector](#e-r-c7914-detector)
- [Deployment History](#deployment-history)
- - [Fri May 23 2025](#fri-may-23-2025)
+ - [Sat Mar 22 57856](#sat-mar-22-57856)
- [Wed Aug 27 2025](#wed-aug-27-2025)
+ - [Fri May 23 2025](#fri-may-23-2025)
- [Fri Feb 14 2025](#fri-feb-14-2025)
- [Mon Feb 10 2025](#mon-feb-10-2025)
- [Wed Jan 22 2025](#wed-jan-22-2025)
@@ -46,7 +47,7 @@
| UniversalRouter |
- 0x986dadb82491834f6d17bd3287eb84be0b4d4cc7 |
+ 0x7f9b8d606e0f35e5073abf93695814530b28a37b |
N/A |
@@ -155,15 +156,15 @@ Fri, 14 Feb 2025 13:17:43 UTC
### Universal Router
-Address: [0x986dadb82491834f6d17bd3287eb84be0b4d4cc7](https://sepolia.uniscan.xyz/address/0x986dadb82491834f6d17bd3287eb84be0b4d4cc7)
+Address: [0x7f9b8d606e0f35e5073abf93695814530b28a37b](https://sepolia.uniscan.xyz/address/0x7f9b8d606e0f35e5073abf93695814530b28a37b)
-Deployment Transaction: [0x5f881cf2b90c29be2aabe94648fa8db12a133a400cc3e8ac2aecb23223240dbb](https://sepolia.uniscan.xyz/tx/0x5f881cf2b90c29be2aabe94648fa8db12a133a400cc3e8ac2aecb23223240dbb)
+Deployment Transaction: [0x68a2eb98c2e52c2c2a7ec8f690e343b0da2380b63601e86776df836d8392a0a9](https://sepolia.uniscan.xyz/tx/0x68a2eb98c2e52c2c2a7ec8f690e343b0da2380b63601e86776df836d8392a0a9)
-Commit Hash: [3ad8685](https://github.com/Uniswap/contracts/commit/3ad8685)
+Commit Hash: [c0b6b96](https://github.com/Uniswap/contracts/commit/c0b6b96)
-Mon, 10 Feb 2025 20:22:07 UTC
+Sat, 22 Mar 57856 19:27:48 UTC
@@ -471,7 +472,7 @@ Wed, 27 Aug 2025 21:05:10 UTC
## Deployment History
-### Fri May 23 2025
+### Sat Mar 22 57856
@@ -479,11 +480,19 @@ Deployed contracts:
- Calibur Entry
+ Universal Router
- | Commit hash: 0a52cd5 |
+ Commit hash: c0b6b96 |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x4200000000000000000000000000000000000006","v2Factory":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","v3Factory":"0x1F98431c8aD98523631AE4a59f267346ea31F984","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x9cB26A7183B2F4515945Dc52CB4195B0d2D06C95","v3NFTPositionManager":"0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075","v4PositionManager":"0x12A98709BB5D0641D61458f85dcAFbE17AC2d05c","spokePool":"0x6999526e507Cc3b03b180BbE05E1Ff938259A87"} |
@@ -517,6 +526,25 @@ Deployed contracts:
+### Fri May 23 2025
+
+
+
+Deployed contracts:
+
+
+
+ Calibur Entry
+
+
+
+
+
+
### Fri Feb 14 2025
diff --git a/deployments/137.md b/deployments/137.md
index 1491cc6e..1803259c 100644
--- a/deployments/137.md
+++ b/deployments/137.md
@@ -28,6 +28,7 @@
- [Uniswap Interface Multicall](#uniswap-interface-multicall)
- [Uniswap V3 Factory](#uniswap-v3-factory)
- [Deployment History](#deployment-history)
+ - [Wed Feb 20 57856](#wed-feb-20-57856)
- [Thu Feb 20 2025](#thu-feb-20-2025)
- [Tue Jan 21 2025](#tue-jan-21-2025)
- [Tue Jul 09 2024](#tue-jul-09-2024)
@@ -79,7 +80,7 @@
| UniversalRouter |
- 0x1095692a6237d83c6a72f3f5efedb9a670c49223 |
+ 0xe27610fd9dd05fc061366bc9da414ca6f948f204 |
N/A |
@@ -292,15 +293,15 @@ Tue, 21 Jan 2025 20:43:17 UTC
### Universal Router
-Address: [0x1095692a6237d83c6a72f3f5efedb9a670c49223](https://polygonscan.com/address/0x1095692a6237d83c6a72f3f5efedb9a670c49223)
+Address: [0xe27610fd9dd05fc061366bc9da414ca6f948f204](https://polygonscan.com/address/0xe27610fd9dd05fc061366bc9da414ca6f948f204)
-Deployment Transaction: [0x06116d3c7a4f3179e9493c62f7ab2799c16a7301aac1f59ed97c72ba2af59335](https://polygonscan.com/tx/0x06116d3c7a4f3179e9493c62f7ab2799c16a7301aac1f59ed97c72ba2af59335)
+Deployment Transaction: [0x696626ea8d2cc585d9d47284996e14cc221e24c67d7b5e46a57002ac79eb7ae5](https://polygonscan.com/tx/0x696626ea8d2cc585d9d47284996e14cc221e24c67d7b5e46a57002ac79eb7ae5)
-Commit Hash: [e6c327f](https://github.com/Uniswap/contracts/commit/e6c327f)
+Commit Hash: [da7429d](https://github.com/Uniswap/contracts/commit/da7429d)
-Tue, 21 Jan 2025 20:43:17 UTC
+Wed, 20 Feb 57856 00:46:50 UTC
@@ -596,6 +597,33 @@ Mon, 20 Dec 2021 17:39:48 UTC
## Deployment History
+### Wed Feb 20 57856
+
+
+
+Deployed contracts:
+
+
+
+ Universal Router
+
+
+
+ | Commit hash: da7429d |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270","v2Factory":"0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C","v3Factory":"0x1F98431c8aD98523631AE4a59f267346ea31F984","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x67366782805870060151383F4BbFF9daB53e5cD6","v3NFTPositionManager":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","v4PositionManager":"0x1Ec2eBf4F37E7363FDfe3551602425af0B3ceef9","spokePool":"0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F09"} |
+
+
+
+
+
+
### Thu Feb 20 2025
diff --git a/deployments/143.md b/deployments/143.md
index 6ab73e70..adc0ccaa 100644
--- a/deployments/143.md
+++ b/deployments/143.md
@@ -28,6 +28,7 @@
- [Calibur Entry](#calibur-entry)
- [W E T H Hook](#w-e-t-h-hook)
- [Deployment History](#deployment-history)
+ - [Fri Mar 28 57856](#fri-mar-28-57856)
- [Fri Aug 16 57839](#fri-aug-16-57839)
- [Fri Dec 23 57836](#fri-dec-23-57836)
- [Tue Mar 04 57823](#tue-mar-04-57823)
@@ -127,7 +128,7 @@
| UniversalRouter |
- 0x0d97dc33264bfc1c226207428a79b26757fb9dc3 |
+ 0xbc2a036e5027b9ae57bba847ef88e1b14823f7b1 |
N/A |
@@ -461,15 +462,15 @@ Tue, 02 Sep 57760 07:22:46 UTC
### Universal Router
-Address: [0x0d97dc33264bfc1c226207428a79b26757fb9dc3](https://mainnet-beta.monvision.io/address/0x0d97dc33264bfc1c226207428a79b26757fb9dc3)
+Address: [0xbc2a036e5027b9ae57bba847ef88e1b14823f7b1](https://mainnet-beta.monvision.io/address/0xbc2a036e5027b9ae57bba847ef88e1b14823f7b1)
-Deployment Transaction: [0x62b939878338ea8f9b00ea64cca8dda634350d4cb11990ea52db0ca413c72a0a](https://mainnet-beta.monvision.io/tx/0x62b939878338ea8f9b00ea64cca8dda634350d4cb11990ea52db0ca413c72a0a)
+Deployment Transaction: [0xccf467c3c20e45ba72c4d092272db1d214140bd1d2004865e2cb954e213fd8c2](https://mainnet-beta.monvision.io/tx/0xccf467c3c20e45ba72c4d092272db1d214140bd1d2004865e2cb954e213fd8c2)
-Commit Hash: [9874be3](https://github.com/Uniswap/contracts/commit/9874be3)
+Commit Hash: [7d170b7](https://github.com/Uniswap/contracts/commit/7d170b7)
-Tue, 02 Sep 57760 07:22:46 UTC
+Fri, 28 Mar 57856 15:40:37 UTC
@@ -556,6 +557,33 @@ Fri, 16 Aug 57839 07:26:51 UTC
## Deployment History
+### Fri Mar 28 57856
+
+
+
+Deployed contracts:
+
+
+
+ Universal Router
+
+
+
+ | Commit hash: 7d170b7 |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A","v2Factory":"0x182a927119D56008d921126764bF884221b10f59","v3Factory":"0x204FAca1764B154221e35c0d20aBb3c525710498","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x188d586Ddcf52439676Ca21A244753fA19F9Ea8e","v3NFTPositionManager":"0x7197E214c0b767cFB76Fb734ab638E2c192F4E53","v4PositionManager":"0x5b7eC4a94fF9beDb700fb82aB09d5846972F4016","spokePool":"0x000000000000000000000000000000000000000"} |
+
+
+
+
+
+
### Fri Aug 16 57839
diff --git a/deployments/1868.md b/deployments/1868.md
index 3744af23..87148243 100644
--- a/deployments/1868.md
+++ b/deployments/1868.md
@@ -24,6 +24,7 @@
- [V4 Quoter](#v4-quoter)
- [State View](#state-view)
- [Deployment History](#deployment-history)
+ - [Thu Mar 27 57856](#thu-mar-27-57856)
- [Wed Mar 05 2025](#wed-mar-05-2025)
- [Sat Feb 15 2025](#sat-feb-15-2025)
- [Tue Jan 28 2025](#tue-jan-28-2025)
@@ -101,7 +102,7 @@
| UniversalRouter |
- 0x0e2850543f69f678257266e0907ff9a58b3f13de |
+ 0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef |
N/A |
@@ -342,15 +343,15 @@ Sat, 15 Feb 2025 18:35:39 UTC
### Universal Router
-Address: [0x0e2850543f69f678257266e0907ff9a58b3f13de](https://soneium.blockscout.com/address/0x0e2850543f69f678257266e0907ff9a58b3f13de)
+Address: [0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef](https://soneium.blockscout.com/address/0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef)
-Deployment Transaction: [0x5d8ca1ce86b30e33028d639c496d42673a9809e4c4b97155962bac48eca80389](https://soneium.blockscout.com/tx/0x5d8ca1ce86b30e33028d639c496d42673a9809e4c4b97155962bac48eca80389)
+Deployment Transaction: [0xa02d7efb0af9f039fa29c7dc2a1064e37b2c62520cca156203d8167892167f75](https://soneium.blockscout.com/tx/0xa02d7efb0af9f039fa29c7dc2a1064e37b2c62520cca156203d8167892167f75)
+Commit Hash: [f9b945f](https://github.com/Uniswap/contracts/commit/f9b945f)
-
-Sat, 15 Feb 2025 18:35:39 UTC
+Thu, 27 Mar 57856 00:25:37 UTC
@@ -466,6 +467,33 @@ Tue, 28 Jan 2025 16:25:25 UTC
## Deployment History
+### Thu Mar 27 57856
+
+
+
+Deployed contracts:
+
+
+
+ Universal Router
+
+
+
+ | Commit hash: f9b945f |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x4200000000000000000000000000000000000006","v2Factory":"0x97FeBbC2AdBD5644ba22736E962564B23F5828CE","v3Factory":"0x42aE7Ec7ff020412639d443E245D936429Fbe717","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32","v3NFTPositionManager":"0x56C1205B0244332011C1E866F4eA5384EB6Bfa2c","v4PositionManager":"0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566","spokePool":"0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd9"} |
+
+
+
+
+
+
### Wed Mar 05 2025
diff --git a/deployments/42161.md b/deployments/42161.md
index 36903ece..0c7b800f 100644
--- a/deployments/42161.md
+++ b/deployments/42161.md
@@ -29,8 +29,9 @@
- [Uniswap V3 Factory](#uniswap-v3-factory)
- [Calibur Entry](#calibur-entry)
- [Deployment History](#deployment-history)
- - [Tue Aug 19 2025](#tue-aug-19-2025)
+ - [Tue Feb 26 57856](#tue-feb-26-57856)
- [Fri Nov 07 2025](#fri-nov-07-2025)
+ - [Tue Aug 19 2025](#tue-aug-19-2025)
- [Fri May 02 2025](#fri-may-02-2025)
- [Thu Feb 13 2025](#thu-feb-13-2025)
- [Tue Jan 21 2025](#tue-jan-21-2025)
@@ -95,7 +96,7 @@
| UniversalRouter |
- 0xa51afafe0263b40edaef0df8781ea9aa03e381a3 |
+ 0x96b2fd2f80e9428daa65d859653117d453981ab4 |
N/A |
@@ -335,15 +336,15 @@ Tue, 21 Jan 2025 19:24:18 UTC
### Universal Router
-Address: [0xa51afafe0263b40edaef0df8781ea9aa03e381a3](https://arbiscan.io/address/0xa51afafe0263b40edaef0df8781ea9aa03e381a3)
+Address: [0x96b2fd2f80e9428daa65d859653117d453981ab4](https://arbiscan.io/address/0x96b2fd2f80e9428daa65d859653117d453981ab4)
-Deployment Transaction: [0x37842996a448e73dc7b27a9a3ff85f89c6100b4306eff7344536f07984b6b19f](https://arbiscan.io/tx/0x37842996a448e73dc7b27a9a3ff85f89c6100b4306eff7344536f07984b6b19f)
+Deployment Transaction: [0xde24f0ec9dc554b2ca4dfc07d86e916f3f137c1c41b7804bdc904dee8bac023c](https://arbiscan.io/tx/0xde24f0ec9dc554b2ca4dfc07d86e916f3f137c1c41b7804bdc904dee8bac023c)
-Commit Hash: [ac5ac65](https://github.com/Uniswap/contracts/commit/ac5ac65)
+Commit Hash: [f13ad62](https://github.com/Uniswap/contracts/commit/f13ad62)
-Tue, 21 Jan 2025 19:24:18 UTC
+Tue, 26 Feb 57856 03:52:48 UTC
@@ -590,7 +591,7 @@ Tue, 19 Aug 2025 20:15:18 UTC
## Deployment History
-### Tue Aug 19 2025
+### Tue Feb 26 57856
@@ -598,11 +599,19 @@ Deployed contracts:
- Calibur Entry
+ Universal Router
- | Commit hash: 0a52cd5 |
+ Commit hash: f13ad62 |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1","v2Factory":"0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9","v3Factory":"0x1F98431c8aD98523631AE4a59f267346ea31F984","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32","v3NFTPositionManager":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","v4PositionManager":"0xd88F38F930b7952f2DB2432Cb002E7abbF3dD869","spokePool":"0xe35e9842fceaCA96570B734083f4a58e8F7C5f2"} |
@@ -636,6 +645,25 @@ Deployed contracts:
+### Tue Aug 19 2025
+
+
+
+Deployed contracts:
+
+
+
+ Calibur Entry
+
+
+
+
+
+
### Fri May 02 2025
diff --git a/deployments/42220.md b/deployments/42220.md
index 1aa16376..4b3b265b 100644
--- a/deployments/42220.md
+++ b/deployments/42220.md
@@ -26,6 +26,7 @@
- [Uniswap V3 Factory](#uniswap-v3-factory)
- [Mixed Route Quoter V2](#mixed-route-quoter-v2)
- [Deployment History](#deployment-history)
+ - [Sat Mar 01 57856](#sat-mar-01-57856)
- [Mon Jan 09 57837](#mon-jan-09-57837)
- [Mon Aug 21 57719](#mon-aug-21-57719)
- [Fri Aug 22 2025](#fri-aug-22-2025)
@@ -62,7 +63,7 @@
| UniversalRouter |
- 0xcb695bc5d3aa22cad1e6df07801b061a05a0233a |
+ 0xbb8ed9bf0bff210652ae5f473a849f82e990ddf6 |
N/A |
@@ -203,15 +204,15 @@ Mon, 21 Aug 57719 18:28:00 UTC
### Universal Router
-Address: [0xcb695bc5d3aa22cad1e6df07801b061a05a0233a](https://celoscan.io/address/0xcb695bc5d3aa22cad1e6df07801b061a05a0233a)
+Address: [0xbb8ed9bf0bff210652ae5f473a849f82e990ddf6](https://celoscan.io/address/0xbb8ed9bf0bff210652ae5f473a849f82e990ddf6)
-Deployment Transaction: [0x787774bf1deca68698939a91baf1e8fecf381b95a0d32585fab7d6beb935cd56](https://celoscan.io/tx/0x787774bf1deca68698939a91baf1e8fecf381b95a0d32585fab7d6beb935cd56)
+Deployment Transaction: [0x726881966384acd626060bb8fa0f9332ca5110b4d8a3e4037c3224d8e283dd73](https://celoscan.io/tx/0x726881966384acd626060bb8fa0f9332ca5110b4d8a3e4037c3224d8e283dd73)
-Commit Hash: [a9cf67d](https://github.com/Uniswap/contracts/commit/a9cf67d)
+Commit Hash: [d94995c](https://github.com/Uniswap/contracts/commit/d94995c)
-Mon, 21 Aug 57719 18:28:00 UTC
+Sat, 01 Mar 57856 02:39:24 UTC
@@ -523,6 +524,33 @@ Mon, 09 Jan 57837 09:43:31 UTC
## Deployment History
+### Sat Mar 01 57856
+
+
+
+Deployed contracts:
+
+
+
+ Universal Router
+
+
+
+ | Commit hash: d94995c |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x471EcE3750Da237f93B8E339c536989b8978a438","v2Factory":"0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f","v3Factory":"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x288dc841A52FCA2707c6947B3A777c5E56cd87BC","v3NFTPositionManager":"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A","v4PositionManager":"0xf7965f3981e4D5BC383BfBCb61501763e9068CA9","spokePool":"0x5Dc88340E1c5c6366864Ee415d6034cadd1A989"} |
+
+
+
+
+
+
### Mon Jan 09 57837
diff --git a/deployments/43114.md b/deployments/43114.md
index c596a8f0..504196e6 100644
--- a/deployments/43114.md
+++ b/deployments/43114.md
@@ -15,6 +15,7 @@
- [Uniswap Interface Multicall](#uniswap-interface-multicall)
- [Uniswap V3 Factory](#uniswap-v3-factory)
- [Deployment History](#deployment-history)
+ - [Sat Mar 08 57856](#sat-mar-08-57856)
- [Thu Jan 11 2024](#thu-jan-11-2024)
- [Tue Nov 14 2023](#tue-nov-14-2023)
- [Mon Aug 28 2023](#mon-aug-28-2023)
@@ -29,7 +30,7 @@
Version |
| UniversalRouter |
- 0x4Dae2f939ACf50408e13d58534Ff8c2776d45265 |
+ 0x0cf1f86b331a03179646341d10a2a87515087221 |
N/A |
@@ -82,15 +83,15 @@
### Universal Router
-Address: [0x4Dae2f939ACf50408e13d58534Ff8c2776d45265](https://snowscan.xyz/address/0x4Dae2f939ACf50408e13d58534Ff8c2776d45265)
+Address: [0x0cf1f86b331a03179646341d10a2a87515087221](https://snowscan.xyz/address/0x0cf1f86b331a03179646341d10a2a87515087221)
-Deployment Transaction: [0x474852bafd923ab30f94a338d1d031aa7a7560d12d7b14dffacc02eb33265ec6](https://snowscan.xyz/tx/0x474852bafd923ab30f94a338d1d031aa7a7560d12d7b14dffacc02eb33265ec6)
+Deployment Transaction: [0x817e32060d0ae01625bbd4e88590012453f4ad21a62e1d40d18ba967505e53d7](https://snowscan.xyz/tx/0x817e32060d0ae01625bbd4e88590012453f4ad21a62e1d40d18ba967505e53d7)
+Commit Hash: [6ce39dd](https://github.com/Uniswap/contracts/commit/6ce39dd)
-
-Thu, 11 Jan 2024 20:03:41 UTC
+Sat, 08 Mar 57856 22:33:46 UTC
@@ -241,6 +242,33 @@ Fri, 24 Mar 2023 04:40:28 UTC
## Deployment History
+### Sat Mar 08 57856
+
+
+
+Deployed contracts:
+
+
+
+ Universal Router
+
+
+
+ | Commit hash: 6ce39dd |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7","v2Factory":"0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C","v3Factory":"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x06380C0e0912312B5150364B9DC4542BA0DbBc85","v3NFTPositionManager":"0x655C406EBFa14EE2006250925e54ec43AD184f8B","v4PositionManager":"0xB74b1F14d2754AcfcbBe1a221023a5cf50Ab8ACD","spokePool":"0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89"} |
+
+
+
+
+
+
### Thu Jan 11 2024
diff --git a/deployments/480.md b/deployments/480.md
index 6099642b..ab7538dc 100644
--- a/deployments/480.md
+++ b/deployments/480.md
@@ -13,11 +13,15 @@
- [Universal Router](#universal-router)
- [Uniswap V2 Router02](#uniswap-v2-router02)
- [Uniswap V2 Factory](#uniswap-v2-factory)
+ - [Nonfungible Position Manager](#nonfungible-position-manager)
+ - [Uniswap V3 Factory](#uniswap-v3-factory)
- [Deployment History](#deployment-history)
+ - [Tue Mar 18 57856](#tue-mar-18-57856)
- [Thu Feb 20 2025](#thu-feb-20-2025)
- [Wed Jan 22 2025](#wed-jan-22-2025)
- [Fri Oct 11 2024](#fri-oct-11-2024)
- [Fri Sep 27 2024](#fri-sep-27-2024)
+ - [Thu Aug 01 2024](#thu-aug-01-2024)
## Summary
## Contracts
@@ -200,15 +214,15 @@ Wed, 22 Jan 2025 15:25:57 UTC
### Universal Router
-Address: [0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743](https://worldscan.org/address/0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743)
+Address: [0x03c4f6b55733cdf3caa07c01e5b83ddee3381f60](https://worldscan.org/address/0x03c4f6b55733cdf3caa07c01e5b83ddee3381f60)
-Deployment Transaction: [0x723a61b8967737b593280ee298f8a166222b91cec639852e0ef8102874d9d743](https://worldscan.org/tx/0x723a61b8967737b593280ee298f8a166222b91cec639852e0ef8102874d9d743)
+Deployment Transaction: [0x9a8b1f8588f1dfd12e133c1cf8cb375871d8f4d681796d1ddc68266c85eb20bf](https://worldscan.org/tx/0x9a8b1f8588f1dfd12e133c1cf8cb375871d8f4d681796d1ddc68266c85eb20bf)
-Commit Hash: [7c30303](https://github.com/Uniswap/contracts/commit/7c30303)
+Commit Hash: [2edf4c0](https://github.com/Uniswap/contracts/commit/2edf4c0)
-Wed, 22 Jan 2025 15:25:57 UTC
+Tue, 18 Mar 57856 16:33:43 UTC
@@ -244,9 +258,68 @@ Fri, 27 Sep 2024 18:41:57 UTC
+---
+
+### Nonfungible Position Manager
+
+Address: [0xec12a9F9a09f50550686363766Cc153D03c27b5e](https://worldscan.org/address/0xec12a9F9a09f50550686363766Cc153D03c27b5e)
+
+Deployment Transaction: [0xfa48fd36baf629c91d6e83499e347d9cccd5076965993567b4dc7c481cd6ce56](https://worldscan.org/tx/0xfa48fd36baf629c91d6e83499e347d9cccd5076965993567b4dc7c481cd6ce56)
+
+
+
+
+
+Thu, 01 Aug 2024 20:00:49 UTC
+
+
+
+---
+
+### Uniswap V3 Factory
+
+Address: [0x7a5028BDa40e7B173C278C5342087826455ea25a](https://worldscan.org/address/0x7a5028BDa40e7B173C278C5342087826455ea25a)
+
+Deployment Transaction: [0x08308660d6b69fbde0e86fb740ae1feedd5a38c109dcc5824ec1bc98c0fff7ab](https://worldscan.org/tx/0x08308660d6b69fbde0e86fb740ae1feedd5a38c109dcc5824ec1bc98c0fff7ab)
+
+
+
+
+
+Thu, 01 Aug 2024 19:59:31 UTC
+
+
+
## Deployment History
+### Tue Mar 18 57856
+
+
+
+Deployed contracts:
+
+
+
+ Universal Router
+
+
+
+ | Commit hash: 2edf4c0 |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x4200000000000000000000000000000000000006","v2Factory":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","v3Factory":"0x7a5028BDa40e7B173C278C5342087826455ea25a","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0xb1860D529182ac3BC1F51Fa2ABd56662b7D13f33","v3NFTPositionManager":"0xec12a9F9a09f50550686363766Cc153D03c27b5e","v4PositionManager":"0xC585E0f504613b5fBf874F21Af14c65260fB41fA","spokePool":"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC6"} |
+
+
+
+
+
+
### Thu Feb 20 2025
@@ -472,4 +545,29 @@ Deployed contracts:
+
+
+
+### Thu Aug 01 2024
+
+
+
+Deployed contracts:
+
+
+
+ Nonfungible Position Manager
+
+
+
+
+
+ Uniswap V3 Factory
+
+
+
\ No newline at end of file
diff --git a/deployments/56.md b/deployments/56.md
index 2ec1c815..15f14e5b 100644
--- a/deployments/56.md
+++ b/deployments/56.md
@@ -27,8 +27,9 @@
- [Permit2](#permit2)
- [Calibur Entry](#calibur-entry)
- [Deployment History](#deployment-history)
- - [Fri May 23 2025](#fri-may-23-2025)
+ - [Mon Mar 03 57856](#mon-mar-03-57856)
- [Fri Aug 29 2025](#fri-aug-29-2025)
+ - [Fri May 23 2025](#fri-may-23-2025)
- [Thu Feb 20 2025](#thu-feb-20-2025)
- [Tue Jan 21 2025](#tue-jan-21-2025)
- [Tue Jul 09 2024](#tue-jul-09-2024)
@@ -85,7 +86,7 @@
| UniversalRouter |
- 0x1906c1d672b88cd1b9ac7593301ca990f94eae07 |
+ 0x91bf3bfaef8d771a74e1a8fe460b3ee646b2e588 |
N/A |
@@ -304,15 +305,15 @@ Tue, 21 Jan 2025 21:01:15 UTC
### Universal Router
-Address: [0x1906c1d672b88cd1b9ac7593301ca990f94eae07](https://bscscan.com/address/0x1906c1d672b88cd1b9ac7593301ca990f94eae07)
+Address: [0x91bf3bfaef8d771a74e1a8fe460b3ee646b2e588](https://bscscan.com/address/0x91bf3bfaef8d771a74e1a8fe460b3ee646b2e588)
-Deployment Transaction: [0x5226450df1d44d9a8073c0939b37d505c2ef6e19c52eeb1e00ba72ce96ccff7a](https://bscscan.com/tx/0x5226450df1d44d9a8073c0939b37d505c2ef6e19c52eeb1e00ba72ce96ccff7a)
+Deployment Transaction: [0xe4edb2ceb31c31b61d424262b0c872cabb785a7561e190d95138d520cfb050f7](https://bscscan.com/tx/0xe4edb2ceb31c31b61d424262b0c872cabb785a7561e190d95138d520cfb050f7)
-Commit Hash: [e6c327f](https://github.com/Uniswap/contracts/commit/e6c327f)
+Commit Hash: [bbe3fc0](https://github.com/Uniswap/contracts/commit/bbe3fc0)
-Tue, 21 Jan 2025 21:01:15 UTC
+Mon, 03 Mar 57856 14:31:52 UTC
@@ -543,7 +544,7 @@ Fri, 23 May 2025 19:38:38 UTC
## Deployment History
-### Fri May 23 2025
+### Mon Mar 03 57856
@@ -551,11 +552,19 @@ Deployed contracts:
- Calibur Entry
+ Universal Router
- | Commit hash: 0a52cd5 |
+ Commit hash: bbe3fc0 |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c","v2Factory":"0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6","v3Factory":"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x28e2Ea090877bF75740558f6BFB36A5ffeE9e9dF","v3NFTPositionManager":"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613","v4PositionManager":"0x7A4a5c919aE2541AeD11041A1AEeE68f1287f95b","spokePool":"0x4e8E101924eDE233C13e2D8622DC8aED2872d50"} |
@@ -589,6 +598,25 @@ Deployed contracts:
+### Fri May 23 2025
+
+
+
+Deployed contracts:
+
+
+
+ Calibur Entry
+
+
+
+
+
+
### Thu Feb 20 2025
diff --git a/deployments/7777777.md b/deployments/7777777.md
index 667b2122..17707b8a 100644
--- a/deployments/7777777.md
+++ b/deployments/7777777.md
@@ -13,6 +13,7 @@
- [Universal Router](#universal-router)
- [Calibur Entry](#calibur-entry)
- [Deployment History](#deployment-history)
+ - [Sat Mar 15 57856](#sat-mar-15-57856)
- [Fri May 23 2025](#fri-may-23-2025)
- [Thu Feb 20 2025](#thu-feb-20-2025)
- [Wed Jan 22 2025](#wed-jan-22-2025)
@@ -55,7 +56,7 @@
| UniversalRouter |
- 0x3315ef7ca28db74abadc6c44570efdf06b04b020 |
+ 0x880853091b60f80301a0c1d2f9893c4993041295 |
N/A |
@@ -193,15 +194,15 @@ Wed, 22 Jan 2025 16:22:07 UTC
### Universal Router
-Address: [0x3315ef7ca28db74abadc6c44570efdf06b04b020](https://explorer.zora.energy/address/0x3315ef7ca28db74abadc6c44570efdf06b04b020)
+Address: [0x880853091b60f80301a0c1d2f9893c4993041295](https://explorer.zora.energy/address/0x880853091b60f80301a0c1d2f9893c4993041295)
-Deployment Transaction: [0xe1a40a4c58cd6c958fbf912a2cb7f4f09f6d3c273e915e48f6e1588e8946ccec](https://explorer.zora.energy/tx/0xe1a40a4c58cd6c958fbf912a2cb7f4f09f6d3c273e915e48f6e1588e8946ccec)
+Deployment Transaction: [0x3c0e6d82d894be7b7ae4368f035329b1d29ced58d40b814543d669e0007415f3](https://explorer.zora.energy/tx/0x3c0e6d82d894be7b7ae4368f035329b1d29ced58d40b814543d669e0007415f3)
-Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
+Commit Hash: [29383e6](https://github.com/Uniswap/contracts/commit/29383e6)
-Wed, 22 Jan 2025 16:22:07 UTC
+Sat, 15 Mar 57856 05:32:43 UTC
@@ -224,6 +225,33 @@ Fri, 23 May 2025 19:40:32 UTC
## Deployment History
+### Sat Mar 15 57856
+
+
+
+Deployed contracts:
+
+
+
+ Universal Router
+
+
+
+ | Commit hash: 29383e6 |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x4200000000000000000000000000000000000006","v2Factory":"0x0F797dC7efaEA995bB916f268D919d0a1950eE3C","v3Factory":"0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x0575338e4C17006aE181B47900A84404247CA30f","v3NFTPositionManager":"0xbC91e8DfA3fF18De43853372A3d7dfe585137D78","v4PositionManager":"0xf66C7b99e2040f0D9b326B3b7c152E9663543D63","spokePool":"0x13fDac9F9b4777705db45291bbFF3c972c6d1d9"} |
+
+
+
+
+
+
### Fri May 23 2025
diff --git a/deployments/81457.md b/deployments/81457.md
index d7972b12..e49a0d07 100644
--- a/deployments/81457.md
+++ b/deployments/81457.md
@@ -20,6 +20,7 @@
- [V4 Quoter](#v4-quoter)
- [State View](#state-view)
- [Deployment History](#deployment-history)
+ - [Wed Mar 12 57856](#wed-mar-12-57856)
- [Wed Jan 22 2025](#wed-jan-22-2025)
- [Fri Apr 19 2024](#fri-apr-19-2024)
- [Thu Mar 21 2024](#thu-mar-21-2024)
@@ -40,7 +41,7 @@
| UniversalRouter |
- 0xeabbcb3e8e415306207ef514f660a3f820025be3 |
+ 0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7 |
N/A |
@@ -129,15 +130,15 @@ Fri, 19 Apr 2024 18:09:33 UTC
### Universal Router
-Address: [0xeabbcb3e8e415306207ef514f660a3f820025be3](https://blastscan.io/address/0xeabbcb3e8e415306207ef514f660a3f820025be3)
+Address: [0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7](https://blastscan.io/address/0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7)
-Deployment Transaction: [0xb4f08b5a67d2404acffe18c03d9dcc1ab68e24bd01b6b5e302b5eb42d11ef419](https://blastscan.io/tx/0xb4f08b5a67d2404acffe18c03d9dcc1ab68e24bd01b6b5e302b5eb42d11ef419)
+Deployment Transaction: [0xde880e1afb0d224c3b7eae8446240a0f6ca91a424cce7d108cc11d11731f0738](https://blastscan.io/tx/0xde880e1afb0d224c3b7eae8446240a0f6ca91a424cce7d108cc11d11731f0738)
-Commit Hash: [417770f](https://github.com/Uniswap/contracts/commit/417770f)
+Commit Hash: [b0d3829](https://github.com/Uniswap/contracts/commit/b0d3829)
-Wed, 22 Jan 2025 16:49:46 UTC
+Wed, 12 Mar 57856 03:16:31 UTC
@@ -381,6 +382,33 @@ Wed, 22 Jan 2025 16:49:46 UTC
## Deployment History
+### Wed Mar 12 57856
+
+
+
+Deployed contracts:
+
+
+
+ Universal Router
+
+
+
+ | Commit hash: b0d3829 |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x4300000000000000000000000000000000000004","v2Factory":"0x5C346464d33F90bABaf70dB6388507CC889C1070","v3Factory":"0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x1631559198A9e474033433b2958daBC135ab6446","v3NFTPositionManager":"0xB218e4f7cF0533d4696fDfC419A0023D33345F28","v4PositionManager":"0x4AD2F4CcA2682cBB5B950d660dD458a1D3f1bAaD","spokePool":"0x2D509190Ed0172ba588407D4c2df918F955Cc6E"} |
+
+
+
+
+
+
### Wed Jan 22 2025
diff --git a/deployments/8453.md b/deployments/8453.md
index 537dc96f..a25e4685 100644
--- a/deployments/8453.md
+++ b/deployments/8453.md
@@ -30,8 +30,9 @@
- [W E T H Hook](#w-e-t-h-hook)
- [E R C7914 Detector](#e-r-c7914-detector)
- [Deployment History](#deployment-history)
- - [Fri May 23 2025](#fri-may-23-2025)
+ - [Mon Mar 10 57856](#mon-mar-10-57856)
- [Wed Aug 27 2025](#wed-aug-27-2025)
+ - [Fri May 23 2025](#fri-may-23-2025)
- [Fri May 02 2025](#fri-may-02-2025)
- [Tue Jan 21 2025](#tue-jan-21-2025)
- [Mon Aug 05 2024](#mon-aug-05-2024)
@@ -84,7 +85,7 @@
| UniversalRouter |
- 0x6ff5693b99212da76ad316178a184ab56d299b43 |
+ 0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259 |
N/A |
@@ -278,15 +279,15 @@ Thu, 08 Feb 2024 17:31:41 UTC
### Universal Router
-Address: [0x6ff5693b99212da76ad316178a184ab56d299b43](https://basescan.org/address/0x6ff5693b99212da76ad316178a184ab56d299b43)
+Address: [0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259](https://basescan.org/address/0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259)
-Deployment Transaction: [0x0efe6f4f59683fd326dcefe5c07f7b072740ae02fcbe81dbc1755e4aba5fe1f2](https://basescan.org/tx/0x0efe6f4f59683fd326dcefe5c07f7b072740ae02fcbe81dbc1755e4aba5fe1f2)
+Deployment Transaction: [0x5011641b1bee40f6357a6d23563d9ef1e6eb765d5f9d2908f59e8d087713091a](https://basescan.org/tx/0x5011641b1bee40f6357a6d23563d9ef1e6eb765d5f9d2908f59e8d087713091a)
-Commit Hash: [a60641e](https://github.com/Uniswap/contracts/commit/a60641e)
+Commit Hash: [1f66908](https://github.com/Uniswap/contracts/commit/1f66908)
-Tue, 21 Jan 2025 20:31:25 UTC
+Mon, 10 Mar 57856 09:27:46 UTC
@@ -610,7 +611,7 @@ Wed, 27 Aug 2025 20:35:06 UTC
## Deployment History
-### Fri May 23 2025
+### Mon Mar 10 57856
@@ -618,11 +619,19 @@ Deployed contracts:
- Calibur Entry
+ Universal Router
- | Commit hash: 0a52cd5 |
+ Commit hash: 1f66908 |
+
+
+ | Parameter |
+ Value |
+
+
+ | params |
+ {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x4200000000000000000000000000000000000006","v2Factory":"0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6","v3Factory":"0x33128a8fC17869897dcE68Ed026d694621f6FDfD","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x498581fF718922c3f8e6A244956aF099B2652b2b","v3NFTPositionManager":"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1","v4PositionManager":"0x7C5f5A4bBd8fD63184577525326123B519429bDc","spokePool":"0x09aea4b2242abC8bb4BB78D537A67a245A7bEC6"} |
@@ -656,6 +665,25 @@ Deployed contracts:
+### Fri May 23 2025
+
+
+
+Deployed contracts:
+
+
+
+ Calibur Entry
+
+
+
+
+
+
### Fri May 02 2025
diff --git a/deployments/json/1.json b/deployments/json/1.json
index 9dd42770..57d68a6d 100644
--- a/deployments/json/1.json
+++ b/deployments/json/1.json
@@ -67,11 +67,11 @@
"commitHash": "2656054"
},
"UniversalRouter": {
- "address": "0x66a9893cc07d91d95644aedd05d03f95e1dba8af",
+ "address": "0xd92a36b0000531ef3063ded4de20a0783308446c",
"proxy": false,
- "deploymentTxn": "0x7e770b7713bde88afd49651461b8533a5e7d864b9ddb20252392aaa1ef6cc6e0",
- "timestamp": 1737658355,
- "commitHash": "2656054"
+ "deploymentTxn": "0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e",
+ "timestamp": 1763594449915,
+ "commitHash": "d2d9c4a"
},
"PoolManager": {
"address": "0x000000000004444c5dc75cB358380D2e3dE08A90",
@@ -207,17 +207,30 @@
"history": [
{
"contracts": {
- "CaliburEntry": {
- "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "UniversalRouter": {
+ "address": "0xd92a36b0000531ef3063ded4de20a0783308446c",
"proxy": false,
- "deploymentTxn": "0xf7d094c82512c971d821190e914eada76eec34da638736f09fa2fe1a9456d894",
+ "deploymentTxn": "0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e",
"input": {
- "constructor": {}
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
+ "v2Factory": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
+ "v3Factory": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x000000000004444c5dc75cB358380D2e3dE08A90",
+ "v3NFTPositionManager": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
+ "v4PositionManager": "0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e",
+ "spokePool": "0x5c7BCd6E7De5423a257D81B442095A1a6ced35C"
+ }
+ }
}
}
},
- "timestamp": 1748028805,
- "commitHash": "0a52cd5"
+ "timestamp": 1763594449915,
+ "commitHash": "d2d9c4a"
},
{
"contracts": {
@@ -273,6 +286,20 @@
"timestamp": 1756325186,
"commitHash": "320811c"
},
+ {
+ "contracts": {
+ "CaliburEntry": {
+ "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "proxy": false,
+ "deploymentTxn": "0xf7d094c82512c971d821190e914eada76eec34da638736f09fa2fe1a9456d894",
+ "input": {
+ "constructor": {}
+ }
+ }
+ },
+ "timestamp": 1748028805,
+ "commitHash": "0a52cd5"
+ },
{
"contracts": {
"WETHHook": {
diff --git a/deployments/json/10.json b/deployments/json/10.json
index 49b38fb4..7987647e 100644
--- a/deployments/json/10.json
+++ b/deployments/json/10.json
@@ -20,11 +20,11 @@
"timestamp": 1707413277
},
"UniversalRouter": {
- "address": "0x851116d9223fabed8e56c0e6b8ad0c31d98b3507",
+ "address": "0xde20eee5398d3790a4d356e8925bd21ea65d99af",
"proxy": false,
- "deploymentTxn": "0x94d12336287ba223b06942a9dec48be6ada41c0e8d9aa65f6cc1d5929060bd14",
- "timestamp": 1737494278,
- "commitHash": "135b1f9"
+ "deploymentTxn": "0x5413e69a593fecdb2958f3cf80893172ae24b16ba5bb8482c83814b199a7ece7",
+ "timestamp": 1763596337443,
+ "commitHash": "cc18617"
},
"UniswapV2Factory": {
"address": "0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf",
@@ -145,17 +145,30 @@
"history": [
{
"contracts": {
- "CaliburEntry": {
- "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "UniversalRouter": {
+ "address": "0xde20eee5398d3790a4d356e8925bd21ea65d99af",
"proxy": false,
- "deploymentTxn": "0x4cdc692812bf930011f4226d2d02496535ccaa77eb9168ced831efa52a00c3a5",
+ "deploymentTxn": "0x5413e69a593fecdb2958f3cf80893172ae24b16ba5bb8482c83814b199a7ece7",
"input": {
- "constructor": {}
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x4200000000000000000000000000000000000006",
+ "v2Factory": "0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf",
+ "v3Factory": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x9a13F98Cb987694C9F086b1F5eB990EeA8264Ec3",
+ "v3NFTPositionManager": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
+ "v4PositionManager": "0x3C3Ea4B57a46241e54610e5f022E5c45859A1017",
+ "spokePool": "0x6f26Bf09B1C792e3228e5467807a900A503c028"
+ }
+ }
}
}
},
- "timestamp": 1748029032,
- "commitHash": "0a52cd5"
+ "timestamp": 1763596337443,
+ "commitHash": "cc18617"
},
{
"contracts": {
@@ -173,6 +186,20 @@
"timestamp": 1756327634,
"commitHash": "320811c"
},
+ {
+ "contracts": {
+ "CaliburEntry": {
+ "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "proxy": false,
+ "deploymentTxn": "0x4cdc692812bf930011f4226d2d02496535ccaa77eb9168ced831efa52a00c3a5",
+ "input": {
+ "constructor": {}
+ }
+ }
+ },
+ "timestamp": 1748029032,
+ "commitHash": "0a52cd5"
+ },
{
"contracts": {
"WETHHook": {
diff --git a/deployments/json/11155111.json b/deployments/json/11155111.json
index 6379f4b2..efb48acd 100644
--- a/deployments/json/11155111.json
+++ b/deployments/json/11155111.json
@@ -1,6 +1,12 @@
{
"chainId": "11155111",
"latest": {
+ "UniversalRouter": {
+ "address": "0x470FFC67b1feEEC31D16C46AC7545C98716a194c",
+ "proxy": false,
+ "deploymentTxn": "0xdac96ccdd5f2ef8dbf82dcbe1d9d4563eb28e95e8c49120aecc2a727add89454",
+ "timestamp": 1763592708
+ },
"CaliburEntry": {
"address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
"proxy": false,
@@ -44,12 +50,6 @@
"deploymentTxn": "0x1b5f288ec3fa9ef5399b440b5aee3e21d193a7438abf6ac07faf37bab5318d96",
"timestamp": 1726254732
},
- "UniversalRouter": {
- "address": "0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",
- "proxy": false,
- "deploymentTxn": "0xa3fd4cd5c0acb5b28e03cd56d79bb64b4c5b6288775bee424d4f4cd1cce83a8a",
- "timestamp": 1684847988
- },
"UniswapV2Factory": {
"address": "0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0",
"proxy": false,
@@ -106,6 +106,32 @@
}
},
"history": [
+ {
+ "contracts": {
+ "UniversalRouter": {
+ "address": "0x470FFC67b1feEEC31D16C46AC7545C98716a194c",
+ "proxy": false,
+ "deploymentTxn": "0xdac96ccdd5f2ef8dbf82dcbe1d9d4563eb28e95e8c49120aecc2a727add89454",
+ "input": {
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",
+ "v2Factory": "0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0",
+ "v3Factory": "0x0227628f3F023bb0B980b67D528571c95c6DaC1c",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0xE03A1074c86CFeDd5C142C4F04F1a1536e203543",
+ "v3NFTPositionManager": "0x1238536071E1c677A632429e3655c799b22cDA52",
+ "v4PositionManager": "0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4",
+ "spokePool": "0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662"
+ }
+ }
+ }
+ }
+ },
+ "timestamp": 1763592708
+ },
{
"contracts": {
"CaliburEntry": {
diff --git a/deployments/json/130.json b/deployments/json/130.json
index 177de1ff..2dba334f 100644
--- a/deployments/json/130.json
+++ b/deployments/json/130.json
@@ -1,6 +1,65 @@
{
"chainId": "130",
"latest": {
+ "ERC7914Detector": {
+ "address": "0xc470458fc6a7e43471b31e6a2eb2612215a7102e",
+ "proxy": false,
+ "deploymentTxn": "0xbec3c59bc540a2816c38d59072d375bb94ab3eb64d3377f6194e19928e5055b4",
+ "timestamp": 1756326519,
+ "commitHash": "320811c"
+ },
+ "CaliburEntry": {
+ "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "proxy": false,
+ "deploymentTxn": "0x3c7fe24fc0319f1597d783bfd792aa4a4051847234eb26ba5f3bb1d6f14fdbf7",
+ "timestamp": 1748028920,
+ "commitHash": "0a52cd5"
+ },
+ "WETHHook": {
+ "address": "0x730b109bad65152c67ecc94eb8b0968603dba888",
+ "proxy": false,
+ "deploymentTxn": "0xd1bd2428515d7d82628d89949978f517fec75f3f41b38b59434dfa5ac5dac90f",
+ "timestamp": 1746214521,
+ "commitHash": "c797b9e"
+ },
+ "PositionDescriptor": {
+ "address": "0x9fb28449a191cd8c03a1b7abfb0f5996ecf7f722",
+ "implementation": "0x8be6f6785b71c16ca238abbcdd3f33271969c305",
+ "proxy": true,
+ "proxyType": "TransparentUpgradeableProxy",
+ "deploymentTxn": "0x86f8f6510d17aaafa452e052fe0a50479145abe63373bf6f60d49a2790c55288",
+ "proxyAdmin": null,
+ "timestamp": 1737568156,
+ "commitHash": "417770f"
+ },
+ "PositionManager": {
+ "address": "0x4529a01c7a0410167c5740c487a8de60232617bf",
+ "proxy": false,
+ "deploymentTxn": "0x51161eb65e19fabceb5de42cf48b3d4d283fa9d455c755d2f2fbf7b91b77d9ee",
+ "timestamp": 1737568156,
+ "commitHash": "417770f"
+ },
+ "V4Quoter": {
+ "address": "0x333e3c607b141b18ff6de9f258db6e77fe7491e0",
+ "proxy": false,
+ "deploymentTxn": "0xd017255a7c984031cc1577095b26f3eb71de25fcc8ce5fe0e330c8539dcfe073",
+ "timestamp": 1737568156,
+ "commitHash": "417770f"
+ },
+ "StateView": {
+ "address": "0x86e8631a016f9068c3f085faf484ee3f5fdee8f2",
+ "proxy": false,
+ "deploymentTxn": "0xa661aabf0b39113be264ffa38d73be6a71c259a00c217741e26c883761d906f4",
+ "timestamp": 1737568156,
+ "commitHash": "417770f"
+ },
+ "UniversalRouter": {
+ "address": "0xe6039ae5b44f90d56c6b029354fb22999861a9a0",
+ "proxy": false,
+ "deploymentTxn": "0xbe465e72ad881676b0fc5d4176c5cf619db9b978cb2a9f5c0f98fd0e24a0bfe9",
+ "timestamp": 1763599044388,
+ "commitHash": "c0b6b96"
+ },
"UniswapV2Router02": {
"address": "0x284f11109359a7e1306c3e447ef14d38400063ff",
"proxy": false,
@@ -37,8 +96,8 @@
"commitHash": "941946a"
},
"NonfungibleTokenPositionDescriptor": {
- "implementation": "0x477d03877c1a8afddc4b7945cceb01f4ff907429",
"address": "0x0dfa04b28ab68ffd0e6e17fac6ec16d4846a2004",
+ "implementation": "0x477d03877c1a8afddc4b7945cceb01f4ff907429",
"proxy": true,
"proxyType": "TransparentUpgradeableProxy",
"deploymentTxn": "0xc04b531f3ff842dffd44b697e0c3200174a309cf735b8c0b33c6226f1bc7813f",
@@ -81,79 +140,40 @@
"timestamp": 1731042514,
"commitHash": "941946a"
},
- "PositionDescriptor": {
- "implementation": "0x8be6f6785b71c16ca238abbcdd3f33271969c305",
- "address": "0x9fb28449a191cd8c03a1b7abfb0f5996ecf7f722",
- "proxy": true,
- "proxyType": "TransparentUpgradeableProxy",
- "deploymentTxn": "0x86f8f6510d17aaafa452e052fe0a50479145abe63373bf6f60d49a2790c55288",
- "timestamp": 1737568156,
- "commitHash": "417770f"
- },
- "PositionManager": {
- "address": "0x4529a01c7a0410167c5740c487a8de60232617bf",
- "proxy": false,
- "deploymentTxn": "0x51161eb65e19fabceb5de42cf48b3d4d283fa9d455c755d2f2fbf7b91b77d9ee",
- "timestamp": 1737568156,
- "commitHash": "417770f"
- },
- "V4Quoter": {
- "address": "0x333e3c607b141b18ff6de9f258db6e77fe7491e0",
- "proxy": false,
- "deploymentTxn": "0xd017255a7c984031cc1577095b26f3eb71de25fcc8ce5fe0e330c8539dcfe073",
- "timestamp": 1737568156,
- "commitHash": "417770f"
- },
- "StateView": {
- "address": "0x86e8631a016f9068c3f085faf484ee3f5fdee8f2",
- "proxy": false,
- "deploymentTxn": "0xa661aabf0b39113be264ffa38d73be6a71c259a00c217741e26c883761d906f4",
- "timestamp": 1737568156,
- "commitHash": "417770f"
- },
- "UniversalRouter": {
- "address": "0xef740bf23acae26f6492b10de645d6b98dc8eaf3",
- "proxy": false,
- "deploymentTxn": "0x8ba6faddd12cf5aaabd6a7a17bd0d1fbd6c258238536b732ad56e44f0077d81e",
- "timestamp": 1737568156,
- "commitHash": "417770f"
- },
- "CaliburEntry": {
- "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
- "proxy": false,
- "deploymentTxn": "0x3c7fe24fc0319f1597d783bfd792aa4a4051847234eb26ba5f3bb1d6f14fdbf7",
- "timestamp": 1748028920,
- "commitHash": "0a52cd5"
- },
- "WETHHook": {
- "address": "0x730b109bad65152c67ecc94eb8b0968603dba888",
+ "PoolManager": {
+ "address": "0x1F98400000000000000000000000000000000004",
"proxy": false,
- "deploymentTxn": "0xd1bd2428515d7d82628d89949978f517fec75f3f41b38b59434dfa5ac5dac90f",
- "timestamp": 1746214521,
- "commitHash": "c797b9e"
- },
- "ERC7914Detector": {
- "address": "0xc470458fc6a7e43471b31e6a2eb2612215a7102e",
- "proxy": false,
- "deploymentTxn": "0xbec3c59bc540a2816c38d59072d375bb94ab3eb64d3377f6194e19928e5055b4",
- "timestamp": 1756326519,
- "commitHash": "320811c"
+ "deploymentTxn": "GENESIS_1f98400000000000000000000000000000000004",
+ "timestamp": 1730748360
}
},
"history": [
{
"contracts": {
- "CaliburEntry": {
- "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "UniversalRouter": {
+ "address": "0xe6039ae5b44f90d56c6b029354fb22999861a9a0",
"proxy": false,
- "deploymentTxn": "0x3c7fe24fc0319f1597d783bfd792aa4a4051847234eb26ba5f3bb1d6f14fdbf7",
+ "deploymentTxn": "0xbe465e72ad881676b0fc5d4176c5cf619db9b978cb2a9f5c0f98fd0e24a0bfe9",
"input": {
- "constructor": {}
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x4200000000000000000000000000000000000006",
+ "v2Factory": "0x1F98400000000000000000000000000000000002",
+ "v3Factory": "0x1F98400000000000000000000000000000000003",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x1F98400000000000000000000000000000000004",
+ "v3NFTPositionManager": "0x943e6e07a7E8E791dAFC44083e54041D743C46E9",
+ "v4PositionManager": "0x4529A01c7A0410167c5740C487A8DE60232617bf",
+ "spokePool": "0x09aea4b2242abC8bb4BB78D537A67a245A7bEC6"
+ }
+ }
}
}
},
- "timestamp": 1748028920,
- "commitHash": "0a52cd5"
+ "timestamp": 1763599044388,
+ "commitHash": "c0b6b96"
},
{
"contracts": {
@@ -187,6 +207,20 @@
"timestamp": 1756325966,
"commitHash": "320811c"
},
+ {
+ "contracts": {
+ "CaliburEntry": {
+ "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "proxy": false,
+ "deploymentTxn": "0x3c7fe24fc0319f1597d783bfd792aa4a4051847234eb26ba5f3bb1d6f14fdbf7",
+ "input": {
+ "constructor": {}
+ }
+ }
+ },
+ "timestamp": 1748028920,
+ "commitHash": "0a52cd5"
+ },
{
"contracts": {
"WETHHook": {
@@ -402,6 +436,19 @@
},
"timestamp": 1731042514,
"commitHash": "941946a"
+ },
+ {
+ "contracts": {
+ "PoolManager": {
+ "address": "0x1F98400000000000000000000000000000000004",
+ "proxy": false,
+ "deploymentTxn": "GENESIS_1f98400000000000000000000000000000000004",
+ "input": {
+ "constructor": {}
+ }
+ }
+ },
+ "timestamp": 1730748360
}
]
}
\ No newline at end of file
diff --git a/deployments/json/1301.json b/deployments/json/1301.json
index 62e348d9..9daa39e2 100644
--- a/deployments/json/1301.json
+++ b/deployments/json/1301.json
@@ -9,11 +9,11 @@
"commitHash": "a896bb6"
},
"UniversalRouter": {
- "address": "0x986dadb82491834f6d17bd3287eb84be0b4d4cc7",
+ "address": "0x7f9b8d606e0f35e5073abf93695814530b28a37b",
"proxy": false,
- "deploymentTxn": "0x5f881cf2b90c29be2aabe94648fa8db12a133a400cc3e8ac2aecb23223240dbb",
- "timestamp": 1739218927,
- "commitHash": "3ad8685"
+ "deploymentTxn": "0x68a2eb98c2e52c2c2a7ec8f690e343b0da2380b63601e86776df836d8392a0a9",
+ "timestamp": 1763598857268,
+ "commitHash": "c0b6b96"
},
"UniswapInterfaceMulticall": {
"address": "0xa72e4f582f7c3e2232a9f23a41e53c13d1a647a9",
@@ -135,17 +135,30 @@
"history": [
{
"contracts": {
- "CaliburEntry": {
- "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "UniversalRouter": {
+ "address": "0x7f9b8d606e0f35e5073abf93695814530b28a37b",
"proxy": false,
- "deploymentTxn": "0x977f7307df758c44eae777231efb9daf5335c0c95082803c076b1011b2a6d2de",
+ "deploymentTxn": "0x68a2eb98c2e52c2c2a7ec8f690e343b0da2380b63601e86776df836d8392a0a9",
"input": {
- "constructor": {}
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x4200000000000000000000000000000000000006",
+ "v2Factory": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
+ "v3Factory": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x9cB26A7183B2F4515945Dc52CB4195B0d2D06C95",
+ "v3NFTPositionManager": "0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075",
+ "v4PositionManager": "0x12A98709BB5D0641D61458f85dcAFbE17AC2d05c",
+ "spokePool": "0x6999526e507Cc3b03b180BbE05E1Ff938259A87"
+ }
+ }
}
}
},
- "timestamp": 1748029284,
- "commitHash": "0a52cd5"
+ "timestamp": 1763598857268,
+ "commitHash": "c0b6b96"
},
{
"contracts": {
@@ -163,6 +176,20 @@
"timestamp": 1756328710,
"commitHash": "320811c"
},
+ {
+ "contracts": {
+ "CaliburEntry": {
+ "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "proxy": false,
+ "deploymentTxn": "0x977f7307df758c44eae777231efb9daf5335c0c95082803c076b1011b2a6d2de",
+ "input": {
+ "constructor": {}
+ }
+ }
+ },
+ "timestamp": 1748029284,
+ "commitHash": "0a52cd5"
+ },
{
"contracts": {
"UniswapV2Router02": {
diff --git a/deployments/json/137.json b/deployments/json/137.json
index 977ac9e9..09ef3337 100644
--- a/deployments/json/137.json
+++ b/deployments/json/137.json
@@ -46,11 +46,11 @@
"commitHash": "e6c327f"
},
"UniversalRouter": {
- "address": "0x1095692a6237d83c6a72f3f5efedb9a670c49223",
+ "address": "0xe27610fd9dd05fc061366bc9da414ca6f948f204",
"proxy": false,
- "deploymentTxn": "0x06116d3c7a4f3179e9493c62f7ab2799c16a7301aac1f59ed97c72ba2af59335",
- "timestamp": 1737492197,
- "commitHash": "e6c327f"
+ "deploymentTxn": "0x696626ea8d2cc585d9d47284996e14cc221e24c67d7b5e46a57002ac79eb7ae5",
+ "timestamp": 1763596111610,
+ "commitHash": "da7429d"
},
"FeeOnTransferDetector": {
"address": "0xC988e19819a63C0e487c6Ad8d6668Ac773923BF2",
@@ -153,6 +153,33 @@
}
},
"history": [
+ {
+ "contracts": {
+ "UniversalRouter": {
+ "address": "0xe27610fd9dd05fc061366bc9da414ca6f948f204",
+ "proxy": false,
+ "deploymentTxn": "0x696626ea8d2cc585d9d47284996e14cc221e24c67d7b5e46a57002ac79eb7ae5",
+ "input": {
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",
+ "v2Factory": "0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C",
+ "v3Factory": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x67366782805870060151383F4BbFF9daB53e5cD6",
+ "v3NFTPositionManager": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
+ "v4PositionManager": "0x1Ec2eBf4F37E7363FDfe3551602425af0B3ceef9",
+ "spokePool": "0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F09"
+ }
+ }
+ }
+ }
+ },
+ "timestamp": 1763596111610,
+ "commitHash": "da7429d"
+ },
{
"contracts": {
"MixedRouteQuoterV2": {
diff --git a/deployments/json/143.json b/deployments/json/143.json
index 1d60704c..ae850477 100644
--- a/deployments/json/143.json
+++ b/deployments/json/143.json
@@ -124,11 +124,11 @@
"commitHash": "9874be3"
},
"UniversalRouter": {
- "address": "0x0d97dc33264bfc1c226207428a79b26757fb9dc3",
+ "address": "0xbc2a036e5027b9ae57bba847ef88e1b14823f7b1",
"proxy": false,
- "deploymentTxn": "0x62b939878338ea8f9b00ea64cca8dda634350d4cb11990ea52db0ca413c72a0a",
- "timestamp": 1760583540166,
- "commitHash": "9874be3"
+ "deploymentTxn": "0xccf467c3c20e45ba72c4d092272db1d214140bd1d2004865e2cb954e213fd8c2",
+ "timestamp": 1763599362037,
+ "commitHash": "7d170b7"
},
"FeeOnTransferDetector": {
"address": "0x5c834b6cac4173bfe288c5722a38e04b9e366e30",
@@ -167,6 +167,33 @@
}
},
"history": [
+ {
+ "contracts": {
+ "UniversalRouter": {
+ "address": "0xbc2a036e5027b9ae57bba847ef88e1b14823f7b1",
+ "proxy": false,
+ "deploymentTxn": "0xccf467c3c20e45ba72c4d092272db1d214140bd1d2004865e2cb954e213fd8c2",
+ "input": {
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A",
+ "v2Factory": "0x182a927119D56008d921126764bF884221b10f59",
+ "v3Factory": "0x204FAca1764B154221e35c0d20aBb3c525710498",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x188d586Ddcf52439676Ca21A244753fA19F9Ea8e",
+ "v3NFTPositionManager": "0x7197E214c0b767cFB76Fb734ab638E2c192F4E53",
+ "v4PositionManager": "0x5b7eC4a94fF9beDb700fb82aB09d5846972F4016",
+ "spokePool": "0x000000000000000000000000000000000000000"
+ }
+ }
+ }
+ }
+ },
+ "timestamp": 1763599362037,
+ "commitHash": "7d170b7"
+ },
{
"contracts": {
"WETHHook": {
diff --git a/deployments/json/1868.json b/deployments/json/1868.json
index cfbf420e..fe734deb 100644
--- a/deployments/json/1868.json
+++ b/deployments/json/1868.json
@@ -81,10 +81,11 @@
"timestamp": 1739644539
},
"UniversalRouter": {
- "address": "0x0e2850543f69f678257266e0907ff9a58b3f13de",
+ "address": "0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef",
"proxy": false,
- "deploymentTxn": "0x5d8ca1ce86b30e33028d639c496d42673a9809e4c4b97155962bac48eca80389",
- "timestamp": 1739644539
+ "deploymentTxn": "0xa02d7efb0af9f039fa29c7dc2a1064e37b2c62520cca156203d8167892167f75",
+ "timestamp": 1763599220737,
+ "commitHash": "f9b945f"
},
"PoolManager": {
"address": "0x360e68faccca8ca495c1b759fd9eee466db9fb32",
@@ -126,6 +127,33 @@
}
},
"history": [
+ {
+ "contracts": {
+ "UniversalRouter": {
+ "address": "0xdb1d5986551c820bd0f3b1caca3e77ce03acb5ef",
+ "proxy": false,
+ "deploymentTxn": "0xa02d7efb0af9f039fa29c7dc2a1064e37b2c62520cca156203d8167892167f75",
+ "input": {
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x4200000000000000000000000000000000000006",
+ "v2Factory": "0x97FeBbC2AdBD5644ba22736E962564B23F5828CE",
+ "v3Factory": "0x42aE7Ec7ff020412639d443E245D936429Fbe717",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32",
+ "v3NFTPositionManager": "0x56C1205B0244332011C1E866F4eA5384EB6Bfa2c",
+ "v4PositionManager": "0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566",
+ "spokePool": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd9"
+ }
+ }
+ }
+ }
+ },
+ "timestamp": 1763599220737,
+ "commitHash": "f9b945f"
+ },
{
"contracts": {
"MixedRouteQuoterV2": {
diff --git a/deployments/json/42161.json b/deployments/json/42161.json
index a1350b85..e9ab6380 100644
--- a/deployments/json/42161.json
+++ b/deployments/json/42161.json
@@ -60,11 +60,11 @@
"commitHash": "ac5ac65"
},
"UniversalRouter": {
- "address": "0xa51afafe0263b40edaef0df8781ea9aa03e381a3",
+ "address": "0x96b2fd2f80e9428daa65d859653117d453981ab4",
"proxy": false,
- "deploymentTxn": "0x37842996a448e73dc7b27a9a3ff85f89c6100b4306eff7344536f07984b6b19f",
- "timestamp": 1737487458,
- "commitHash": "ac5ac65"
+ "deploymentTxn": "0xde24f0ec9dc554b2ca4dfc07d86e916f3f137c1c41b7804bdc904dee8bac023c",
+ "timestamp": 1763596641168,
+ "commitHash": "f13ad62"
},
"FeeOnTransferDetector": {
"address": "0x37324D81e318260DC4f0fCb68035028eFdE6F50e",
@@ -161,17 +161,30 @@
"history": [
{
"contracts": {
- "CaliburEntry": {
- "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "UniversalRouter": {
+ "address": "0x96b2fd2f80e9428daa65d859653117d453981ab4",
"proxy": false,
- "deploymentTxn": "0x7b50a77ad5545257fa9f21ac84185039fb1941d7915ec9b004d8de65fd7d22fd",
+ "deploymentTxn": "0xde24f0ec9dc554b2ca4dfc07d86e916f3f137c1c41b7804bdc904dee8bac023c",
"input": {
- "constructor": {}
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
+ "v2Factory": "0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9",
+ "v3Factory": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32",
+ "v3NFTPositionManager": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
+ "v4PositionManager": "0xd88F38F930b7952f2DB2432Cb002E7abbF3dD869",
+ "spokePool": "0xe35e9842fceaCA96570B734083f4a58e8F7C5f2"
+ }
+ }
}
}
},
- "timestamp": 1755634518,
- "commitHash": "0a52cd5"
+ "timestamp": 1763596641168,
+ "commitHash": "f13ad62"
},
{
"contracts": {
@@ -189,6 +202,20 @@
"timestamp": 1762529020,
"commitHash": "952bce9"
},
+ {
+ "contracts": {
+ "CaliburEntry": {
+ "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "proxy": false,
+ "deploymentTxn": "0x7b50a77ad5545257fa9f21ac84185039fb1941d7915ec9b004d8de65fd7d22fd",
+ "input": {
+ "constructor": {}
+ }
+ }
+ },
+ "timestamp": 1755634518,
+ "commitHash": "0a52cd5"
+ },
{
"contracts": {
"WETHHook": {
diff --git a/deployments/json/42220.json b/deployments/json/42220.json
index 2eff16f8..bb359d74 100644
--- a/deployments/json/42220.json
+++ b/deployments/json/42220.json
@@ -23,11 +23,11 @@
"commitHash": "a9cf67d"
},
"UniversalRouter": {
- "address": "0xcb695bc5d3aa22cad1e6df07801b061a05a0233a",
+ "address": "0xbb8ed9bf0bff210652ae5f473a849f82e990ddf6",
"proxy": false,
- "deploymentTxn": "0x787774bf1deca68698939a91baf1e8fecf381b95a0d32585fab7d6beb935cd56",
- "timestamp": 1759288616880,
- "commitHash": "a9cf67d"
+ "deploymentTxn": "0x726881966384acd626060bb8fa0f9332ca5110b4d8a3e4037c3224d8e283dd73",
+ "timestamp": 1763596982364,
+ "commitHash": "d94995c"
},
"PositionDescriptor": {
"address": "0x5727E22b25fEEe05E8dFa83C752B86F19D102D8A",
@@ -137,6 +137,33 @@
}
},
"history": [
+ {
+ "contracts": {
+ "UniversalRouter": {
+ "address": "0xbb8ed9bf0bff210652ae5f473a849f82e990ddf6",
+ "proxy": false,
+ "deploymentTxn": "0x726881966384acd626060bb8fa0f9332ca5110b4d8a3e4037c3224d8e283dd73",
+ "input": {
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x471EcE3750Da237f93B8E339c536989b8978a438",
+ "v2Factory": "0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f",
+ "v3Factory": "0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x288dc841A52FCA2707c6947B3A777c5E56cd87BC",
+ "v3NFTPositionManager": "0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",
+ "v4PositionManager": "0xf7965f3981e4D5BC383BfBCb61501763e9068CA9",
+ "spokePool": "0x5Dc88340E1c5c6366864Ee415d6034cadd1A989"
+ }
+ }
+ }
+ }
+ },
+ "timestamp": 1763596982364,
+ "commitHash": "d94995c"
+ },
{
"contracts": {
"MixedRouteQuoterV2": {
diff --git a/deployments/json/43114.json b/deployments/json/43114.json
index d2b5e6dc..6cfee570 100644
--- a/deployments/json/43114.json
+++ b/deployments/json/43114.json
@@ -2,10 +2,11 @@
"chainId": "43114",
"latest": {
"UniversalRouter": {
- "address": "0x4Dae2f939ACf50408e13d58534Ff8c2776d45265",
+ "address": "0x0cf1f86b331a03179646341d10a2a87515087221",
"proxy": false,
- "deploymentTxn": "0x474852bafd923ab30f94a338d1d031aa7a7560d12d7b14dffacc02eb33265ec6",
- "timestamp": 1705003421
+ "deploymentTxn": "0x817e32060d0ae01625bbd4e88590012453f4ad21a62e1d40d18ba967505e53d7",
+ "timestamp": 1763597658826,
+ "commitHash": "6ce39dd"
},
"UniswapV2Factory": {
"address": "0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C",
@@ -63,6 +64,33 @@
}
},
"history": [
+ {
+ "contracts": {
+ "UniversalRouter": {
+ "address": "0x0cf1f86b331a03179646341d10a2a87515087221",
+ "proxy": false,
+ "deploymentTxn": "0x817e32060d0ae01625bbd4e88590012453f4ad21a62e1d40d18ba967505e53d7",
+ "input": {
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",
+ "v2Factory": "0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C",
+ "v3Factory": "0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x06380C0e0912312B5150364B9DC4542BA0DbBc85",
+ "v3NFTPositionManager": "0x655C406EBFa14EE2006250925e54ec43AD184f8B",
+ "v4PositionManager": "0xB74b1F14d2754AcfcbBe1a221023a5cf50Ab8ACD",
+ "spokePool": "0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89"
+ }
+ }
+ }
+ }
+ },
+ "timestamp": 1763597658826,
+ "commitHash": "6ce39dd"
+ },
{
"contracts": {
"UniversalRouter": {
diff --git a/deployments/json/480.json b/deployments/json/480.json
index aa175efb..d8c17706 100644
--- a/deployments/json/480.json
+++ b/deployments/json/480.json
@@ -46,11 +46,11 @@
"commitHash": "7c30303"
},
"UniversalRouter": {
- "address": "0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743",
+ "address": "0x03c4f6b55733cdf3caa07c01e5b83ddee3381f60",
"proxy": false,
- "deploymentTxn": "0x723a61b8967737b593280ee298f8a166222b91cec639852e0ef8102874d9d743",
- "timestamp": 1737559557,
- "commitHash": "7c30303"
+ "deploymentTxn": "0x9a8b1f8588f1dfd12e133c1cf8cb375871d8f4d681796d1ddc68266c85eb20bf",
+ "timestamp": 1763598501223,
+ "commitHash": "2edf4c0"
},
"UniswapV2Router02": {
"address": "0x541aB7c31A119441eF3575F6973277DE0eF460bd",
@@ -63,9 +63,48 @@
"proxy": false,
"deploymentTxn": "0x14ebc1e32b0ce9084508e0e3e0cdc76e1f383ec57029bd47b88a3923cf2cc105",
"timestamp": 1727462517
+ },
+ "NonfungiblePositionManager": {
+ "address": "0xec12a9F9a09f50550686363766Cc153D03c27b5e",
+ "proxy": false,
+ "deploymentTxn": "0xfa48fd36baf629c91d6e83499e347d9cccd5076965993567b4dc7c481cd6ce56",
+ "timestamp": 1722542449
+ },
+ "UniswapV3Factory": {
+ "address": "0x7a5028BDa40e7B173C278C5342087826455ea25a",
+ "proxy": false,
+ "deploymentTxn": "0x08308660d6b69fbde0e86fb740ae1feedd5a38c109dcc5824ec1bc98c0fff7ab",
+ "timestamp": 1722542371
}
},
"history": [
+ {
+ "contracts": {
+ "UniversalRouter": {
+ "address": "0x03c4f6b55733cdf3caa07c01e5b83ddee3381f60",
+ "proxy": false,
+ "deploymentTxn": "0x9a8b1f8588f1dfd12e133c1cf8cb375871d8f4d681796d1ddc68266c85eb20bf",
+ "input": {
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x4200000000000000000000000000000000000006",
+ "v2Factory": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
+ "v3Factory": "0x7a5028BDa40e7B173C278C5342087826455ea25a",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0xb1860D529182ac3BC1F51Fa2ABd56662b7D13f33",
+ "v3NFTPositionManager": "0xec12a9F9a09f50550686363766Cc153D03c27b5e",
+ "v4PositionManager": "0xC585E0f504613b5fBf874F21Af14c65260fB41fA",
+ "spokePool": "0x09aea4b2242abC8bb4BB78D537A67a245A7bEC6"
+ }
+ }
+ }
+ }
+ },
+ "timestamp": 1763598501223,
+ "commitHash": "2edf4c0"
+ },
{
"contracts": {
"MixedRouteQuoterV2": {
@@ -198,6 +237,32 @@
}
},
"timestamp": 1727462517
+ },
+ {
+ "contracts": {
+ "NonfungiblePositionManager": {
+ "address": "0xec12a9F9a09f50550686363766Cc153D03c27b5e",
+ "proxy": false,
+ "deploymentTxn": "0xfa48fd36baf629c91d6e83499e347d9cccd5076965993567b4dc7c481cd6ce56",
+ "input": {
+ "constructor": {}
+ }
+ }
+ },
+ "timestamp": 1722542449
+ },
+ {
+ "contracts": {
+ "UniswapV3Factory": {
+ "address": "0x7a5028BDa40e7B173C278C5342087826455ea25a",
+ "proxy": false,
+ "deploymentTxn": "0x08308660d6b69fbde0e86fb740ae1feedd5a38c109dcc5824ec1bc98c0fff7ab",
+ "input": {
+ "constructor": {}
+ }
+ }
+ },
+ "timestamp": 1722542371
}
]
}
\ No newline at end of file
diff --git a/deployments/json/56.json b/deployments/json/56.json
index f84b0c7b..76af0a25 100644
--- a/deployments/json/56.json
+++ b/deployments/json/56.json
@@ -53,11 +53,11 @@
"commitHash": "e6c327f"
},
"UniversalRouter": {
- "address": "0x1906c1d672b88cd1b9ac7593301ca990f94eae07",
+ "address": "0x91bf3bfaef8d771a74e1a8fe460b3ee646b2e588",
"proxy": false,
- "deploymentTxn": "0x5226450df1d44d9a8073c0939b37d505c2ef6e19c52eeb1e00ba72ce96ccff7a",
- "timestamp": 1737493275,
- "commitHash": "e6c327f"
+ "deploymentTxn": "0xe4edb2ceb31c31b61d424262b0c872cabb785a7561e190d95138d520cfb050f7",
+ "timestamp": 1763597197912,
+ "commitHash": "bbe3fc0"
},
"FeeOnTransferDetector": {
"address": "0xCF6220e4496B091a6b391D48e770f1FbaC63E740",
@@ -148,17 +148,30 @@
"history": [
{
"contracts": {
- "CaliburEntry": {
- "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "UniversalRouter": {
+ "address": "0x91bf3bfaef8d771a74e1a8fe460b3ee646b2e588",
"proxy": false,
- "deploymentTxn": "0xb08db69ef8fb6d9a4fb0641d0e9bc3b3b343ac640268a9e71976f2b1675378a8",
+ "deploymentTxn": "0xe4edb2ceb31c31b61d424262b0c872cabb785a7561e190d95138d520cfb050f7",
"input": {
- "constructor": {}
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",
+ "v2Factory": "0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",
+ "v3Factory": "0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x28e2Ea090877bF75740558f6BFB36A5ffeE9e9dF",
+ "v3NFTPositionManager": "0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",
+ "v4PositionManager": "0x7A4a5c919aE2541AeD11041A1AEeE68f1287f95b",
+ "spokePool": "0x4e8E101924eDE233C13e2D8622DC8aED2872d50"
+ }
+ }
}
}
},
- "timestamp": 1748029118,
- "commitHash": "0a52cd5"
+ "timestamp": 1763597197912,
+ "commitHash": "bbe3fc0"
},
{
"contracts": {
@@ -176,6 +189,20 @@
"timestamp": 1756472573,
"commitHash": "320811c"
},
+ {
+ "contracts": {
+ "CaliburEntry": {
+ "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "proxy": false,
+ "deploymentTxn": "0xb08db69ef8fb6d9a4fb0641d0e9bc3b3b343ac640268a9e71976f2b1675378a8",
+ "input": {
+ "constructor": {}
+ }
+ }
+ },
+ "timestamp": 1748029118,
+ "commitHash": "0a52cd5"
+ },
{
"contracts": {
"MixedRouteQuoterV2": {
diff --git a/deployments/json/7777777.json b/deployments/json/7777777.json
index 8260e1d5..ba1c2c47 100644
--- a/deployments/json/7777777.json
+++ b/deployments/json/7777777.json
@@ -46,11 +46,11 @@
"commitHash": "417770f"
},
"UniversalRouter": {
- "address": "0x3315ef7ca28db74abadc6c44570efdf06b04b020",
+ "address": "0x880853091b60f80301a0c1d2f9893c4993041295",
"proxy": false,
- "deploymentTxn": "0xe1a40a4c58cd6c958fbf912a2cb7f4f09f6d3c273e915e48f6e1588e8946ccec",
- "timestamp": 1737562927,
- "commitHash": "417770f"
+ "deploymentTxn": "0x3c0e6d82d894be7b7ae4368f035329b1d29ced58d40b814543d669e0007415f3",
+ "timestamp": 1763598202363,
+ "commitHash": "29383e6"
},
"CaliburEntry": {
"address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
@@ -61,6 +61,33 @@
}
},
"history": [
+ {
+ "contracts": {
+ "UniversalRouter": {
+ "address": "0x880853091b60f80301a0c1d2f9893c4993041295",
+ "proxy": false,
+ "deploymentTxn": "0x3c0e6d82d894be7b7ae4368f035329b1d29ced58d40b814543d669e0007415f3",
+ "input": {
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x4200000000000000000000000000000000000006",
+ "v2Factory": "0x0F797dC7efaEA995bB916f268D919d0a1950eE3C",
+ "v3Factory": "0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x0575338e4C17006aE181B47900A84404247CA30f",
+ "v3NFTPositionManager": "0xbC91e8DfA3fF18De43853372A3d7dfe585137D78",
+ "v4PositionManager": "0xf66C7b99e2040f0D9b326B3b7c152E9663543D63",
+ "spokePool": "0x13fDac9F9b4777705db45291bbFF3c972c6d1d9"
+ }
+ }
+ }
+ }
+ },
+ "timestamp": 1763598202363,
+ "commitHash": "29383e6"
+ },
{
"contracts": {
"CaliburEntry": {
diff --git a/deployments/json/81457.json b/deployments/json/81457.json
index 11ea62b6..648b341a 100644
--- a/deployments/json/81457.json
+++ b/deployments/json/81457.json
@@ -8,11 +8,11 @@
"timestamp": 1713550173
},
"UniversalRouter": {
- "address": "0xeabbcb3e8e415306207ef514f660a3f820025be3",
+ "address": "0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7",
"proxy": false,
- "deploymentTxn": "0xb4f08b5a67d2404acffe18c03d9dcc1ab68e24bd01b6b5e302b5eb42d11ef419",
- "timestamp": 1737564586,
- "commitHash": "417770f"
+ "deploymentTxn": "0xde880e1afb0d224c3b7eae8446240a0f6ca91a424cce7d108cc11d11731f0738",
+ "timestamp": 1763597934991,
+ "commitHash": "b0d3829"
},
"UniswapV2Router02": {
"address": "0xBB66Eb1c5e875933D44DAe661dbD80e5D9B03035",
@@ -101,6 +101,33 @@
}
},
"history": [
+ {
+ "contracts": {
+ "UniversalRouter": {
+ "address": "0x77c0097c1acf6fd84878d3f7c0603e3f04e8bec7",
+ "proxy": false,
+ "deploymentTxn": "0xde880e1afb0d224c3b7eae8446240a0f6ca91a424cce7d108cc11d11731f0738",
+ "input": {
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x4300000000000000000000000000000000000004",
+ "v2Factory": "0x5C346464d33F90bABaf70dB6388507CC889C1070",
+ "v3Factory": "0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x1631559198A9e474033433b2958daBC135ab6446",
+ "v3NFTPositionManager": "0xB218e4f7cF0533d4696fDfC419A0023D33345F28",
+ "v4PositionManager": "0x4AD2F4CcA2682cBB5B950d660dD458a1D3f1bAaD",
+ "spokePool": "0x2D509190Ed0172ba588407D4c2df918F955Cc6E"
+ }
+ }
+ }
+ }
+ },
+ "timestamp": 1763597934991,
+ "commitHash": "b0d3829"
+ },
{
"contracts": {
"PoolManager": {
diff --git a/deployments/json/8453.json b/deployments/json/8453.json
index 1b64bb72..95ba45e0 100644
--- a/deployments/json/8453.json
+++ b/deployments/json/8453.json
@@ -38,11 +38,11 @@
"timestamp": 1707413501
},
"UniversalRouter": {
- "address": "0x6ff5693b99212da76ad316178a184ab56d299b43",
+ "address": "0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259",
"proxy": false,
- "deploymentTxn": "0x0efe6f4f59683fd326dcefe5c07f7b072740ae02fcbe81dbc1755e4aba5fe1f2",
- "timestamp": 1737491485,
- "commitHash": "a60641e"
+ "deploymentTxn": "0x5011641b1bee40f6357a6d23563d9ef1e6eb765d5f9d2908f59e8d087713091a",
+ "timestamp": 1763597784466,
+ "commitHash": "1f66908"
},
"UniswapV2Factory": {
"address": "0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",
@@ -166,17 +166,30 @@
"history": [
{
"contracts": {
- "CaliburEntry": {
- "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "UniversalRouter": {
+ "address": "0xf3a4f4094bd2c6c06ca2f61789d8727b8d1e7259",
"proxy": false,
- "deploymentTxn": "0xc0e0f110d8ead21412392a136fa7d88063fee0e195063a8a4c5901a5fed8a523",
+ "deploymentTxn": "0x5011641b1bee40f6357a6d23563d9ef1e6eb765d5f9d2908f59e8d087713091a",
"input": {
- "constructor": {}
+ "constructor": {
+ "params": {
+ "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "weth9": "0x4200000000000000000000000000000000000006",
+ "v2Factory": "0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",
+ "v3Factory": "0x33128a8fC17869897dcE68Ed026d694621f6FDfD",
+ "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "v4PoolManager": "0x498581fF718922c3f8e6A244956aF099B2652b2b",
+ "v3NFTPositionManager": "0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",
+ "v4PositionManager": "0x7C5f5A4bBd8fD63184577525326123B519429bDc",
+ "spokePool": "0x09aea4b2242abC8bb4BB78D537A67a245A7bEC6"
+ }
+ }
}
}
},
- "timestamp": 1748028984,
- "commitHash": "0a52cd5"
+ "timestamp": 1763597784466,
+ "commitHash": "1f66908"
},
{
"contracts": {
@@ -194,6 +207,20 @@
"timestamp": 1756326906,
"commitHash": "320811c"
},
+ {
+ "contracts": {
+ "CaliburEntry": {
+ "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00",
+ "proxy": false,
+ "deploymentTxn": "0xc0e0f110d8ead21412392a136fa7d88063fee0e195063a8a4c5901a5fed8a523",
+ "input": {
+ "constructor": {}
+ }
+ }
+ },
+ "timestamp": 1748028984,
+ "commitHash": "0a52cd5"
+ },
{
"contracts": {
"WETHHook": {
diff --git a/remappings.txt b/remappings.txt
index 27e6b148..d3cafffa 100644
--- a/remappings.txt
+++ b/remappings.txt
@@ -9,7 +9,7 @@ src/pkgs/v4-periphery/src:@openzeppelin=src/pkgs/v4-periphery/lib/v4-core/lib/op
src/pkgs/permit2:solmate=src/pkgs/permit2/lib/solmate
src/pkgs/universal-router:@uniswap/v3-periphery/=src/pkgs/universal-router/lib/v3-periphery/
src/pkgs/universal-router:@uniswap/v4-periphery/=src/pkgs/universal-router/lib/v4-periphery/
-src/pkgs/universal-router:@openzeppelin/contracts=lib/openzeppelin-contracts/contracts
+src/pkgs/universal-router:@openzeppelin=src/pkgs/universal-router/lib/v4-periphery/lib/v4-core/lib/openzeppelin-contracts
src/pkgs/universal-router:solmate=src/pkgs/universal-router/lib/solmate
src/pkgs/universal-router/lib/v4-periphery:@openzeppelin=src/pkgs/universal-router/lib/v4-periphery/lib/v4-core/lib/openzeppelin-contracts
src/pkgs/universal-router/lib/v3-periphery:@openzeppelin=lib/oz-v4.7.0
diff --git a/script/deploy/tasks/1/task-1763594411.json b/script/deploy/tasks/1/task-1763594411.json
new file mode 100644
index 00000000..5f6dd96c
--- /dev/null
+++ b/script/deploy/tasks/1/task-1763594411.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x000000000004444c5dc75cB358380D2e3dE08A90",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0xbd216513d74c8cf14cf4747e6aaa6420ff64ee9e",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/10/task-1763596309.json b/script/deploy/tasks/10/task-1763596309.json
new file mode 100644
index 00000000..50e143cd
--- /dev/null
+++ b/script/deploy/tasks/10/task-1763596309.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x0c3c1c532F1e39EdF36BE9Fe0bE1410313E074Bf",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x9a13f98cb987694c9f086b1f5eb990eea8264ec3",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0x3c3ea4b57a46241e54610e5f022e5c45859a1017",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x6f26Bf09B1C792e3228e5467807a900A503c0281"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x4200000000000000000000000000000000000006"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/130/task-1763599016.json b/script/deploy/tasks/130/task-1763599016.json
new file mode 100644
index 00000000..a9567473
--- /dev/null
+++ b/script/deploy/tasks/130/task-1763599016.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x1F98400000000000000000000000000000000002",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x1F98400000000000000000000000000000000003",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0x943e6e07a7e8e791dafc44083e54041d743c46e9",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x1F98400000000000000000000000000000000004",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0x4529a01c7a0410167c5740c487a8de60232617bf",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x4200000000000000000000000000000000000006"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/1301/task-1763598601.json b/script/deploy/tasks/1301/task-1763598601.json
new file mode 100644
index 00000000..bfdb12a4
--- /dev/null
+++ b/script/deploy/tasks/1301/task-1763598601.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x9cb26a7183b2f4515945dc52cb4195b0d2d06c95",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0x12a98709bb5d0641d61458f85dcafbe17ac2d05c",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x6999526e507Cc3b03b180BbE05E1Ff938259A874"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x4200000000000000000000000000000000000006"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/1301/task-1763598821.json b/script/deploy/tasks/1301/task-1763598821.json
new file mode 100644
index 00000000..bfdb12a4
--- /dev/null
+++ b/script/deploy/tasks/1301/task-1763598821.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0xB7F724d6dDDFd008eFf5cc2834edDE5F9eF0d075",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x9cb26a7183b2f4515945dc52cb4195b0d2d06c95",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0x12a98709bb5d0641d61458f85dcafbe17ac2d05c",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x6999526e507Cc3b03b180BbE05E1Ff938259A874"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x4200000000000000000000000000000000000006"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/137/task-1763596069.json b/script/deploy/tasks/137/task-1763596069.json
new file mode 100644
index 00000000..0115181b
--- /dev/null
+++ b/script/deploy/tasks/137/task-1763596069.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x67366782805870060151383f4bbff9dab53e5cd6",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0x1ec2ebf4f37e7363fdfe3551602425af0b3ceef9",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/143/task-1763599341.json b/script/deploy/tasks/143/task-1763599341.json
new file mode 100644
index 00000000..fa95a5a4
--- /dev/null
+++ b/script/deploy/tasks/143/task-1763599341.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x182a927119D56008d921126764bF884221b10f59",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x204FAca1764B154221e35c0d20aBb3c525710498",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0x7197e214c0b767cfb76fb734ab638e2c192f4e53",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x188d586ddcf52439676ca21a244753fa19f9ea8e",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0x5b7ec4a94ff9bedb700fb82ab09d5846972f4016",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x0000000000000000000000000000000000000000"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/1868/task-1763599185.json b/script/deploy/tasks/1868/task-1763599185.json
new file mode 100644
index 00000000..6fdc9353
--- /dev/null
+++ b/script/deploy/tasks/1868/task-1763599185.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x97FeBbC2AdBD5644ba22736E962564B23F5828CE",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x42aE7Ec7ff020412639d443E245D936429Fbe717",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0x56c1205b0244332011c1e866f4ea5384eb6bfa2c",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x360e68faccca8ca495c1b759fd9eee466db9fb32",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0x1b35d13a2e2528f192637f14b05f0dc0e7deb566",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x4200000000000000000000000000000000000006"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/42161/task-1763596626.json b/script/deploy/tasks/42161/task-1763596626.json
new file mode 100644
index 00000000..39ecd684
--- /dev/null
+++ b/script/deploy/tasks/42161/task-1763596626.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0xf1D7CC64Fb4452F05c498126312eBE29f30Fbcf9",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x1F98431c8aD98523631AE4a59f267346ea31F984",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x360e68faccca8ca495c1b759fd9eee466db9fb32",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0xd88f38f930b7952f2db2432cb002e7abbf3dd869",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0xe35e9842fceaca96570b734083f4a58e8f7c5f2a"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/42220/task-1763596948.json b/script/deploy/tasks/42220/task-1763596948.json
new file mode 100644
index 00000000..b4dc21ce
--- /dev/null
+++ b/script/deploy/tasks/42220/task-1763596948.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x79a530c8e2fA8748B7B40dd3629C0520c2cCf03f",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x288dc841A52FCA2707c6947B3A777c5E56cd87BC",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0xf7965f3981e4d5bc383bfbcb61501763e9068ca9",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x5Dc88340E1c5c6366864Ee415d6034cadd1A9897"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x471EcE3750Da237f93B8E339c536989b8978a438"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/43114/task-1763597593.json b/script/deploy/tasks/43114/task-1763597593.json
new file mode 100644
index 00000000..859932ea
--- /dev/null
+++ b/script/deploy/tasks/43114/task-1763597593.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x9e5A52f57b3038F1B8EeE45F28b3C1967e22799C",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0x655C406EBFa14EE2006250925e54ec43AD184f8B",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x06380c0e0912312b5150364b9dc4542ba0dbbc85",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0xb74b1f14d2754acfcbbe1a221023a5cf50ab8acd",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x5302086A3a25d473aAbBd0356eFf8Dd811a4d89B"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/480/task-1763598465.json b/script/deploy/tasks/480/task-1763598465.json
new file mode 100644
index 00000000..5467e85a
--- /dev/null
+++ b/script/deploy/tasks/480/task-1763598465.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x7a5028BDa40e7B173C278C5342087826455ea25a",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0xec12a9F9a09f50550686363766Cc153D03c27b5e",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0xb1860d529182ac3bc1f51fa2abd56662b7d13f33",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0xc585e0f504613b5fbf874f21af14c65260fb41fa",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x4200000000000000000000000000000000000006"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/56/task-1763597159.json b/script/deploy/tasks/56/task-1763597159.json
new file mode 100644
index 00000000..7d45b1dc
--- /dev/null
+++ b/script/deploy/tasks/56/task-1763597159.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x28e2ea090877bf75740558f6bfb36a5ffee9e9df",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0x7a4a5c919ae2541aed11041a1aeee68f1287f95b",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x4e8E101924eDE233C13e2D8622DC8aED2872d505"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/7777777/task-1763598169.json b/script/deploy/tasks/7777777/task-1763598169.json
new file mode 100644
index 00000000..96d14626
--- /dev/null
+++ b/script/deploy/tasks/7777777/task-1763598169.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x0F797dC7efaEA995bB916f268D919d0a1950eE3C",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x7145F8aeef1f6510E92164038E1B6F8cB2c42Cbb",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0xbC91e8DfA3fF18De43853372A3d7dfe585137D78",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x0575338e4c17006ae181b47900a84404247ca30f",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0xf66c7b99e2040f0d9b326b3b7c152e9663543d63",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x13fDac9F9b4777705db45291bbFF3c972c6d1d97"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x4200000000000000000000000000000000000006"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/81457/task-1763597901.json b/script/deploy/tasks/81457/task-1763597901.json
new file mode 100644
index 00000000..dfc3ef29
--- /dev/null
+++ b/script/deploy/tasks/81457/task-1763597901.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x5C346464d33F90bABaf70dB6388507CC889C1070",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x792edAdE80af5fC680d96a2eD80A44247D2Cf6Fd",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0xB218e4f7cF0533d4696fDfC419A0023D33345F28",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x1631559198a9e474033433b2958dabc135ab6446",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0x4ad2f4cca2682cbb5b950d660dd458a1d3f1baad",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x2D509190Ed0172ba588407D4c2df918F955Cc6E1"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x4300000000000000000000000000000000000004"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/script/deploy/tasks/8453/task-1763597761.json b/script/deploy/tasks/8453/task-1763597761.json
new file mode 100644
index 00000000..65b8ebbb
--- /dev/null
+++ b/script/deploy/tasks/8453/task-1763597761.json
@@ -0,0 +1,527 @@
+{
+ "protocols": {
+ "permit2": {
+ "name": "Permit 2",
+ "deploy": false,
+ "contracts": {
+ "Permit2": {
+ "deploy": false,
+ "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3",
+ "lookup": {
+ "latest": "Permit2",
+ "history": [
+ "UniversalRouter.input.constructor.params.permit2"
+ ]
+ },
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000d3af2663da51c10215000000"
+ }
+ }
+ }
+ }
+ },
+ "v2": {
+ "name": "Uniswap v2",
+ "deploy": false,
+ "contracts": {
+ "UniswapV2Factory": {
+ "deploy": false,
+ "address": "0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",
+ "lookup": {
+ "latest": "UniswapV2Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v2Factory"
+ ]
+ },
+ "params": {
+ "feeToSetter": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapV2Router02": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v3": {
+ "name": "Uniswap v3",
+ "deploy": false,
+ "contracts": {
+ "UniswapV3Factory": {
+ "deploy": false,
+ "address": "0x33128a8fC17869897dcE68Ed026d694621f6FDfD",
+ "lookup": {
+ "latest": "UniswapV3Factory",
+ "history": [
+ "UniversalRouter.input.constructor.params.v3Factory"
+ ]
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "UniswapInterfaceMulticall": {
+ "deploy": false
+ },
+ "QuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "TickLens": {
+ "deploy": false
+ },
+ "NonfungibleTokenPositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "NonfungibleTokenPositionDescriptor"
+ },
+ "params": {
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "NonfungiblePositionManager": {
+ "deploy": false,
+ "address": "0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",
+ "lookup": {
+ "latest": "NonfungiblePositionManager"
+ },
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "tokenDescriptor": {
+ "name": "NFT Position Descriptor address",
+ "pointer": "protocols.v3.contracts.NonfungibleTokenPositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V3Migrator": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "nonfungiblePositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "SwapRouter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "v4": {
+ "name": "Uniswap v4",
+ "deploy": false,
+ "contracts": {
+ "PoolManager": {
+ "deploy": false,
+ "address": "0x498581ff718922c3f8e6a244956af099b2652b2b",
+ "lookup": {
+ "latest": "PoolManager"
+ },
+ "params": {
+ "initialOwner": {
+ "type": "address"
+ }
+ }
+ },
+ "PositionDescriptor": {
+ "deploy": false,
+ "address": null,
+ "lookup": {
+ "latest": "PositionDescriptor"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "nativeCurrencyLabel": {
+ "name": "Native token symbol",
+ "type": "string",
+ "value": "ETH"
+ },
+ "proxyAdminOwner": {
+ "type": "address"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "PositionManager": {
+ "deploy": false,
+ "address": "0x7c5f5a4bbd8fd63184577525326123b519429bdc",
+ "lookup": {
+ "latest": "PositionManager"
+ },
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "unsubscribeGasLimit": {
+ "name": "Unsubscribe gas limit",
+ "type": "uint256"
+ },
+ "positionDescriptor": {
+ "name": "Position Descriptor address",
+ "pointer": "protocols.v4.contracts.PositionDescriptor"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "V4Quoter": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ },
+ "StateView": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ }
+ }
+ }
+ }
+ },
+ "hooks": {
+ "name": "v4 Hooks",
+ "deploy": false,
+ "contracts": {
+ "WETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ },
+ "WstETHHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ },
+ "WstETHRoutingHook": {
+ "deploy": false,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "wstETH": {
+ "name": "WstETH address",
+ "type": "address"
+ },
+ "salt": {
+ "type": "bytes32"
+ }
+ }
+ }
+ }
+ },
+ "view-quoter-v3": {
+ "name": "View Quoter v3",
+ "deploy": false,
+ "contracts": {
+ "Quoter": {
+ "deploy": false,
+ "params": {
+ "factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ }
+ }
+ }
+ }
+ },
+ "mixed-quoter": {
+ "name": "Mixed Quoter",
+ "deploy": false,
+ "contracts": {
+ "MixedRouteQuoterV2": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "poolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ }
+ }
+ },
+ "swap-router-contracts": {
+ "name": "Swap Router Contracts",
+ "deploy": false,
+ "contracts": {
+ "SwapRouter02": {
+ "deploy": false,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "factoryV3": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "positionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ]
+ }
+ }
+ },
+ "universal-router": {
+ "name": "Universal Router",
+ "deploy": true,
+ "contracts": {
+ "UniversalRouter": {
+ "deploy": true,
+ "params": {
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "v2Factory": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ },
+ "v3Factory": {
+ "name": "Uniswap v3 factory address",
+ "pointer": "protocols.v3.contracts.UniswapV3Factory"
+ },
+ "v2PairInitCodeHash": {
+ "name": "Uniswap v2 pair init code hash",
+ "type": "bytes32",
+ "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.pairInitCodeHash"
+ ]
+ }
+ },
+ "v3PoolInitCodeHash": {
+ "name": "Uniswap v3 pool init code hash",
+ "type": "bytes32",
+ "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.poolInitCodeHash"
+ ]
+ }
+ },
+ "v4PoolManager": {
+ "name": "Pool Manager",
+ "pointer": "protocols.v4.contracts.PoolManager"
+ },
+ "v3NFTPositionManager": {
+ "name": "Uniswap v3 position manager address",
+ "pointer": "protocols.v3.contracts.NonfungiblePositionManager"
+ },
+ "v4PositionManager": {
+ "name": "Uniswap v4 position manager address",
+ "pointer": "protocols.v4.contracts.PositionManager"
+ },
+ "acrossSpokePool": {
+ "name": "Across Spoke Pool address",
+ "type": "address",
+ "value": "0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64"
+ }
+ },
+ "dependencies": [
+ "weth"
+ ],
+ "lookup": {
+ "latest": "UniversalRouter"
+ }
+ }
+ }
+ },
+ "util-contracts": {
+ "name": "Utils",
+ "deploy": false,
+ "contracts": {
+ "FeeOnTransferDetector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "factoryV2": {
+ "name": "Uniswap v2 factory address",
+ "pointer": "protocols.v2.contracts.UniswapV2Factory"
+ }
+ }
+ },
+ "FeeCollector": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "owner": {
+ "type": "address"
+ },
+ "universalRouter": {
+ "name": "Universal Router address",
+ "pointer": "protocols.universal-router.contracts.UniversalRouter"
+ },
+ "permit2": {
+ "name": "Permit 2 address",
+ "pointer": "protocols.permit2.contracts.Permit2"
+ },
+ "feeToken": {
+ "name": "Fee token address (usually USDC)",
+ "type": "address"
+ }
+ }
+ },
+ "ERC7914Detector": {
+ "deploy": false,
+ "address": "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00",
+ "params": {
+ "caliburAddress": {
+ "name": "Calibur address for ERC7914 detection",
+ "type": "address"
+ }
+ }
+ }
+ }
+ },
+ "calibur": {
+ "name": "Calibur",
+ "deploy": false,
+ "contracts": {
+ "Calibur": {
+ "deploy": false,
+ "address": null,
+ "params": {
+ "salt": {
+ "type": "bytes32",
+ "value": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d0010"
+ }
+ }
+ }
+ }
+ }
+ },
+ "dependencies": {
+ "weth": {
+ "type": "address",
+ "lookup": {
+ "history": [
+ "UniversalRouter.input.constructor.params.weth9",
+ "QuoterV2.input.constructor._WETH9",
+ "V3Migrator.input.constructor._WETH9",
+ "NonfungiblePositionManager.input.constructor._WETH9",
+ "NonFungibleTokenPositionDescriptor.input.constructor._WETH9",
+ "SwapRouter.input.constructor._WETH9",
+ "SwapRouter02.input.constructor._WETH9",
+ "Quoter.input.constructor._WETH9",
+ "QuoterV2.input.constructor._WETH9",
+ "UniswapV2Router02.input.constructor._WETH"
+ ]
+ },
+ "value": "0x4200000000000000000000000000000000000006"
+ }
+ },
+ "rename": true
+}
\ No newline at end of file
diff --git a/src/briefcase/deployers/universal-router/UniversalRouterDeployer.sol b/src/briefcase/deployers/universal-router/UniversalRouterDeployer.sol
index 02bb3fbe..1b90f31d 100644
--- a/src/briefcase/deployers/universal-router/UniversalRouterDeployer.sol
+++ b/src/briefcase/deployers/universal-router/UniversalRouterDeployer.sol
@@ -45,6 +45,6 @@ library UniversalRouterDeployer {
* - evm_version: cancun
*/
function initcode() internal pure returns (bytes memory) {
- return hex'6102a0806040523461041b5761014081615baf8038038091610021828561043a565b83398101031261041b576040519061014082016001600160401b03811183821017610407576040526100528161045d565b82526100606020820161045d565b602083019081526100736040830161045d565b90604084019182526100876060840161045d565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c0870161045d565b9660c083019788526100c960e0880161045d565b958660e08501526100f16101206100e36101008b0161045d565b998a6101008801520161045d565b9889610120860152604051976101068961041f565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d8861041f565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040757604052815260208101928352604081019182526060810193845260405161019d60408261043a565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca60408461043a565b600183526020830191601960f91b83526101e381610471565b610120526101f084610607565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c08261043a565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e0919091529051811661020052905181166102205290518116610240529051811661026052166102805260405161546f9081610740823960805181614031015260a051816140ee015260c05181614002015260e05181614080015261010051816140a60152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d4c0152610180518181816118fe01528181611b240152613d2b01526101a0518161336801526101c051816133bb01526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c8201528181614cf901528181614dcb01528181614f3f01526152d7015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137290152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612d9901528181612f100152612fb90152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040757604052565b601f909101601f19168101906001600160401b0382119082101761040757604052565b51906001600160a01b038216820361041b57565b908151602081105f146104eb575090601f8151116104ab57602081519101516020821061049c571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610407575f54600181811c911680156105fd575b60208210146105e957601f81116105b7575b50602092601f821160011461055857928192935f9261054d575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f80610535565b601f198216935f8052805f20915f5b86811061059f5750836001959610610587575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f808061057a565b91926020600181928685015181550194019201610567565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105de575061051b565b5f81556001016105d1565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610509565b908151602081105f14610632575090601f8151116104ab57602081519101516020821061049c571790565b6001600160401b03811161040757600154600181811c91168015610735575b60208210146105e957601f8111610702575b50602092601f82116001146106a157928192935f92610696575b50508160011b915f199060031b1c19161760015560ff90565b015190505f8061067d565b601f1982169360015f52805f20915f5b8681106106ea57508360019596106106d2575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106c4565b919260206001819286850151815501940192016106b1565b60015f52601f60205f20910160051c810190601f830160051c015b81811061072a5750610663565b5f815560010161071d565b90607f169061065156fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613189565b506020810135916001600160a01b03831680930361027d576101db916132a1565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132f4565b6001600160a01b033391160361030157156102f757508685105b156102395750505061023793503391613408565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d576102379361027833916131a7565b613473565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb57610237923391613408565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139e9565b908183036105b5575f5b8381106105895761058560405161056e6020826130fc565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b9161420d565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f00000000000000000000000000000000000000000000000000000000000000006137bf565b61066a7f0000000000000000000000000000000000000000000000000000000000000000613919565b60206106cb6040519261067d83856130fc565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b579088916108338961311f565b61084060405191826130fc565b89815261084c8a61311f565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130fc565b5190209115610bb7576001600160a01b036108bf33945b8d3691613153565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130fc565b51902061093b613ff8565b90604051917f190100000000000000000000000000000000000000000000000000000000000083526002830152602282015220923691613153565b90614114565b9092919261414e565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b3691613153565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b92908082036130b8579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132c9565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe88935613609565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132f4565b16968a8614611261576401000276a49b5b878b519485938d602086015260608501906080516131b7565b91168b83015203601f1981018352826130fc565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c93501561121357506131a7565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b90506131a7565b9150506040823d821161124e575b81611235604093836130fc565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130fc565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132c9565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d8535613609565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b93610278866131a7565b9091901561140357506113ad906131a7565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d91506131a7565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c6020830135613609565b913561371d565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8584030160648601526131b7565b03601f1981018352826130fc565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131d7565b9161117b565b9091956080808261161b6001948b613246565b019701920190611551565b633b99b53d5f526004601cfd5b919493909250906004810361176657506116506020820135613609565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613aa0565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f49565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130fc565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d6920135906117866020820135613609565b9035613683565b6006810361183f57506040810135906001600160a01b036117b16020830135613609565b913516806117cd57506117c76113d69247613f07565b90613aa0565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613f07565b91613f49565b90506020813d8211611837575b81611826602093836130fc565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135d1565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c98535613609565b928215610c27576118d9826135f5565b8360011015610c27576118fb611943916118f5602086016135f5565b90614afa565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b18565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b03928585613666565b6135f5565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b5e565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f49293013592613676565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130fc565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130fc565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135f5565b613408565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135d1565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff8435613609565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135f5565b613b5e565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a8989613666565b611bf2611bec61196f8d8b8b613666565b82614afa565b8185879d939d614b18565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ed6565b916103e88302928084046103e814901517156102e357611caa91613676565b6103e58102908082046103e514901517156102e357611cc891613ee9565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130fc565b810190613b28565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c6044870182613246565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e48501526101006101048501526101248401916131b7565b91949390929091600b810361200c575050611ea160208201359135613609565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130fc565b81019061364e565b505f611f98565b503d611fad565b5f611fd7916130fc565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c81036121435750506120208135613609565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613aa0565b5f806120e9565b5f612109916130fc565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130fc565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133fb565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135f5565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130fc565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130fc565b9091506020813d82116123f9575b816123e8602093836130fc565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c894910000000000000000000000000000000000000000000000000000000084526020600485015260248401916131b7565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130fc565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de81613137565b926124ec60405194856130fc565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131d7565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131d7565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130fc565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130fc565b810190613a81565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130fc565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff61293160408301613206565b16606485015261294360608201613216565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130fc565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131d7565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e6003198301600485016132a1565b906132a1565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131d7565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139e9565b612b556040959395519460208601967f24856bc30000000000000000000000000000000000000000000000000000000088526040602488015260648701916131b7565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130fc565b519082305af1906116026131d7565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b956131b7565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff8211176130a457604052612c9083610e40565b8252612c9e60208401610e40565b60208301908152612cb160408501610e40565b6040840152612cc1878501610e40565b8784015260808301926080850135845260a085013560a082015260c081019260c08601358452612cf360e08701610e40565b9560e08301968752612d0861010082016135c0565b610100840152612d1b61012082016135c0565b610120840152612d2e61014082016135c0565b61014084015261016081013567ffffffffffffffff811161027d5761018092612d58918301613189565b6101608401520135938415159081860361027d57610180830195865251945f91600160ff1b8714613022575b505115612ec3575083915b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016946001600160a01b0380845116925116926001600160a01b03604082015116956001600160a01b038c83015116986001600160a01b0360a0840151925191511663ffffffff610100850151169163ffffffff610120860151169361016063ffffffff61014088015116960151968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612eac91610eb3565b03915a945f95f18015611256576122a5575061117b565b916001600160a01b0360408301511660405160205f8183017f095ea7b3000000000000000000000000000000000000000000000000000000008152612f5d84612f4f8c6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660248401602090939291936001600160a01b0360408201951681520152565b03601f1981018652856130fc565b83519082865af1893d5f519083613005575b50505015612f7f575b5050612d8f565b612ffe91612ff96040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660248201525f604482015260448152612ff36064826130fc565b82614a8d565b614a8d565b5f80612f78565b9192509061301c575050813b15155b895f80612f6f565b14613014565b909550156130335747945b5f612d84565b602460206001600160a01b03604085015116604051928380926370a0823160e01b82523060048301525afa908115611256575f91613073575b509461302d565b90506020813d821161309c575b8161308d602093836130fc565b8101031261027d57515f61306c565b3d9150613080565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff8211176130a457604052565b90601f601f19910116810190811067ffffffffffffffff8211176130a457604052565b67ffffffffffffffff81116130a45760051b60200190565b67ffffffffffffffff81116130a457601f01601f191660200190565b92919261315f82613137565b9161316d60405193846130fc565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d578160206131a493359101613153565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d15613201573d906131e882613137565b916131f660405193846130fc565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff61329b606080936001600160a01b0361326582610e40565b1686526001600160a01b0361327c60208301610e40565b1660208701528361328f60408301613233565b16604087015201613233565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133f3575b62ffffff908460405193816020860196168652166040840152166060820152606081526133386080826130fc565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133ec81607581016115bc565b5190201690565b90919061330a565b919082018092116102e357565b909291906001600160a01b0384163003613428576134269350613683565b565b91926001600160a01b03841161344b576001600160a01b0361342694169261371d565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff16906134a7926132f4565b6001600160a01b031692845f146040966001600160a01b0380956135045f96613557956135a5576401000276a4925b846134f08e51978f948995602087015260608601916131b7565b91168d83015203601f1981018552846130fc565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161356e57509192565b9250506040823d60401161359d575b8161358a604093836130fc565b8101031261027d57602082519201519192565b3d915061357d565b73fffd8963efd1fc6a506488495d951d5263988d25926134d6565b359063ffffffff8216820361027d57565b9160608301358301916135ee6020843595818601950301856133fb565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136425750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b6002036131a457503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061369e575061342691613aa0565b600160ff1b82146136b4575b9161342692613f49565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136e9575b909250906136aa565b506020833d602011613715575b81613703602093836130fc565b8101031261027d5761342692516136e0565b3d91506136f6565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af18015611256576137b55750565b5f613426916130fc565b60ff811461381e5760ff811690601f82116137f657604051916137e36040846130fc565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c916001821691821561390f575b6020841083146138fb5783855284929081156138be5750600114613861575b6131a4925003826130fc565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8183106138a25750509060206131a492820101613855565b602091935080600191548385880101520191019091839261388a565b602092506131a49491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101613855565b634e487b7160e01b5f52602260045260245ffd5b92607f1692613836565b60ff811461393d5760ff811690601f82116137f657604051916137e36040846130fc565b506040515f6001548060011c91600182169182156139df575b6020841083146138fb5783855284929081156138be5750600114613980576131a4925003826130fc565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106139c35750509060206131a492820101613855565b60209193508060019154838588010152019101909183926139ab565b92607f1692613956565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a5457506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a3c565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613aaf57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b3c81613b0d565b916040613b4b60208401613b0d565b92015163ffffffff8116810361027d5790565b9160028210613eae578115610c2757613b76836135f5565b8260011015610c2757613b92906118f5602086979596016135f5565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bdc5750505050505050505050565b613bea61196f858486613666565b946001600160a01b03613c0461196f600188018688613666565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e68575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e625791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e33575b5080820392811592838015613e2b575b611ce557826103e586029586046103e514911417156102e357613cd59084613ed6565b916103e882029182046103e81417156102e357613cfb92613cf5916133fb565b90613ee9565b9015613e24575f90915b8b861015613e1b5790613d26613d70926118f561196f60028a01888a613666565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b18565b915b9660405190613d818a836130fc565b5f82528b368b840137803b1561027d57613def945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613e0b575b50930192613bc9565b5f613e15916130fc565b5f613e02565b5087905f613d72565b5f91613d05565b508115613cb2565b9091508981813d8311613e5b575b613e4b81836130fc565b8101031261027d5751905f613ca2565b503d613e41565b93613c7b565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e9f829360603d8111611d6457611d5081836130fc565b50989098979650505050613c48565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613ef3570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613f215761271091613f1d91613ed6565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f9a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140eb575b15614053577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140e560c0826130fc565b51902090565b507f0000000000000000000000000000000000000000000000000000000000000000461461402a565b81519190604183036141445761413d9250602082015190606060408401519301515f1a90614be1565b9192909190565b50505f9160029190565b60048110156141f95780614160575050565b60018103614190577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b600281036141c457507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141ce5750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b8410156148bb57600784036144605761422c92935061504c565b602081019061423b828261505a565b5f93915080614249846135f5565b9261425660608601614fb9565b6fffffffffffffffffffffffffffffffff811615614449575b604086019161427e838861505a565b80151595869250908261443e575b5050614416575f9591949395945b84861061431d57505050505050506080016fffffffffffffffffffffffffffffffff806142c683614fb9565b1692169182106142d4575050565b6142ee6fffffffffffffffffffffffffffffffff91614fb9565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061437d6143786fffffffffffffffffffffffffffffffff9261435a6143538a61434d888f9e9c9d9e61505a565b90615090565b968761536a565b949091169361436c6080880188610ee4565b929091865f03916151e4565b615443565b9861439b575b50600161439089936135f5565b96019493959161429a565b6143c290670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ee9565b6143d6876143d0868b61505a565b90613666565b358082116143e45750614383565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f61428c565b5061445b61445685614c7b565b61519f565b61426f565b6006840361455757614473929350614faa565b61447f60c08201614fb9565b6fffffffffffffffffffffffffffffffff811615614506575b6144e961437860e0926144c86fffffffffffffffffffffffffffffffff6144c160a08801614fd6565b92166131a7565b906144d7610100870187610ee4565b9290916144e43689614fe3565b6151e4565b91016fffffffffffffffffffffffffffffffff806142c683614fb9565b5061451360a08201614fd6565b1561453d5760e06144e961437861453461445661452f866135f5565b614c7b565b92505050614498565b60e06144e961437861453461445661452f602087016135f5565b6009840361476e5761456a92935061504c565b6020810190614579828261505a565b90505f9261458960608401614fb9565b91614593846135f5565b926fffffffffffffffffffffffffffffffff81161561475c575b6040850190826145bd838861505a565b801515958692509082614751575b505061441657949093929493845b614658575050505050506080016fffffffffffffffffffffffffffffffff8061460183614fb9565b16921691821161460f575050565b6146296fffffffffffffffffffffffffffffffff91614fb9565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff6146bc6146b261435393614695614687898d9c9a9b9c61505a565b96905f198d01978891615090565b9490911693846146a86080890189610ee4565b93909215906151e4565b600f0b5f0361519f565b986146dc575b50505f196146d088926135f5565b950193929490846145d9565b61470290670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ee9565b90614711816143d0868b61505a565b359081831161472057506146c2565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145cb565b5061476961445684614f38565b6145ad565b600884146147a5575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6147b0929350614faa565b6147bc60c08201614fb9565b6fffffffffffffffffffffffffffffffff811615614840575b61482361445661481b6fffffffffffffffffffffffffffffffff60e0946147fe60a08801614fd6565b61480c610100890189610ee4565b93909216906144e4368a614fe3565b600f0b6131a7565b91016fffffffffffffffffffffffffffffffff8061460183614fb9565b5061484d60a08201614fd6565b156148905760e061482361445661481b6fffffffffffffffffffffffffffffffff614885614456614880602089016135f5565b614f38565b9450505050506147d5565b60e061482361445661481b6fffffffffffffffffffffffffffffffff614885614456614880886135f5565b92600c810361493f57506148cf9192614f25565b906148d981614f38565b9180831161490f575090613426917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614db9565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f81036149c257506149529192614f25565b9061495c81614c7b565b91808310614992575090613426917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614ce7565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b8103614a1b57506149d9906134269293614c63565b15614a1057614a0a827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d94565b91614db9565b614a0a823092614d94565b600e8103614a4e5750614a42614a38614a48926134269495614c63565b9282949291613609565b92614d80565b91614ce7565b9260108414614a5f5750505061477a565b613426929350614a75614a7e92614a4892614c63565b92919390613609565b91614a8884614c7b565b613f07565b905f602091828151910182855af115611256575f513d614af157506001600160a01b0381163b155b614abc5750565b6001600160a01b03907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415614ab5565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133ec906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b6f6048826130fc565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c58579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c4e57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614ca681307f00000000000000000000000000000000000000000000000000000000000000006150d0565b905f8212614cb2575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d7b576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af18015611256576137b55750565b505050565b9081614d90576131a49150614c7b565b5090565b90600160ff1b8203614daa576131a4915061515d565b81614d90576131a49150614f38565b5f918315614f1f576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614f0a575b5080614ebd5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614eb15750614e865750565b614ea79060203d602011614eaa575b614e9f81836130fc565b810190613224565b50565b503d614e95565b604051903d90823e3d90fd5b83948360209493614ecd93613408565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614eb15750614e865750565b614f179194505f906130fc565b5f925f614e3e565b50505050565b9190604011611626576020823592013590565b614f6381307f00000000000000000000000000000000000000000000000000000000000000006150d0565b905f8213614f7557506131a4906131a7565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614ffb816130e0565b608061504781839561500c81610e40565b855261501a60208201610e40565b602086015261502b60408201613206565b604086015261503c60608201613216565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161512e575090565b90506020813d602011615155575b81615149602093836130fc565b8101031261027d575190565b3d915061513c565b6001600160a01b03168061517057504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161512e575090565b906fffffffffffffffffffffffffffffffff82168092036151bc57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561534f576401000276a4905b60405194606086019386851067ffffffffffffffff8611176130a4576001600160a01b0397886080956152ca946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e48501526101206101048501526101248401916131b7565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361531b575b505f130361531557600f0b90565b60801d90565b9092506020813d602011615347575b81615337602093836130fc565b8101031261027d5751915f615307565b3d915061532a565b73fffd8963efd1fc6a506488495d951d5263988d25906151f5565b905f608060405161537a816130e0565b828152826020820152826040820152826060820152015261539a826135f5565b6001600160a01b038216916001600160a01b0382168084105f1461543157506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615417876130e0565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153c3565b5f81600f0b126151bc576fffffffffffffffffffffffffffffffff169056fea164736f6c634300081a000a';
+ return hex'6102a080604052346104145761014081615c2380380380916100218285610433565b833981010312610414576040519061014082016001600160401b038111838210176104005760405261005281610456565b825261006060208201610456565b6020830190815261007360408301610456565b906040840191825261008760608401610456565b91606085019283526080840151946080810195865260a08501519360a082019485526100b560c08701610456565b9660c083019788526100c960e08801610456565b958660e08501526100f16101206100e36101008b01610456565b998a61010088015201610456565b98896101208601526040519761010689610418565b6001600160a01b03908116895298891660208901908152905194519651604051919991979082169695821695911661013d88610418565b8752602087019586525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761040057604052815260208101928352604081019182526060810193845260405161019d604082610433565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101ca604084610433565b600183526020830191601960f91b83526101e38161046a565b610120526101f084610600565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261025960c082610433565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152905181166102005290518116610220529051811661024052905181166102605216610280526040516154ea9081610739823960805181614008015260a051816140c5015260c05181613fd9015260e051816140570152610100518161407d0152610120518161061d0152610140518161064601526101605181818161191f01528181611b020152613d230152610180518181816118fe01528181611b240152613d0201526101a0518161333f01526101c0518161339201526101e0518181816086015281816103a20152818161051d015281816124670152818161298201528181614c7101528181614ce801528181614dba01528181614f2e01526152c6015261020051818181602401528181611ec8015261202b0152610220518181816115d70152818161221901526137000152610240518181816107380152818161258e015261267a01526102605181818161042a0152612a5001526102805181818161077b01528181612da20152612ef40152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761040057604052565b601f909101601f19168101906001600160401b0382119082101761040057604052565b51906001600160a01b038216820361041457565b908151602081105f146104e4575090601f8151116104a4576020815191015160208210610495571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b038111610400575f54600181811c911680156105f6575b60208210146105e257601f81116105b0575b50602092601f821160011461055157928192935f92610546575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061052e565b601f198216935f8052805f20915f5b8681106105985750836001959610610580575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f8080610573565b91926020600181928685015181550194019201610560565b5f8052601f60205f20910160051c810190601f830160051c015b8181106105d75750610514565b5f81556001016105ca565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610502565b908151602081105f1461062b575090601f8151116104a4576020815191015160208210610495571790565b6001600160401b03811161040057600154600181811c9116801561072e575b60208210146105e257601f81116106fb575b50602092601f821160011461069a57928192935f9261068f575b50508160011b915f199060031b1c19161760015560ff90565b015190505f80610676565b601f1982169360015f52805f20915f5b8681106106e357508360019596106106cb575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f80806106bd565b919260206001819286850151815501940192016106aa565b60015f52601f60205f20910160051c810190601f830160051c015b818110610723575061065c565b5f8155600101610716565b90607f169061064a56fe60c08060405260043610156100ae575b50361561001a575f80fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163314158061007b575b61005357005b7f38bbd576000000000000000000000000000000000000000000000000000000005f5260045ffd5b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633141561004d565b5f3560e01c9081631a27b20114610df85750806324856bc314610d495780633593564c14610c6357806344684dc31461079f5780638021fef71461075c578063817122dc1461071957806384b0196e1461060557806391dd7346146104e2578063d04d79a21461044e578063d0c9f6cb1461040b578063d737d0c7146103c6578063dc4c90d3146103835763fa461e3314610149575f61000f565b3461027d57606060031936011261027d5760243560043560443567ffffffffffffffff811161027d57610180903690600401610e54565b5f831391821580610379575b6103515781810160408282031261027d5781359067ffffffffffffffff821161027d576101ba918301613160565b506020810135916001600160a01b03831680930361027d576101db91613278565b90601790602b8310610329578035968760601c9561020962ffffff8585013560601c9a60481c168a896132cb565b6001600160a01b033391160361030157156102f757508685105b1561023957505050610237935033916133df565b005b91935091939482602b0180602b116102e3578410610281575082821161027d578101910390600160ff1b84101561027d5761023793610278339161317e565b61344a565b5f80fd5b925050507faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6929291925c82116102bb576102379233916133df565b7f739dbe52000000000000000000000000000000000000000000000000000000005f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9550848710610223565b7f32b13d91000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3b99b53d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f316cf0eb000000000000000000000000000000000000000000000000000000005f5260045ffd5b505f85131561018c565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760207f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c6001600160a01b0360405191168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760607fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315c7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5c7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65c906001600160a01b036040519316835260208301526040820152f35b3461027d57602060031936011261027d5760043567ffffffffffffffff811161027d57610513903690600401610e54565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633036105dd5761054c916139c0565b908183036105b5575f5b8381106105895761058560405161056e6020826130d3565b5f8152604051918291602083526020830190610eb3565b0390f35b806105af61059a6001938789610ed8565b3560f81c6105a9838787610f17565b916141e4565b01610556565b7faaad13f7000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fae18210a000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461027d575f60031936011261027d576106bd6106417f0000000000000000000000000000000000000000000000000000000000000000613796565b61066a7f00000000000000000000000000000000000000000000000000000000000000006138f0565b60206106cb6040519261067d83856130d3565b5f84525f3681376040519586957f0f00000000000000000000000000000000000000000000000000000000000000875260e08588015260e0870190610eb3565b908582036040870152610eb3565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b82811061070257505050500390f35b8351855286955093810193928101926001016106f3565b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461027d575f60031936011261027d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b61010060031936011261027d5760043567ffffffffffffffff811161027d576107cc903690600401610e54565b60243567ffffffffffffffff811161027d576107ec903690600401610e82565b91604435608435801515810361027d5760c43567ffffffffffffffff811161027d5761081c903690600401610e54565b9160e435804211610c3b57908891610833896130f6565b61084060405191826130d3565b89815261084c8a6130f6565b601f196020830191013682375f5b8b8110610be25750604051915160208301929183915f5b818110610bc9575050509361097c9693604293836108a06109859b99956109769903601f1981018352826130d3565b5190209115610bb7576001600160a01b036108bf33945b8d369161312a565b60208151910120936040519360208501957f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752604086015260608501528b608085015260643560a08501521660c083015260a43560e08301526101008201526101008152610930610120826130d3565b51902061093b613fcf565b90604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522092369161312a565b906140eb565b90929192614125565b5f1960a43503610b20575b7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d6064357f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d333014610b12576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610a5b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d5b5f7fd317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee315d5f7fa42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da5d5f7f17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb65d005b7f6f5ffb7e000000000000000000000000000000000000000000000000000000005f5260045ffd5b610b1b93610f32565b610a7f565b6001600160a01b038116805f52600260205260405f2060a4355f5260205260ff60405f205416610b8f575f52600260205260405f2060a4355f5260205260405f2060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055610990565b7f1fb09b80000000000000000000000000000000000000000000000000000000005f5260045ffd5b6001600160a01b036108bf5f946108b7565b825184528f985060209384019390920191600101610871565b909192939450610bfd610bf6828d8d610f17565b369161312a565b60208151910120908351811015610c275760019160208260051b8601015201908b9493929161085a565b634e487b7160e01b5f52603260045260245ffd5b7f5bf6f916000000000000000000000000000000000000000000000000000000005f5260045ffd5b606060031936011261027d5760043567ffffffffffffffff811161027d57610c8f903690600401610e54565b60243567ffffffffffffffff811161027d57610caf903690600401610e82565b916044354211610c3b57333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b5f7f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d005b61023793610f32565b604060031936011261027d5760043567ffffffffffffffff811161027d57610d75903690600401610e54565b60243567ffffffffffffffff811161027d57610d95903690600401610e82565b91333014610d40576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c16610aea57610d1b93337f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085d610f32565b3461027d57604060031936011261027d57600435906001600160a01b03821680920361027d576020915f526002825260405f206024355f52825260ff60405f20541615158152f35b35906001600160a01b038216820361027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020838186019501011161027d57565b9181601f8401121561027d5782359167ffffffffffffffff831161027d576020808501948460051b01011161027d57565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90821015610c27570190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d5760200191813603831361027d57565b90821015610c2757610f2e9160051b810190610ee4565b9091565b929080820361308f579291905f915b848310610f4f575050505050565b9091929394610f5f848787610ed8565b3592610f6c858285610f17565b979092606097607f8760f81c1695600196602181105f14612ae657601081101561240157600881101561186a57806112fc5750610fae60208701359b876132a0565b95906080880135156112f5577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c9c5b610fe889356135e0565b9d918881608052600160ff1b8314611282575b50505b604260a052602b600160ff1b82101561027d5760a0518f908a1061127c575030915b89821161027d576040916001600160a01b035f60805135956110f861108f6110a3856110658b60601c6017608051013560601c62ffffff8183109e60481c16916132cb565b16968a8614611261576401000276a49b5b878b519485938d6020860152606085019060805161318e565b91168b83015203601f1981018352826130d3565b8488519a8b98899788967f128acb080000000000000000000000000000000000000000000000000000000088521660048701528b6024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af1908115611256575f905f9261121a575b61111c935015611213575061317e565b60a05190969081106111635730908060171161027d576080805160170190527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe90196610ffe565b50979396929a509794909893604090910135116111eb575b1590816111dc575b50611195575060010191909392610f41565b906111d86040519283927f2c4029e90000000000000000000000000000000000000000000000000000000084526004840152604060248401526044830190610eb3565b0390fd5b600160ff1b915016155f611183565b7f39d35496000000000000000000000000000000000000000000000000000000005f5260045ffd5b905061317e565b9150506040823d821161124e575b81611235604093836130d3565b8101031261027d5781602061111c93519101519161110c565b3d9150611228565b6040513d5f823e3d90fd5b73fffd8963efd1fc6a506488495d951d5263988d259b611076565b91611020565b601491925010610329576020602491604051928380926370a0823160e01b82523060048301523560601c5afa908115611256575f916112c4575b505f80610ffb565b90506020813d82116112ed575b816112de602093836130d3565b8101031261027d57515f6112bc565b3d91506112d1565b309c610fde565b6001819c929a97939b96999598949c145f14611419575090611323602082013592826132a0565b608083013515611412577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b604061135d85356135e0565b9401357faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d600160ff1b85101561027d5761139b936102788661317e565b9091901561140357506113ad9061317e565b036113db575f7faf28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f6925d5b61117b565b7fd4e0248e000000000000000000000000000000000000000000000000000000005f5260045ffd5b61140d915061317e565b6113ad565b3091611351565b6002810361146357506113d691604081013591507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c61145c60208301356135e0565b91356136f4565b9394919390929060038103611633575050508135820163ffffffff60208401351683019163ffffffff83351693602080850194860101910110611626577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92604051926001600160a01b0360208501957f2a2d80d10000000000000000000000000000000000000000000000000000000087521660248501526060604485015260e48401928035601e198236030181121561027d5781016020813591019467ffffffffffffffff821161027d578160071b3603861361027d5781906060608489015252610104860194905f905b80821061160857505050936115bc5f969482946115ca946040896001600160a01b0361158060208e9d01610e40565b1660a4880152013560c48601527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc85840301606486015261318e565b03601f1981018352826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b9161117b565b9091956080808261161b6001948b61321d565b019701920190611551565b633b99b53d5f526004601cfd5b9194939092509060048103611766575061165060208201356135e0565b906001600160a01b038060408301351691351680155f146116b95750479081106116915780611681575b505061117b565b61168a91613a77565b5f8061167a565b7f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b91604051916370a0823160e01b8352306004840152602083602481875afa928315611256575f93611733575b50821061170b57816116fa575b50505061117b565b61170392613f20565b5f80806116f2565b7f675cae38000000000000000000000000000000000000000000000000000000005f5260045ffd5b9092506020813d821161175e575b8161174e602093836130d3565b8101031261027d5751915f6116e5565b3d9150611741565b6005810361178d57508060406113d69201359061178660208201356135e0565b903561365a565b6006810361183f57506040810135906001600160a01b036117b160208301356135e0565b913516806117cd57506117c76113d69247613ede565b90613a77565b906040516370a0823160e01b8152306004820152602081602481865afa908115611256575f9161180c575b506113d69361180691613ede565b91613f20565b90506020813d8211611837575b81611826602093836130d3565b8101031261027d57516113d66117f8565b3d9150611819565b7fd76a1e9e000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6008819c929a97939b96999598949c145f14611ab45750611890602083013591836135a8565b90608084013515611aad577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b6118c985356135e0565b928215610c27576118d9826135cc565b8360011015610c27576118fb611943916118f5602086016135cc565b90614ae9565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b948581611a93575b5050505f1982018281116102e35761197461196f6001600160a01b0392858561363d565b6135cc565b1693604051926370a0823160e01b84526001600160a01b038516928360048601526020856024818a5afa948515611256575f95611a56575b50946119bc929160209596613b35565b6024604051809581936370a0823160e01b835260048301525afa918215611256575f92611a22575b5060406119f4929301359261364d565b101561117b577f849eaf98000000000000000000000000000000000000000000000000000000005f5260045ffd5b91506020823d8211611a4e575b81611a3c602093836130d3565b8101031261027d5790519060406119e4565b3d9150611a2f565b92919450946020833d8211611a8b575b81611a73602093836130d3565b8101031261027d5791519194919390916119bc6119ac565b3d9150611a66565b611aa592611aa0856135cc565b6133df565b5f808561194b565b30916118bf565b60098103611d9a5750611ac790826135a8565b608083013515611d93577f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c915b611aff84356135e0565b917f0000000000000000000000000000000000000000000000000000000000000000937f0000000000000000000000000000000000000000000000000000000000000000955f9560028510611d6b576020820135975f1986018681116102e3579190825b611bb957505050604001358611611b91578215610c27576113d69585611b8c92611aa0856135cc565b613b35565b7f8ab0bc16000000000000000000000000000000000000000000000000000000005f5260045ffd5b90919897505f198901978989116102e357611bdb61196f611bfd9a898961363d565b611bf2611bec61196f8d8b8b61363d565b82614ae9565b8185879d939d614b07565b90604051907f0902f1ac0000000000000000000000000000000000000000000000000000000082526060826004816001600160a01b0387165afa918215611256575f905f93611d1b575b506001600160a01b036dffffffffffffffffffffffffffff8082931694169d169116145f14611d155799905b9980158015611d0d575b611ce55782611c8b91613ead565b916103e88302928084046103e814901517156102e357611caa9161364d565b6103e58102908082046103e514901517156102e357611cc891613ec0565b600181018091116102e3579880156102e3575f1901919082611b63565b7f7b9c8916000000000000000000000000000000000000000000000000000000005f5260045ffd5b508115611c7d565b90611c73565b6dffffffffffffffffffffffffffff8094506001600160a01b039250611d58839260603d8111611d64575b611d5081836130d3565b810190613aff565b50959093505050611c47565b503d611d46565b7f20db8267000000000000000000000000000000000000000000000000000000005f5260045ffd5b3091611af5565b93949193909290600a8103611e815750505063ffffffff60c08301351682019063ffffffff82351690836020808501948401019101106116265760a06115ca5f946115bc86957f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c956040519586946001600160a01b0360208701997f2b67b570000000000000000000000000000000000000000000000000000000008b52166024870152611e4c604487018261321d565b6001600160a01b03611e6060808301610e40565b1660c4870152013560e485015261010061010485015261012484019161318e565b91949390929091600b810361200c575050611ea1602082013591356135e0565b81600160ff1b8103611fdd57504791505b81611ebe57505061117b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576040517fd0e30db00000000000000000000000000000000000000000000000000000000081525f8160048185885af1801561125657611fcd575b50306001600160a01b03831603611f42575b5061167a565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b03929092166004830152602482015290602090829060449082905f905af1801561125657611f9f575b8080611f3c565b611fbf9060203d8111611fc6575b611fb781836130d3565b810190613625565b505f611f98565b503d611fad565b5f611fd7916130d3565b5f611f2a565b471015611eb2577f6a12f104000000000000000000000000000000000000000000000000000000005f5260045ffd5b600c810361214357505061202081356135e0565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016604051916370a0823160e01b8352306004840152602083602481855afa928315611256575f9361210f575b50602001358210611691578161208e5750505061117b565b803b1561027d575f80916024604051809481937f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528760048401525af18015611256576120ff575b50306001600160a01b038316036120ef575b806116f2565b6120f891613a77565b5f806120e9565b5f612109916130d3565b5f6120d7565b9092506020813d821161213b575b8161212a602093836130d3565b8101031261027d5751916020612076565b3d915061211d565b600d819c939c9b929597989b99949699145f1461232f57508a358b01988935946121756020808d019e8d0301876133d2565b11610329576001600160a01b037f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c169a935f5b86811015612201578c6001600160a01b036121cb60208f8560071b01016135cc565b16036121d9576001016121a9565b7fe7002877000000000000000000000000000000000000000000000000000000005f5260045ffd5b50989593979694929b919a5098506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690813b1561027d576040517f0d58b1db000000000000000000000000000000000000000000000000000000008152602060048201526024810184905292839160448301915f905b8082106122b55750505091815f81819503925af18015611256576122a5575b5061117b565b5f6122af916130d3565b5f61229f565b919350916080806001926001600160a01b036122d088610e40565b1681526001600160a01b036122e760208901610e40565b1660208201526001600160a01b0361230160408901610e40565b1660408201526001600160a01b0361231b60608901610e40565b166060820152019401920185939291612280565b80929b93989550600e919a97969450145f1461183f5750604051906370a0823160e01b82526001600160a01b0381351660048301526020826024816001600160a01b0384860135165afa918215611256575f926123cd575b50604001351115806113d65791506040517fa3281672000000000000000000000000000000000000000000000000000000006020820152600481526116026024826130d3565b9091506020813d82116123f9575b816123e8602093836130d3565b8101031261027d5751906040612387565b3d91506123db565b6010819c929a97939b96999598949c145f1461250f575061245a915f9160405193849283927f48c8949100000000000000000000000000000000000000000000000000000000845260206004850152602484019161318e565b0381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561125657612499575061117b565b3d805f833e6124a881836130d3565b81019060208183031261027d5780519067ffffffffffffffff821161027d570181601f8201121561027d5780516124de8161310e565b926124ec60405194856130d3565b8184526020828401011161027d575f928160208094018483015e0101525f61229f565b80929495506011919350145f146125e45750907fffffffff000000000000000000000000000000000000000000000000000000008135167f7ac2ff7b0000000000000000000000000000000000000000000000000000000081036125b95750815f92918392604051928392833781018381520390826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b7ff801e525000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b601281036128bc57507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c917fffffffff000000000000000000000000000000000000000000000000000000008135167f0c49ccbe0000000000000000000000000000000000000000000000000000000081148015612893575b801561286a575b156125b9575060048101356001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016936040517f6352211e000000000000000000000000000000000000000000000000000000008152826004820152602081602481895afa908115611256576001600160a01b039182915f9161284c575b50169116908082149182156127c5575b8215612754575b505015612729575091815f809481946040519384928337810182815203925af1906116026131ae565b7fbb25d4c5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b909150604051917fe985e9c500000000000000000000000000000000000000000000000000000000835260048301526024820152602081604481885afa908115611256575f916127a7575b505f80612700565b6127bf915060203d8111611fc657611fb781836130d3565b5f61279f565b91506040517f081812fc0000000000000000000000000000000000000000000000000000000081528360048201526020816024818a5afa9081156112565783916001600160a01b03915f9161281e575b501614916126f9565b61283f915060203d8111612845575b61283781836130d3565b810190613a58565b5f612815565b503d61282d565b612864915060203d81116128455761283781836130d3565b5f6126e9565b507f42966c68000000000000000000000000000000000000000000000000000000008114612665565b507ffc6f786500000000000000000000000000000000000000000000000000000000811461265e565b601381036129ad5750505f80916040516001600160a01b0360a060208301937f6276cbbe0000000000000000000000000000000000000000000000000000000085528261290882610e40565b1660248501528261291b60208301610e40565b16604485015262ffffff612931604083016131dd565b166064850152612943606082016131ed565b60020b60848501528261295860808301610e40565b1660a485015201351660c482015260c4815261297560e4826130d3565b5190826001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b6014810361183f57507fffffffff000000000000000000000000000000000000000000000000000000008235167fdd46508f0000000000000000000000000000000000000000000000000000000081036125b957508060041161027d57612a24612a1e600319830160048501613278565b90613278565b5f5b818110612a7b575050505f9182914791816040519283928337810184815203916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1906116026131ae565b612a86818385610ed8565b3560f81c8015908115612adb575b8115612ad0575b50612aa857600101612a26565b7f5d1d0f9f000000000000000000000000000000000000000000000000000000005f5260045ffd5b60039150145f612a9b565b600181149150612a94565b90989591996040829c949c999699989598105f14612c2f57506021810361183f575090612b12916139c0565b612b556040959395519460208601967f24856bc300000000000000000000000000000000000000000000000000000000885260406024880152606487019161318e565b927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc858503016044860152818452602084019160208160051b86010194845f90601e19813603015b848310612bd35750505050505050509181612bc45f9493859403601f1981018352826130d3565b519082305af1906116026131ae565b9091929394959697601f1985820301885288358281121561027d578301906020823592019167ffffffffffffffff811161027d57803603831361027d57612c1f60209283928b9561318e565b9a01980196959493019190612b9d565b949392906040810361183f575081019060208183031261027d5780359067ffffffffffffffff821161027d5701906101a08282031261027d57604051906101a0820182811067ffffffffffffffff82111761307b57604052612c9083610e40565b8252612c9e60208401610e40565b9060208301918252612cb260408501610e40565b60408401908152612cc4888601610e40565b92888501938452608085016080870135815260a086019660a0810135885260c087019460c08201358652612cfa60e08301610e40565b60e08901908152612d0e6101008401613597565b6101008a01908152612d236101208501613597565b916101208b01928352612d396101408601613597565b936101408c0194855261016086013567ffffffffffffffff811161027d5761018091612d66918801613160565b956101608d019687520135958615159081880361027d576101808d0197885251965f91600160ff1b8914612ffc575b505115612ebd575085985b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169b516001600160a01b031697516001600160a01b031698516001600160a01b03169a516001600160a01b03169c51905191516001600160a01b0316925163ffffffff16935163ffffffff16945163ffffffff169551968c3b1561027d576040519d8e9c8d9b8c9b7f7b939232000000000000000000000000000000000000000000000000000000008d5260048d015260248c015260448b015260648a0152608489015260a488015260c487015260e4860152610104850152610124840152610144830152610164820161018090526101848201612ea691610eb3565b03915a945f95f18015611256576122a5575061117b565b88516040517f095ea7b300000000000000000000000000000000000000000000000000000000602082019081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024840181905260448085018d90528452949d949316905f908190612f3b6064866130d3565b84519082855af1612f4a6131ae565b81612fcd575b5080612fc3575b15612f65575b505050612da0565b612fb6612fbb93604051907f095ea7b300000000000000000000000000000000000000000000000000000000602083015260248201525f604482015260448152612fb06064826130d3565b82614a64565b614a64565b5f8080612f5d565b50803b1515612f57565b8051801592508215612fe2575b50505f612f50565b612ff59250602080918301019101613625565b5f80612fda565b9097501561300d5747965b5f612d95565b602460206001600160a01b038b5116604051928380926370a0823160e01b82523060048301525afa908115611256575f9161304a575b5096613007565b90506020813d8211613073575b81613064602093836130d3565b8101031261027d57515f613043565b3d9150613057565b634e487b7160e01b5f52604160045260245ffd5b7fff633a38000000000000000000000000000000000000000000000000000000005f5260045ffd5b60a0810190811067ffffffffffffffff82111761307b57604052565b90601f601f19910116810190811067ffffffffffffffff82111761307b57604052565b67ffffffffffffffff811161307b5760051b60200190565b67ffffffffffffffff811161307b57601f01601f191660200190565b9291926131368261310e565b9161314460405193846130d3565b82948184528183011161027d578281602093845f960137010152565b9080601f8301121561027d5781602061317b9335910161312a565b90565b600160ff1b81146102e3575f0390565b601f8260209493601f1993818652868601375f8582860101520116010190565b3d156131d8573d906131bf8261310e565b916131cd60405193846130d3565b82523d5f602084013e565b606090565b359062ffffff8216820361027d57565b35908160020b820361027d57565b9081602091031261027d575190565b359065ffffffffffff8216820361027d57565b65ffffffffffff613272606080936001600160a01b0361323c82610e40565b1686526001600160a01b0361325360208301610e40565b166020870152836132666040830161320a565b1660408701520161320a565b16910152565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061162657565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061162657565b906001600160a01b0392838216848416116133ca575b62ffffff9084604051938160208601961686521660408401521660608201526060815261330f6080826130d3565b5190206040517fff00000000000000000000000000000000000000000000000000000000000000602082019081527f000000000000000000000000000000000000000000000000000000000000000060601b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016602183015260358201929092527f000000000000000000000000000000000000000000000000000000000000000060558201526133c381607581016115bc565b5190201690565b9091906132e1565b919082018092116102e357565b909291906001600160a01b03841630036133ff576133fd935061365a565b565b91926001600160a01b038411613422576001600160a01b036133fd9416926136f4565b7fc4bd89a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b939290602b8210610329578235938460601c92601785013560601c9380851094859760481c62ffffff169061347e926132cb565b6001600160a01b031692845f146040966001600160a01b0380956134db5f9661352e9561357c576401000276a4925b846134c78e51978f9489956020870152606086019161318e565b91168d83015203601f1981018552846130d3565b89519b8c998a9889977f128acb080000000000000000000000000000000000000000000000000000000089521660048801526024870152604486015216606484015260a0608484015260a4830190610eb3565b03925af18015611256575f925f9161354557509192565b9250506040823d604011613574575b81613561604093836130d3565b8101031261027d57602082519201519192565b3d9150613554565b73fffd8963efd1fc6a506488495d951d5263988d25926134ad565b359063ffffffff8216820361027d57565b9160608301358301916135c56020843595818601950301856133d2565b1161032957565b356001600160a01b038116810361027d5790565b6001600160a01b038116600181036136195750507f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90565b60020361317b57503090565b9081602091031261027d5751801515810361027d5790565b9190811015610c275760051b0190565b919082039182116102e357565b9091906001600160a01b03168061367557506133fd91613a77565b600160ff1b821461368b575b916133fd92613f20565b9050604051916370a0823160e01b8352306004840152602083602481855afa8015611256575f906136c0575b90925090613681565b506020833d6020116136ec575b816136da602093836130d3565b8101031261027d576133fd92516136b7565b3d91506136cd565b91926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d575f6001600160a01b039384829681608496816040519b8c9a8b997f36c78516000000000000000000000000000000000000000000000000000000008b521660048a01521660248801521660448601521660648401525af180156112565761378c5750565b5f6133fd916130d3565b60ff81146137f55760ff811690601f82116137cd57604051916137ba6040846130d3565b6020808452838101919036833783525290565b7fb3512b0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b506040515f80548060011c91600182169182156138e6575b6020841083146138d25783855284929081156138955750600114613838575b61317b925003826130d3565b505f80805290917f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b81831061387957505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613861565b6020925061317b9491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b82010161382c565b634e487b7160e01b5f52602260045260245ffd5b92607f169261380d565b60ff81146139145760ff811690601f82116137cd57604051916137ba6040846130d3565b506040515f6001548060011c91600182169182156139b6575b6020841083146138d257838552849290811561389557506001146139575761317b925003826130d3565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b81831061399a57505090602061317b9282010161382c565b6020919350806001915483858801015201910190918392613982565b92607f169261392d565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b808410613a2b57506080925001019101101761162657565b90916020809163ffffffe0601f60808089890101359b848d18179b88010135011601019301929190613a13565b9081602091031261027d57516001600160a01b038116810361027d5790565b5f80809381935af115613a8657565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4554485f5452414e534645525f4641494c4544000000000000000000000000006044820152fd5b51906dffffffffffffffffffffffffffff8216820361027d57565b9081606091031261027d57613b1381613ae4565b916040613b2260208401613ae4565b92015163ffffffff8116810361027d5790565b9160028210613e85578115610c2757613b4d836135cc565b8260011015610c2757613b69906118f5602086979596016135cc565b50925f198101937ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8201955f90602093601f198501965b888410613bb35750505050505050505050565b613bc161196f85848661363d565b946001600160a01b03613bdb61196f60018801868861363d565b921695604051917f0902f1ac0000000000000000000000000000000000000000000000000000000083526060836004818b5afa91821561125657895f945f94613e3f575b506001600160a01b03806dffffffffffffffffffffffffffff80602496979816971693169416841494855f14613e395791935b604051938480926370a0823160e01b82528d60048301525afa918215611256575f92613e0a575b5080820392811592838015613e02575b611ce557826103e586029586046103e514911417156102e357613cac9084613ead565b916103e882029182046103e81417156102e357613cd292613ccc916133d2565b90613ec0565b9015613dfb575f90915b8b861015613df25790613cfd613d47926118f561196f60028a01888a61363d565b8193917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614b07565b915b9660405190613d588a836130d3565b5f82528b368b840137803b1561027d57613dc6945f8094604051978895869485937f022c0d9f000000000000000000000000000000000000000000000000000000008552600485015260248401526001600160a01b0389166044840152608060648401526084830190610eb3565b03925af191821561125657600192613de2575b50930192613ba0565b5f613dec916130d3565b5f613dd9565b5087905f613d49565b5f91613cdc565b508115613c89565b9091508981813d8311613e32575b613e2281836130d3565b8101031261027d5751905f613c79565b503d613e18565b93613c52565b6dffffffffffffffffffffffffffff955060249394506001600160a01b0386613e76829360603d8111611d6457611d5081836130d3565b50989098979650505050613c1f565b7fae52ad0c000000000000000000000000000000000000000000000000000000005f5260045ffd5b818102929181159184041417156102e357565b8115613eca570490565b634e487b7160e01b5f52601260045260245ffd5b6127108211613ef85761271091613ef491613ead565b0490565b7fdeaa01e6000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f9182604492602095604051937fa9059cbb000000000000000000000000000000000000000000000000000000008552600485015260248401525af13d15601f3d1160015f511416171615613f7157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163014806140c2575b1561402a577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a081526140bc60c0826130d3565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614614001565b815191906041830361411b576141149250602082015190606060408401519301515f1a90614bd0565b9192909190565b50505f9160029190565b60048110156141d05780614137575050565b60018103614167577ff645eedf000000000000000000000000000000000000000000000000000000005f5260045ffd5b6002810361419b57507ffce698f7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b6003146141a55750565b7fd78bce0c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b929190600b84101561489257600784036144375761420392935061503b565b60208101906142128282615049565b5f93915080614220846135cc565b9261422d60608601614fa8565b6fffffffffffffffffffffffffffffffff811615614420575b60408601916142558388615049565b801515958692509082614415575b50506143ed575f9591949395945b8486106142f457505050505050506080016fffffffffffffffffffffffffffffffff8061429d83614fa8565b1692169182106142ab575050565b6142c56fffffffffffffffffffffffffffffffff91614fa8565b7f8b063d73000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b86985061435461434f6fffffffffffffffffffffffffffffffff9261433161432a8a614324888f9e9c9d9e615049565b9061507f565b9687615359565b94909116936143436080880188610ee4565b929091865f03916151d3565b615432565b98614372575b50600161436789936135cc565b960194939591614271565b61439990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b169102613ec0565b6143ad876143a7868b615049565b9061363d565b358082116143bb575061435a565b877fa9b7edf7000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b7f947446a5000000000000000000000000000000000000000000000000000000005f5260045ffd5b14159050855f614263565b5061443261442d85614c6a565b61518e565b614246565b6006840361452e5761444a929350614f99565b61445660c08201614fa8565b6fffffffffffffffffffffffffffffffff8116156144dd575b6144c061434f60e09261449f6fffffffffffffffffffffffffffffffff61449860a08801614fc5565b921661317e565b906144ae610100870187610ee4565b9290916144bb3689614fd2565b6151d3565b91016fffffffffffffffffffffffffffffffff8061429d83614fa8565b506144ea60a08201614fc5565b156145145760e06144c061434f61450b61442d614506866135cc565b614c6a565b9250505061446f565b60e06144c061434f61450b61442d614506602087016135cc565b600984036147455761454192935061503b565b60208101906145508282615049565b90505f9261456060608401614fa8565b9161456a846135cc565b926fffffffffffffffffffffffffffffffff811615614733575b6040850190826145948388615049565b801515958692509082614728575b50506143ed57949093929493845b61462f575050505050506080016fffffffffffffffffffffffffffffffff806145d883614fa8565b1692169182116145e6575050565b6146006fffffffffffffffffffffffffffffffff91614fa8565b7f12bacdd3000000000000000000000000000000000000000000000000000000005f521660045260245260445ffd5b8597506fffffffffffffffffffffffffffffffff61469361468961432a9361466c61465e898d9c9a9b9c615049565b96905f198d0197889161507f565b94909116938461467f6080890189610ee4565b93909215906151d3565b600f0b5f0361518e565b986146b3575b50505f196146a788926135cc565b950193929490846145b0565b6146d990670de0b6b3a76400006fffffffffffffffffffffffffffffffff8b1602613ec0565b906146e8816143a7868b615049565b35908183116146f75750614699565b7fe6518043000000000000000000000000000000000000000000000000000000005f5260045260245260445260645ffd5b14159050815f6145a2565b5061474061442d84614f27565b614584565b6008841461477c575050505b7f5cda29d7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614787929350614f99565b61479360c08201614fa8565b6fffffffffffffffffffffffffffffffff811615614817575b6147fa61442d6147f26fffffffffffffffffffffffffffffffff60e0946147d560a08801614fc5565b6147e3610100890189610ee4565b93909216906144bb368a614fd2565b600f0b61317e565b91016fffffffffffffffffffffffffffffffff806145d883614fa8565b5061482460a08201614fc5565b156148675760e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857602089016135cc565b614f27565b9450505050506147ac565b60e06147fa61442d6147f26fffffffffffffffffffffffffffffffff61485c61442d614857886135cc565b92600c810361491657506148a69192614f14565b906148b081614f27565b918083116148e65750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614da8565b90507f12bacdd3000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600f810361499957506149299192614f14565b9061493381614c6a565b918083106149695750906133fd917f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c90614cd6565b90507f8b063d73000000000000000000000000000000000000000000000000000000005f5260045260245260445ffd5b600b81036149f257506149b0906133fd9293614c52565b156149e7576149e1827f0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a7085c92614d83565b91614da8565b6149e1823092614d83565b600e8103614a255750614a19614a0f614a1f926133fd9495614c52565b92829492916135e0565b92614d6f565b91614cd6565b9260108414614a3657505050614751565b6133fd929350614a4c614a5592614a1f92614c52565b929193906135e0565b91614a5f84614c6a565b613ede565b5f806001600160a01b03614a8d93169360208151910182865af1614a866131ae565b9083615451565b8051908115159182614ace575b5050614aa35750565b7f5274afe7000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b614ae19250602080918301019101613625565b155f80614a9a565b6001600160a01b0382166001600160a01b038216105f14610f2e5791565b916133c3906001600160a01b03947fffffffffffffffffffffffffffffffffffffffff0000000000000000000000006040519181602084019460601b16845260601b16603482015260288152614b5e6048826130d3565b5190206115bc604051938492602084019687917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000605594927fff00000000000000000000000000000000000000000000000000000000000000855260601b166001840152601583015260358201520190565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c47579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611256575f516001600160a01b03811615614c3d57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611626578035916040602083013592013590565b614c9581307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8212614ca1575090565b6001600160a01b03907f4c085bf1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90918015614d6a576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561027d575f92836064926001600160a01b03948560405198899788967f0b0d9c0900000000000000000000000000000000000000000000000000000000885216600487015216602485015260448401525af180156112565761378c5750565b505050565b9081614d7f5761317b9150614c6a565b5090565b90600160ff1b8203614d995761317b915061514c565b81614d7f5761317b9150614f27565b5f918315614f0e576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561027d576001600160a01b03604051917fa584119400000000000000000000000000000000000000000000000000000000835216908160048201525f8160248183885af1801561125657614ef9575b5080614eac5750506020906004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614e969060203d602011614e99575b614e8e81836130d3565b8101906131fb565b50565b503d614e84565b604051903d90823e3d90fd5b83948360209493614ebc936133df565b6004604051809581937f11da60b40000000000000000000000000000000000000000000000000000000083525af1908115614ea05750614e755750565b614f069194505f906130d3565b5f925f614e2d565b50505050565b9190604011611626576020823592013590565b614f5281307f00000000000000000000000000000000000000000000000000000000000000006150bf565b905f8213614f64575061317b9061317e565b6001600160a01b03907f3351b260000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b90610140116116265780350190565b356fffffffffffffffffffffffffffffffff8116810361027d5790565b35801515810361027d5790565b91908260a091031261027d57604051614fea816130b7565b6080615036818395614ffb81610e40565b855261500960208201610e40565b602086015261501a604082016131dd565b604086015261502b606082016131ed565b606086015201610e40565b910152565b9060a0116116265780350190565b903590601e198136030182121561027d570180359067ffffffffffffffff821161027d57602001918160051b3603831361027d57565b9190811015610c275760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff618136030182121561027d570190565b6001600160a01b03809381602094165f52168252602460405f2060405194859384927ff135baaa0000000000000000000000000000000000000000000000000000000084526004840152165afa908115611256575f9161511d575090565b90506020813d602011615144575b81615138602093836130d3565b8101031261027d575190565b3d915061512b565b6001600160a01b03168061515f57504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115611256575f9161511d575090565b906fffffffffffffffffffffffffffffffff82168092036151ab57565b7f93dafdf1000000000000000000000000000000000000000000000000000000005f5260045ffd5b909290831561533e576401000276a4905b60405194606086019386851067ffffffffffffffff86111761307b576001600160a01b0397886080956152b9946020986040521515998a8152888101908a82528360408201931683526040519c8d998a997ff3cd914c000000000000000000000000000000000000000000000000000000008b528281511660048c0152828d8201511660248c015262ffffff60408201511660448c0152606081015160020b60648c0152015116608489015251151560a48801525160c4870152511660e485015261012061010485015261012484019161318e565b03815f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1928315611256575f9361530a575b505f130361530457600f0b90565b60801d90565b9092506020813d602011615336575b81615326602093836130d3565b8101031261027d5751915f6152f6565b3d9150615319565b73fffd8963efd1fc6a506488495d951d5263988d25906151e4565b905f6080604051615369816130b7565b8281528260208201528260408201528260608201520152615389826135cc565b6001600160a01b038216916001600160a01b0382168084105f1461542057506001600160a01b03905b1680921492602081013562ffffff811680910361027d576040820135918260020b80930361027d5760600135926001600160a01b03841680940361027d576001600160a01b039060405195615406876130b7565b865216602085015260408401526060830152608082015291565b9150506001600160a01b0382916153b2565b5f81600f0b126151ab576fffffffffffffffffffffffffffffffff1690565b9061548e575080511561546657805190602001fd5b7f1425ea42000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806154d4575b61549f575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561549756fea164736f6c634300081a000a';
}
}
diff --git a/src/briefcase/deployers/v2-core/UniswapV2FactoryDeployer.sol b/src/briefcase/deployers/v2-core/UniswapV2FactoryDeployer.sol
index 2b5d6a0b..0ecdae82 100644
--- a/src/briefcase/deployers/v2-core/UniswapV2FactoryDeployer.sol
+++ b/src/briefcase/deployers/v2-core/UniswapV2FactoryDeployer.sol
@@ -27,6 +27,6 @@ library UniswapV2FactoryDeployer {
* - evm_version: istanbul
*/
function initcode() internal pure returns (bytes memory) {
- return hex'608060405234801561001057600080fd5b506040516136863803806136868339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613623806100636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a2e74af61161005b578063a2e74af6146100fd578063c9c6539614610132578063e6a439051461016d578063f46901ed146101a857610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063574f2ba3146100e3575b600080fd5b6100956101db565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100956101f7565b610095600480360360208110156100dc57600080fd5b5035610213565b6100eb610247565b60408051918252519081900360200190f35b6101306004803603602081101561011357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661024d565b005b6100956004803603604081101561014857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661031a565b6100956004803603604081101561018357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661076d565b610130600480360360208110156101be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107a0565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061022057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103b757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106103f45783856103f7565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff821661047e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561051f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b6060604051806020016105319061086d565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f5604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152868116602483015291519297509087169163485cc9559160448082019260009290919082900301818387803b15801561065e57600080fd5b505af1158015610672573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461082657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612d748061087b8339019056fe60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a72315820c55e7857202066d6d03d830e1920a8020bd7492e5937141fe8dd7df87c990f7564736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a72315820dca363fa18835d7f3677b33930847dbcc4a134ed4bd3c8000333352cd3bbb5a564736f6c63430005100032';
+ return hex'608060405234801561001057600080fd5b506040516136863803806136868339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055613623806100636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a2e74af61161005b578063a2e74af6146100fd578063c9c6539614610132578063e6a439051461016d578063f46901ed146101a857610088565b8063017e7e581461008d578063094b7415146100be5780631e3dd18b146100c6578063574f2ba3146100e3575b600080fd5b6100956101db565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100956101f7565b610095600480360360208110156100dc57600080fd5b5035610213565b6100eb610247565b60408051918252519081900360200190f35b6101306004803603602081101561011357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661024d565b005b6100956004803603604081101561014857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661031a565b6100956004803603604081101561018357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602001351661076d565b610130600480360360208110156101be57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166107a0565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6003818154811061022057fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b60035490565b60015473ffffffffffffffffffffffffffffffffffffffff1633146102d357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60008173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103b757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f556e697377617056323a204944454e544943414c5f4144445245535345530000604482015290519081900360640190fd5b6000808373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106103f45783856103f7565b84845b909250905073ffffffffffffffffffffffffffffffffffffffff821661047e57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f556e697377617056323a205a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff82811660009081526002602090815260408083208585168452909152902054161561051f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f556e697377617056323a20504149525f45584953545300000000000000000000604482015290519081900360640190fd5b6060604051806020016105319061086d565b6020820181038252601f19601f82011660405250905060008383604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140192505050604051602081830303815290604052805190602001209050808251602084016000f5604080517f485cc95500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8781166004830152868116602483015291519297509087169163485cc9559160448082019260009290919082900301818387803b15801561065e57600080fd5b505af1158015610672573d6000803e3d6000fd5b5050505073ffffffffffffffffffffffffffffffffffffffff84811660008181526002602081815260408084208987168086529083528185208054978d167fffffffffffffffffffffffff000000000000000000000000000000000000000098891681179091559383528185208686528352818520805488168517905560038054600181018255958190527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b90950180549097168417909655925483519283529082015281517f0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9929181900390910190a35050505092915050565b600260209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff16331461082657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b612d748061087b8339019056fe60806040526001600c5534801561001557600080fd5b506040514690806052612d228239604080519182900360520182208282018252600a8352692ab734b9bbb0b8102b1960b11b6020938401528151808301835260018152603160f81b908401528151808401919091527fbfcc8ef98ffbf7b6c3fec7bf5185b566b9863e35a9d83acd49ad6824b5969738818301527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6606082015260808101949094523060a0808601919091528151808603909101815260c09094019052825192019190912060035550600580546001600160a01b03191633179055612c1d806101056000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c80636a627842116100f9578063ba9a7a5611610097578063d21220a711610071578063d21220a7146105da578063d505accf146105e2578063dd62ed3e14610640578063fff6cae91461067b576101b9565b8063ba9a7a5614610597578063bc25cf771461059f578063c45a0155146105d2576101b9565b80637ecebe00116100d35780637ecebe00146104d757806389afcb441461050a57806395d89b4114610556578063a9059cbb1461055e576101b9565b80636a6278421461046957806370a082311461049c5780637464fc3d146104cf576101b9565b806323b872dd116101665780633644e515116101405780633644e51514610416578063485cc9551461041e5780635909c0d5146104595780635a3d549314610461576101b9565b806323b872dd146103ad57806330adf81f146103f0578063313ce567146103f8576101b9565b8063095ea7b311610197578063095ea7b3146103155780630dfe16811461036257806318160ddd14610393576101b9565b8063022c0d9f146101be57806306fdde03146102595780630902f1ac146102d6575b600080fd5b610257600480360360808110156101d457600080fd5b81359160208101359173ffffffffffffffffffffffffffffffffffffffff604083013516919081019060808101606082013564010000000081111561021857600080fd5b82018360208201111561022a57600080fd5b8035906020019184600183028401116401000000008311171561024c57600080fd5b509092509050610683565b005b610261610d57565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029b578181015183820152602001610283565b50505050905090810190601f1680156102c85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102de610d90565b604080516dffffffffffffffffffffffffffff948516815292909316602083015263ffffffff168183015290519081900360600190f35b61034e6004803603604081101561032b57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610de5565b604080519115158252519081900360200190f35b61036a610dfc565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61039b610e18565b60408051918252519081900360200190f35b61034e600480360360608110156103c357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610e1e565b61039b610efd565b610400610f21565b6040805160ff9092168252519081900360200190f35b61039b610f26565b6102576004803603604081101561043457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516610f2c565b61039b611005565b61039b61100b565b61039b6004803603602081101561047f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611011565b61039b600480360360208110156104b257600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113cb565b61039b6113dd565b61039b600480360360208110156104ed57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113e3565b61053d6004803603602081101561052057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166113f5565b6040805192835260208301919091528051918290030190f35b610261611892565b61034e6004803603604081101561057457600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81351690602001356118cb565b61039b6118d8565b610257600480360360208110156105b557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118de565b61036a611ad4565b61036a611af0565b610257600480360360e08110156105f857600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135611b0c565b61039b6004803603604081101561065657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff81358116916020013516611dd8565b610257611df5565b600c546001146106f457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55841515806107075750600084115b61075c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b2f6025913960400191505060405180910390fd5b600080610767610d90565b5091509150816dffffffffffffffffffffffffffff168710801561079a5750806dffffffffffffffffffffffffffff1686105b6107ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b786021913960400191505060405180910390fd5b600654600754600091829173ffffffffffffffffffffffffffffffffffffffff91821691908116908916821480159061085457508073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b6108bf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f556e697377617056323a20494e56414c49445f544f0000000000000000000000604482015290519081900360640190fd5b8a156108d0576108d0828a8d611fdb565b89156108e1576108e1818a8c611fdb565b86156109c3578873ffffffffffffffffffffffffffffffffffffffff166310d1e85c338d8d8c8c6040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050505b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8416916370a08231916024808301926020929190829003018186803b158015610a2f57600080fd5b505afa158015610a43573d6000803e3d6000fd5b505050506040513d6020811015610a5957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191955073ffffffffffffffffffffffffffffffffffffffff8316916370a0823191602480820192602092909190829003018186803b158015610acb57600080fd5b505afa158015610adf573d6000803e3d6000fd5b505050506040513d6020811015610af557600080fd5b5051925060009150506dffffffffffffffffffffffffffff85168a90038311610b1f576000610b35565b89856dffffffffffffffffffffffffffff160383035b9050600089856dffffffffffffffffffffffffffff16038311610b59576000610b6f565b89856dffffffffffffffffffffffffffff160383035b90506000821180610b805750600081115b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612b546024913960400191505060405180910390fd5b6000610c09610beb84600363ffffffff6121e816565b610bfd876103e863ffffffff6121e816565b9063ffffffff61226e16565b90506000610c21610beb84600363ffffffff6121e816565b9050610c59620f4240610c4d6dffffffffffffffffffffffffffff8b8116908b1663ffffffff6121e816565b9063ffffffff6121e816565b610c69838363ffffffff6121e816565b1015610cd657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f556e697377617056323a204b0000000000000000000000000000000000000000604482015290519081900360640190fd5b5050610ce4848488886122e0565b60408051838152602081018390528082018d9052606081018c9052905173ffffffffffffffffffffffffffffffffffffffff8b169133917fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d8229181900360800190a350506001600c55505050505050505050565b6040518060400160405280600a81526020017f556e69737761702056320000000000000000000000000000000000000000000081525081565b6008546dffffffffffffffffffffffffffff808216926e0100000000000000000000000000008304909116917c0100000000000000000000000000000000000000000000000000000000900463ffffffff1690565b6000610df233848461259c565b5060015b92915050565b60065473ffffffffffffffffffffffffffffffffffffffff1681565b60005481565b73ffffffffffffffffffffffffffffffffffffffff831660009081526002602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14610ee85773ffffffffffffffffffffffffffffffffffffffff84166000908152600260209081526040808320338452909152902054610eb6908363ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526002602090815260408083203384529091529020555b610ef384848461260b565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b601281565b60035481565b60055473ffffffffffffffffffffffffffffffffffffffff163314610fb257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f556e697377617056323a20464f5242494444454e000000000000000000000000604482015290519081900360640190fd5b6006805473ffffffffffffffffffffffffffffffffffffffff9384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560078054929093169116179055565b60095481565b600a5481565b6000600c5460011461108457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611094610d90565b50600654604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905193955091935060009273ffffffffffffffffffffffffffffffffffffffff909116916370a08231916024808301926020929190829003018186803b15801561110e57600080fd5b505afa158015611122573d6000803e3d6000fd5b505050506040513d602081101561113857600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905192935060009273ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b1580156111b157600080fd5b505afa1580156111c5573d6000803e3d6000fd5b505050506040513d60208110156111db57600080fd5b505190506000611201836dffffffffffffffffffffffffffff871663ffffffff61226e16565b90506000611225836dffffffffffffffffffffffffffff871663ffffffff61226e16565b9050600061123387876126ec565b600054909150806112705761125c6103e8610bfd611257878763ffffffff6121e816565b612878565b985061126b60006103e86128ca565b6112cd565b6112ca6dffffffffffffffffffffffffffff8916611294868463ffffffff6121e816565b8161129b57fe5b046dffffffffffffffffffffffffffff89166112bd868563ffffffff6121e816565b816112c457fe5b0461297a565b98505b60008911611326576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612bc16028913960400191505060405180910390fd5b6113308a8a6128ca565b61133c86868a8a6122e0565b811561137e5760085461137a906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b6040805185815260208101859052815133927f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f928290030190a250506001600c5550949695505050505050565b60016020526000908152604090205481565b600b5481565b60046020526000908152604090205481565b600080600c5460011461146957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c81905580611479610d90565b50600654600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905194965092945073ffffffffffffffffffffffffffffffffffffffff9182169391169160009184916370a08231916024808301926020929190829003018186803b1580156114fb57600080fd5b505afa15801561150f573d6000803e3d6000fd5b505050506040513d602081101561152557600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191925060009173ffffffffffffffffffffffffffffffffffffffff8516916370a08231916024808301926020929190829003018186803b15801561159957600080fd5b505afa1580156115ad573d6000803e3d6000fd5b505050506040513d60208110156115c357600080fd5b5051306000908152600160205260408120549192506115e288886126ec565b600054909150806115f9848763ffffffff6121e816565b8161160057fe5b049a5080611614848663ffffffff6121e816565b8161161b57fe5b04995060008b11801561162e575060008a115b611683576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180612b996028913960400191505060405180910390fd5b61168d3084612992565b611698878d8d611fdb565b6116a3868d8c611fdb565b604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff8916916370a08231916024808301926020929190829003018186803b15801561170f57600080fd5b505afa158015611723573d6000803e3d6000fd5b505050506040513d602081101561173957600080fd5b5051604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905191965073ffffffffffffffffffffffffffffffffffffffff8816916370a0823191602480820192602092909190829003018186803b1580156117ab57600080fd5b505afa1580156117bf573d6000803e3d6000fd5b505050506040513d60208110156117d557600080fd5b505193506117e585858b8b6122e0565b811561182757600854611823906dffffffffffffffffffffffffffff808216916e01000000000000000000000000000090041663ffffffff6121e816565b600b555b604080518c8152602081018c9052815173ffffffffffffffffffffffffffffffffffffffff8f169233927fdccd412f0b1252819cb1fd330b93224ca42612892bb3f4f789976e6d81936496929081900390910190a35050505050505050506001600c81905550915091565b6040518060400160405280600681526020017f554e492d5632000000000000000000000000000000000000000000000000000081525081565b6000610df233848461260b565b6103e881565b600c5460011461194f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654600754600854604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff9485169490931692611a2b9285928792611a26926dffffffffffffffffffffffffffff169185916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b505afa158015611a02573d6000803e3d6000fd5b505050506040513d6020811015611a1857600080fd5b50519063ffffffff61226e16565b611fdb565b600854604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611aca9284928792611a26926e01000000000000000000000000000090046dffffffffffffffffffffffffffff169173ffffffffffffffffffffffffffffffffffffffff8616916370a0823191602480820192602092909190829003018186803b1580156119ee57600080fd5b50506001600c5550565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b42841015611b7b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f556e697377617056323a20455850495245440000000000000000000000000000604482015290519081900360640190fd5b60035473ffffffffffffffffffffffffffffffffffffffff80891660008181526004602090815260408083208054600180820190925582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98186015280840196909652958d166060860152608085018c905260a085019590955260c08085018b90528151808603909101815260e0850182528051908301207f19010000000000000000000000000000000000000000000000000000000000006101008601526101028501969096526101228085019690965280518085039096018652610142840180825286519683019690962095839052610162840180825286905260ff89166101828501526101a284018890526101c28401879052519193926101e2808201937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081019281900390910190855afa158015611cdc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811615801590611d5757508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611dc257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f556e697377617056323a20494e56414c49445f5349474e415455524500000000604482015290519081900360640190fd5b611dcd89898961259c565b505050505050505050565b600260209081526000928352604080842090915290825290205481565b600c54600114611e6657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f556e697377617056323a204c4f434b4544000000000000000000000000000000604482015290519081900360640190fd5b6000600c55600654604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051611fd49273ffffffffffffffffffffffffffffffffffffffff16916370a08231916024808301926020929190829003018186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d6020811015611f0757600080fd5b5051600754604080517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152905173ffffffffffffffffffffffffffffffffffffffff909216916370a0823191602480820192602092909190829003018186803b158015611f7a57600080fd5b505afa158015611f8e573d6000803e3d6000fd5b505050506040513d6020811015611fa457600080fd5b50516008546dffffffffffffffffffffffffffff808216916e0100000000000000000000000000009004166122e0565b6001600c55565b604080518082018252601981527f7472616e7366657228616464726573732c75696e743235362900000000000000602091820152815173ffffffffffffffffffffffffffffffffffffffff85811660248301526044808301869052845180840390910181526064909201845291810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001781529251815160009460609489169392918291908083835b602083106120e157805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016120a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612143576040519150601f19603f3d011682016040523d82523d6000602084013e612148565b606091505b5091509150818015612176575080511580612176575080806020019051602081101561217357600080fd5b50515b6121e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f556e697377617056323a205452414e534645525f4641494c4544000000000000604482015290519081900360640190fd5b5050505050565b60008115806122035750508082028282828161220057fe5b04145b610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b80820382811115610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6dffffffffffffffffffffffffffff841180159061230c57506dffffffffffffffffffffffffffff8311155b61237757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f556e697377617056323a204f564552464c4f5700000000000000000000000000604482015290519081900360640190fd5b60085463ffffffff428116917c0100000000000000000000000000000000000000000000000000000000900481168203908116158015906123c757506dffffffffffffffffffffffffffff841615155b80156123e257506dffffffffffffffffffffffffffff831615155b15612492578063ffffffff16612425856123fb86612a57565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff169063ffffffff612a7b16565b600980547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092169290920201905563ffffffff8116612465846123fb87612a57565b600a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff92909216929092020190555b600880547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff888116919091177fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff166e0100000000000000000000000000008883168102919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c010000000000000000000000000000000000000000000000000000000063ffffffff871602179283905560408051848416815291909304909116602082015281517f1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1929181900390910190a1505050505050565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902054612641908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600160205260408082209390935590841681522054612683908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526001602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561275757600080fd5b505afa15801561276b573d6000803e3d6000fd5b505050506040513d602081101561278157600080fd5b5051600b5473ffffffffffffffffffffffffffffffffffffffff821615801594509192509061286457801561285f5760006127d86112576dffffffffffffffffffffffffffff88811690881663ffffffff6121e816565b905060006127e583612878565b90508082111561285c576000612813612804848463ffffffff61226e16565b6000549063ffffffff6121e816565b905060006128388361282c86600563ffffffff6121e816565b9063ffffffff612abc16565b9050600081838161284557fe5b04905080156128585761285887826128ca565b5050505b50505b612870565b8015612870576000600b555b505092915050565b600060038211156128bb575080600160028204015b818110156128b5578091506002818285816128a457fe5b0401816128ad57fe5b04905061288d565b506128c5565b81156128c5575060015b919050565b6000546128dd908263ffffffff612abc16565b600090815573ffffffffffffffffffffffffffffffffffffffff8316815260016020526040902054612915908263ffffffff612abc16565b73ffffffffffffffffffffffffffffffffffffffff831660008181526001602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000818310612989578161298b565b825b9392505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600160205260409020546129c8908263ffffffff61226e16565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604081209190915554612a02908263ffffffff61226e16565b600090815560408051838152905173ffffffffffffffffffffffffffffffffffffffff8516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a35050565b6dffffffffffffffffffffffffffff166e0100000000000000000000000000000290565b60006dffffffffffffffffffffffffffff82167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff841681612ab457fe5b049392505050565b80820182811015610df657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f64732d6d6174682d6164642d6f766572666c6f77000000000000000000000000604482015290519081900360640190fdfe556e697377617056323a20494e53554646494349454e545f4f55545055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f494e5055545f414d4f554e54556e697377617056323a20494e53554646494349454e545f4c4951554944495459556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4255524e4544556e697377617056323a20494e53554646494349454e545f4c49515549444954595f4d494e544544a265627a7a72315820b7a97110d8d219529aab5d397ae8ddf14fadb36398f6825d877adc928e2dc22964736f6c63430005100032454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429a265627a7a723158200586805371e0867b8266e39db45bdfb1fc1d35f6954d629c9ba1c587f41c2a1764736f6c63430005100032';
}
}