UNPKG

blocklock-js

Version:

A library for encrypting and decrypting data for the future

79 lines (78 loc) 101 kB
import { ContractFactory, ContractTransactionResponse } from "ethers"; import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; import type { NonPayableOverrides } from "../common"; import type { BlocklockSender, BlocklockSenderInterface } from "../BlocklockSender"; type BlocklockSenderConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>; export declare class BlocklockSender__factory extends ContractFactory { constructor(...args: BlocklockSenderConstructorParams); getDeployTransaction(overrides?: NonPayableOverrides & { from?: string; }): Promise<ContractDeployTransaction>; deploy(overrides?: NonPayableOverrides & { from?: string; }): Promise<BlocklockSender & { deploymentTransaction(): ContractTransactionResponse; }>; connect(runner: ContractRunner | null): BlocklockSender__factory; static readonly bytecode = "0x60a060405230608052348015610013575f5ffd5b5060015f55610020610025565b6100d7565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100755760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d45780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051615aea6100fd5f395f81816137250152818161374e015261389b0152615aea5ff3fe608060405260043610610371575f3560e01c80637350f456116101c8578063aa433aff116100fd578063c58343ef1161009d578063cd802c911161006d578063cd802c9114610b1a578063d547741f14610b39578063dac83d2914610b58578063dc311dd314610b77575f5ffd5b8063c58343ef14610a91578063c9bc18c414610abd578063ca15c87314610adc578063cb63179714610afb575f5ffd5b8063b2a7cac5116100d8578063b2a7cac5146109da578063bd18636b146109f9578063bec4c08c14610a18578063c3f909d414610a37575f5ffd5b8063aa433aff1461095f578063ad3cb1cc1461097e578063aefb212f146109ae575f5ffd5b8063995cb36e11610168578063a21a23e411610143578063a21a23e4146108ed578063a3246ad314610901578063a3907d711461092d578063a608a1e114610941575f5ffd5b8063995cb36e146108845780639d40a6fd146108a3578063a217fddf146108da575f5ffd5b80638a1f165a116101a35780638a1f165a146107f55780639010d07c1461083357806391d148541461085257806395b55cfc14610871575f5ffd5b80637350f456146107ae57806375b238fc146107c25780637909dc7b146107e2575f5ffd5b806338c27d12116102a957806352d1902d116102495780635d3be001116102195780635d3be001146107205780635f7bda9f1461073f57806364d51a2a1461077357806367b276af1461079a575f5ffd5b806352d1902d146106a757806354236fb3146106bb57806354fd4d50146106da57806357a8070a14610707575f5ffd5b806345fa43541161028457806345fa435414610637578063485cc955146106565780634b160935146106755780634f1ef28614610694575f5ffd5b806338c27d12146105de5780633bc32c75146105f257806341af6c8714610618575f5ffd5b8063235296f7116103145780632f2ff15d116102ef5780632f2ff15d1461056f5780633255c4561461058e5780633408e470146105ad57806336568abe146105bf575f5ffd5b8063235296f71461051b578063248a9ca31461053c5780632f2770db1461055b575f5ffd5b80630ae095401161034f5780630ae095401461046d578063133c40c71461048e57806318e3dd27146104c55780631e6ba15b146104fc575f5ffd5b806301ffc9a714610375578063062b1d90146103a9578063088070f5146103ca575b5f5ffd5b348015610380575f5ffd5b5061039461038f3660046149b0565b610ba6565b60405190151581526020015b60405180910390f35b6103bc6103b7366004614aca565b610bd0565b6040519081526020016103a0565b3480156103d5575f5ffd5b50600a546104269063ffffffff808216916401000000008104821691600160401b8204811691600160601b8104821691600160801b820481169160ff600160a01b82041691600160a81b9091041687565b6040805163ffffffff988916815296881660208801529487169486019490945291851660608501528416608084015260ff1660a083015290911660c082015260e0016103a0565b348015610478575f5ffd5b5061048c610487366004614b5a565b610f15565b005b348015610499575f5ffd5b506001546104ad906001600160a01b031681565b6040516001600160a01b0390911681526020016103a0565b3480156104d0575f5ffd5b506008546104e4906001600160601b031681565b6040516001600160601b0390911681526020016103a0565b348015610507575f5ffd5b5061048c610516366004614b88565b610f66565b348015610526575f5ffd5b5061052f610fc5565b6040516103a09190614bd1565b348015610547575f5ffd5b506103bc610556366004614be3565b611051565b348015610566575f5ffd5b5061048c611071565b34801561057a575f5ffd5b5061048c610589366004614b5a565b6110c0565b348015610599575f5ffd5b506103bc6105a8366004614bfa565b6110e2565b3480156105b8575f5ffd5b50466103bc565b3480156105ca575f5ffd5b5061048c6105d9366004614b5a565b6110fa565b3480156105e9575f5ffd5b5061052f61112d565b3480156105fd575f5ffd5b506008546104e490600160601b90046001600160601b031681565b348015610623575f5ffd5b50610394610632366004614be3565b61113a565b348015610642575f5ffd5b5061048c610651366004614c22565b6111cf565b348015610661575f5ffd5b5061048c610670366004614caa565b6113ac565b348015610680575f5ffd5b506103bc61068f366004614cd6565b61163f565b61048c6106a2366004614cef565b611650565b3480156106b2575f5ffd5b506103bc61166f565b3480156106c6575f5ffd5b5061048c6106d5366004614b88565b61168b565b3480156106e5575f5ffd5b50604080518082019091526005815264302e302e3160d81b602082015261052f565b348015610712575f5ffd5b50600b546103949060ff1681565b34801561072b575f5ffd5b5061048c61073a366004614d78565b6116ff565b34801561074a575f5ffd5b5061075e610759366004614be3565b6117d2565b6040516103a099989796959493929190614e63565b34801561077e575f5ffd5b50610787606481565b60405161ffff90911681526020016103a0565b3480156107a5575f5ffd5b5061052f611b58565b3480156107b9575f5ffd5b5061052f611b65565b3480156107cd575f5ffd5b506103bc5f516020615a955f395f51905f5281565b6103bc6107f0366004614eef565b611b72565b348015610800575f5ffd5b5061052f60405180604001604052806013815260200172424e3235342d424c532d424c4f434b4c4f434b60681b81525081565b34801561083e575f5ffd5b506104ad61084d366004614f4f565b611c62565b34801561085d575f5ffd5b5061039461086c366004614b5a565b611c8f565b61048c61087f366004614be3565b611cc5565b34801561088f575f5ffd5b506009546104e4906001600160601b031681565b3480156108ae575f5ffd5b506005546108c2906001600160401b031681565b6040516001600160401b0390911681526020016103a0565b3480156108e5575f5ffd5b506103bc5f81565b3480156108f8575f5ffd5b506103bc611dd0565b34801561090c575f5ffd5b5061092061091b366004614be3565b611f7a565b6040516103a09190614fb2565b348015610938575f5ffd5b5061048c611fa3565b34801561094c575f5ffd5b50600b5461039490610100900460ff1681565b34801561096a575f5ffd5b5061048c610979366004614be3565b611fee565b348015610989575f5ffd5b5061052f604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156109b9575f5ffd5b506109cd6109c8366004614f4f565b61202e565b6040516103a09190614fc4565b3480156109e5575f5ffd5b5061048c6109f4366004614be3565b612123565b348015610a04575f5ffd5b5061048c610a13366004614b88565b61220e565b348015610a23575f5ffd5b5061048c610a32366004614b5a565b6122a7565b348015610a42575f5ffd5b50600a5463ffffffff808216916401000000008104821691600160401b8204811691600160601b8104821691600160801b820481169160ff600160a01b82041691600160a81b90910416610426565b348015610a9c575f5ffd5b50610ab0610aab366004614be3565b61239b565b6040516103a09190615006565b348015610ac8575f5ffd5b5061052f610ad73660046150d2565b6127a0565b348015610ae7575f5ffd5b506103bc610af6366004614be3565b612bbe565b348015610b06575f5ffd5b5061048c610b15366004614b5a565b612be2565b348015610b25575f5ffd5b50610394610b34366004614be3565b612dce565b348015610b44575f5ffd5b5061048c610b53366004614b5a565b612e59565b348015610b63575f5ffd5b5061048c610b72366004614b5a565b612e75565b348015610b82575f5ffd5b50610b96610b91366004614be3565b612f12565b6040516103a09493929190615139565b5f6001600160e01b03198216635a05180f60e01b1480610bca5750610bca82612fd1565b92915050565b600b545f9060ff16610c295760405162461bcd60e51b815260206004820152601a60248201527f436f6e7472616374206973206e6f7420636f6e6669677572656400000000000060448201526064015b60405180910390fd5b600b54610100900460ff1615610c785760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5cc8191a5cd8589b195960621b6044820152606401610c20565b83151580610c8557505f34115b610cf75760405162461bcd60e51b815260206004820152603860248201527f4469726563742066756e64696e6720726571756972656420666f72207265717560448201527f6573742066756c66696c6c6d656e742063616c6c6261636b00000000000000006064820152608401610c20565b610d018585613005565b5f610d5760405180604001604052806013815260200172424e3235342d424c532d424c4f434b4c4f434b60681b81525084604051602001610d429190615238565b6040516020818303038152906040528661322f565b90506040518061012001604052808681526020013481526020018763ffffffff16815260200182815260200185815260200184610d93906152ca565b815260408051602080820183525f808352818501929092528251808201845282815283850152336060948501528582526010815290829020845181559084015160018201559083015160028201805463ffffffff191663ffffffff90921691909117905590820151600382015560808201516004820190610e1490826153db565b5060a0820151805180516005840191908290610e3390829060026147fc565b506020820151610e4990600280840191906147fc565b50505060208201516004820190610e6090826153db565b5060408201516005820190610e7590826153db565b50505060c0820151600b820190610e8c90826153db565b5060e0820151600c820190610ea190826153db565b506101009190910151600d90910180546001600160a01b0319166001600160a01b03909216919091179055604051339082907fa7cf57609b4abed689b408db0b0c3dc6309786b6c07d5efbbd1d5b150e6d2c0690610f0490889088904290615495565b60405180910390a395945050505050565b81610f1f816132a3565b610f276132f7565b610f308361113a565b15610f4e57604051631685ecdd60e31b815260040160405180910390fd5b610f58838361331f565b610f6160015f55565b505050565b610f7c5f516020615a955f395f51905f5261338f565b600180546001600160a01b0319166001600160a01b0383169081179091556040517f0dae1d002e96c238ebe140ca1799f77093ae09e0bde40f79bb29ed78d09e652d905f90a250565b600c8054610fd290615365565b80601f0160208091040260200160405190810160405280929190818152602001828054610ffe90615365565b80156110495780601f1061102057610100808354040283529160200191611049565b820191905f5260205f20905b81548152906001019060200180831161102c57829003601f168201915b505050505081565b5f9081525f516020615a755f395f51905f52602052604090206001015490565b6110875f516020615a955f395f51905f5261338f565b600b805461ff0019166101001790556040517f75884cdadc4a89e8b545db800057f06ec7f5338a08183c7ba515f2bfdd9fe1e1905f90a1565b6110c982611051565b6110d28161338f565b6110dc8383613399565b50505050565b5f6110f38363ffffffff16836133db565b9392505050565b6001600160a01b03811633146111235760405163334bd91960e11b815260040160405180910390fd5b610f6182826134e8565b600d8054610fd290615365565b5f8181526003602052604081206002018054825b818110156111c5575f60025f85848154811061116c5761116c6154ca565b5f9182526020808320909101546001600160a01b0316835282810193909352604091820181208982529092529020546001600160401b03600160481b9091041611156111bd57506001949350505050565b60010161114e565b505f949350505050565b6111e55f516020615a955f395f51905f5261338f565b60ff8216609b116112385760405162461bcd60e51b815260206004820152601a60248201527f496e76616c6964205072656d69756d2050657263656e746167650000000000006044820152606401610c20565b6040805160e08101825263ffffffff89811680835289821660208401819052898316848601819052898416606086018190528985166080870181905260ff8a1660a0880181905295891660c0909701879052600a805467ffffffffffffffff1916909517640100000000909402939093176fffffffffffffffff00000000000000001916600160401b90920263ffffffff60601b191691909117600160601b9091021764ffffffffff60801b1916600160801b90910260ff60a01b191617600160a01b9092029190911763ffffffff60a81b1916600160a81b909202919091179055600b805460ff19166001179055517f55a28fde295f482c9f32d670c116103bca15724bcef4f18b35542e0553c35ad59061139b90899089908990899089908990899063ffffffff97881681529587166020870152938616604086015291851660608501528416608084015260ff1660a083015290911660c082015260e00190565b60405180910390a150505050505050565b5f6113b5613521565b805490915060ff600160401b82041615906001600160401b03165f811580156113db5750825b90505f826001600160401b031660011480156113f65750303b155b905081158015611404575080155b156114225760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561144c57845460ff60401b1916600160401b1785555b611454613549565b61145c613549565b6114735f516020615a955f395f51905f5288613399565b6114b35760405162461bcd60e51b815260206004820152601160248201527011dc985b9d081c9bdb194819985a5b1959607a1b6044820152606401610c20565b6114bd5f88613399565b6114fd5760405162461bcd60e51b815260206004820152601160248201527011dc985b9d081c9bdb194819985a5b1959607a1b6044820152606401610c20565b600180546001600160a01b0319166001600160a01b03881617905561152146613553565b60405160200161153191906154f5565b604051602081830303815290604052600c908161154e91906153db565b5061155846613553565b604051602001611568919061554c565b604051602081830303815290604052600d908161158591906153db565b5061158f46613553565b60405160200161159f9190615588565b604051602081830303815290604052600e90816115bc91906153db565b506115c646613553565b6040516020016115d691906155c4565b604051602081830303815290604052600f90816115f391906153db565b50831561163657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200161139b565b50505050505050565b5f610bca8263ffffffff163a6133db565b61165861371a565b611661826137be565b61166b82826137d4565b5050565b5f611678613890565b505f516020615a555f395f51905f525b90565b6116936132f7565b6116a95f516020615a955f395f51905f5261338f565b600854600160601b90046001600160601b03166116c78115156138d9565b600880546bffffffffffffffffffffffff60601b191690556116f2826001600160601b0383166138f7565b506116fc60015f55565b50565b6001546001600160a01b031633146117595760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c792044656372797074696f6e53656e6465722063616e2063616c6c00006044820152606401610c20565b6117cb8585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f890181900481028201810190925287815292508791508690819084018382808284375f9201919091525061396792505050565b5050505050565b60106020525f9081526040902080546001820154600283015460038401546004850180549495939463ffffffff90931693919261180e90615365565b80601f016020809104026020016040519081016040528092919081815260200182805461183a90615365565b80156118855780601f1061185c57610100808354040283529160200191611885565b820191905f5260205f20905b81548152906001019060200180831161186857829003601f168201915b50506040805160e081019091529394939250506005830190508160608101828160a084018260028282826020028201915b8154815260200190600101908083116118b657505050918352505060408051808201918290526020909201919060028481019182845b8154815260200190600101908083116118ec57505050505081525050815260200160048201805461191c90615365565b80601f016020809104026020016040519081016040528092919081815260200182805461194890615365565b80156119935780601f1061196a57610100808354040283529160200191611993565b820191905f5260205f20905b81548152906001019060200180831161197657829003601f168201915b505050505081526020016005820180546119ac90615365565b80601f01602080910402602001604051908101604052809291908181526020018280546119d890615365565b8015611a235780601f106119fa57610100808354040283529160200191611a23565b820191905f5260205f20905b815481529060010190602001808311611a0657829003601f168201915b5050505050815250509080600b018054611a3c90615365565b80601f0160208091040260200160405190810160405280929190818152602001828054611a6890615365565b8015611ab35780601f10611a8a57610100808354040283529160200191611ab3565b820191905f5260205f20905b815481529060010190602001808311611a9657829003601f168201915b50505050509080600c018054611ac890615365565b80601f0160208091040260200160405190810160405280929190818152602001828054611af490615365565b8015611b3f5780601f10611b1657610100808354040283529160200191611b3f565b820191905f5260205f20905b815481529060010190602001808311611b2257829003601f168201915b505050600d90930154919250506001600160a01b031689565b600f8054610fd290615365565b600e8054610fd290615365565b600b545f9060ff16611bc65760405162461bcd60e51b815260206004820152601a60248201527f436f6e7472616374206973206e6f7420636f6e666967757265640000000000006044820152606401610c20565b600b54610100900460ff1615611c155760405162461bcd60e51b815260206004820152601460248201527310dbdb9d1c9858dd081a5cc8191a5cd8589b195960621b6044820152606401610c20565b5f611c58865f87878080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250899250610bd0915050565b9695505050505050565b5f8281525f516020615a355f395f51905f52602081905260408220611c879084613aff565b949350505050565b5f9182525f516020615a755f395f51905f52602090815260408084206001600160a01b0393909316845291905290205460ff1690565b611ccd6132f7565b5f81815260036020526040902054611ced906001600160a01b0316613b0a565b5f81815260046020526040812080546001600160601b031691349190611d138385615614565b92506101000a8154816001600160601b0302191690836001600160601b031602179055503460085f8282829054906101000a90046001600160601b0316611d5a9190615614565b92506101000a8154816001600160601b0302191690836001600160601b03160217905550817f7603b205d03651ee812f803fccde89f1012e545a9c99f0abfea9cedd0fd8e902823484611dad9190615633565b604080519283526020830191909152015b60405180910390a2506116fc60015f55565b5f611dd96132f7565b6005546001600160401b031633611df1600143615646565b6040516001600160601b0319606093841b81166020830152914060348201523090921b1660548201526001600160c01b031960c083901b16606882015260700160408051601f1981840301815291905280516020909101209150611e56816001615659565b6005805467ffffffffffffffff19166001600160401b03928316179055604080515f808252606080830184526020808401838152848601848152898552600483528685209151825491516001600160601b039091166001600160a01b031992831617600160601b91909916029790971790558451918201855233825281810183815282860185815289855260038352959093208251815488166001600160a01b0391821617825593516001820180549098169416939093179095559251805192949192611f29926002850192019061483a565b50611f3991506006905084613b31565b5060405133815283907f1d3015d7ba850fa198dc7b1a3f5d42779313a681035f77c8c03764c61005518d9060200160405180910390a2505061168860015f55565b5f8181525f516020615a355f395f51905f5260208190526040909120606091906110f390613b3c565b611fb95f516020615a955f395f51905f5261338f565b600b805461ff00191690556040517fc0f961051f97b04c496472d11cb6170d844e4b2c9dfd3b602a4fa0139712d484905f90a1565b6120045f516020615a955f395f51905f5261338f565b5f818152600360205260409020546001600160a01b031661202481613b0a565b61166b828261331f565b60605f61203b6006613b48565b905080841061205d57604051631390f2a160e01b815260040160405180910390fd5b5f6120688486615633565b905081811180612076575083155b6120805780612082565b815b90505f61208f8683615646565b9050806001600160401b038111156120a9576120a96149ef565b6040519080825280602002602001820160405280156120d2578160200160208202803683370190505b5093505f5b81811015612119576120f46120ec8883615633565b600690613aff565b858281518110612106576121066154ca565b60209081029190910101526001016120d7565b5050505092915050565b61212b6132f7565b5f818152600360205260409020546001600160a01b031661214b81613b0a565b5f828152600360205260409020600101546001600160a01b031633146121a2575f828152600360205260409081902060010154905163d084e97560e01b81526001600160a01b039091166004820152602401610c20565b5f828152600360209081526040918290208054336001600160a01b03199182168117835560019092018054909116905582516001600160a01b03851681529182015283917fd4114ab6e9af9f597c52041f32d62dc57c5c4e4c0d4427006069635e216c93869101611dbe565b6122166132f7565b61222c5f516020615a955f395f51905f5261338f565b6009546001600160601b03166122438115156138d9565b600980546001600160601b0319169055600880548291905f906122709084906001600160601b0316615678565b92506101000a8154816001600160601b0302191690836001600160601b031602179055506116f282826001600160601b03166138f7565b816122b1816132a3565b6122b96132f7565b6001600160a01b0382165f9081526002602090815260408083208684529091529020805460ff16156122eb5750610f58565b5f84815260036020526040902060020180546063190161231e576040516305a48e0f60e01b815260040160405180910390fd5b8154600160ff1990911681178355815490810182555f82815260209081902090910180546001600160a01b0319166001600160a01b03871690811790915560405190815286917f1e980d04aa7648e205713e5e8ea3808672ac163d10936d36f91b2c88ac1575e191015b60405180910390a25050610f6160015f55565b6123a361488d565b5f82815260106020908152604080832081516101208101835281548152600182015493810193909352600281015463ffffffff1691830191909152600381015460608301526004810180546080840191906123fd90615365565b80601f016020809104026020016040519081016040528092919081815260200182805461242990615365565b80156124745780601f1061244b57610100808354040283529160200191612474565b820191905f5260205f20905b81548152906001019060200180831161245757829003601f168201915b50505091835250506040805160e08101909152602090910190600583018160608101828160a084018260028282826020028201915b8154815260200190600101908083116124a957505050918352505060408051808201918290526020909201919060028481019182845b8154815260200190600101908083116124df57505050505081525050815260200160048201805461250f90615365565b80601f016020809104026020016040519081016040528092919081815260200182805461253b90615365565b80156125865780601f1061255d57610100808354040283529160200191612586565b820191905f5260205f20905b81548152906001019060200180831161256957829003601f168201915b5050505050815260200160058201805461259f90615365565b80601f01602080910402602001604051908101604052809291908181526020018280546125cb90615365565b80156126165780601f106125ed57610100808354040283529160200191612616565b820191905f5260205f20905b8154815290600101906020018083116125f957829003601f168201915b5050505050815250508152602001600b8201805461263390615365565b80601f016020809104026020016040519081016040528092919081815260200182805461265f90615365565b80156126aa5780601f10612681576101008083540402835291602001916126aa565b820191905f5260205f20905b81548152906001019060200180831161268d57829003601f168201915b50505050508152602001600c820180546126c390615365565b80601f01602080910402602001604051908101604052809291908181526020018280546126ef90615365565b801561273a5780601f106127115761010080835404028352916020019161273a565b820191905f5260205f20905b81548152906001019060200180831161271d57829003601f168201915b5050509183525050600d91909101546001600160a01b03166020909101526060810151909150610bca5760405162461bcd60e51b81526020600482015260116024820152701a5b9d985b1a59081c995c5d595cdd1259607a1b6044820152606401610c20565b60606127af6080850185615697565b9050610100036128015760405162461bcd60e51b815260206004820152601d60248201527f696e76616c69642064656372797074696f6e206b6579206c656e6774680000006044820152606401610c20565b61010061281160a0860186615697565b9050106128605760405162461bcd60e51b815260206004820152601d60248201527f6d657373616765206f6620756e737570706f72746564206c656e6774680000006044820152606401610c20565b5f61286e6080860186615697565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509394505050505b83811015612902578484828181106128be576128be6154ca565b9050013560f81c60f81b8282815181106128da576128da6154ca565b0160200180516001600160f81b0319908116909218909116905f82901a9053506001016128a4565b505f61291160a0870187615697565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250600f805495965090946129ef945090925061295b9150615365565b80601f016020809104026020016040519081016040528092919081815260200182805461298790615365565b80156129d25780601f106129a9576101008083540402835291602001916129d2565b820191905f5260205f20905b8154815290600101906020018083116129b557829003601f168201915b505050505084898060a001906129e89190615697565b9050613b51565b90505f5b612a0060a0890189615697565b9050811015612a6057818181518110612a1b57612a1b6154ca565b602001015160f81c60f81b838281518110612a3857612a386154ca565b0160200180516001600160f81b0319908116909218909116905f82901a9053506001016129f3565b505f612b15600e8054612a7290615365565b80601f0160208091040260200160405190810160405280929190818152602001828054612a9e90615365565b8015612ae95780601f10612ac057610100808354040283529160200191612ae9565b820191905f5260205f20905b815481529060010190602001808311612acc57829003601f168201915b50505050508585604051602001612b019291906156d9565b604051602081830303815290604052613ce6565b90505f612b2182613d45565b90505f80612b3d83612b38368e90038e018e6156ed565b613dd7565b909250905060018215158215151414612baf5760405162461bcd60e51b815260206004820152602e60248201527f696e76616c69642064656372797074696f6e206b6579202f206369706865727460448201526d195e1d081c9959da5cdd195c995960921b6064820152608401610c20565b50939998505050505050505050565b5f8181525f516020615a355f395f51905f526020819052604082206110f390613b48565b81612bec816132a3565b612bf46132f7565b612bfd8361113a565b15612c1b57604051631685ecdd60e31b815260040160405180910390fd5b6001600160a01b0382165f90815260026020908152604080832086845290915290205460ff16612c70576040516379bfd40160e01b8152600481018490526001600160a01b0383166024820152604401610c20565b5f838152600360205260408120600201805490915b81811015612d7357846001600160a01b0316838281548110612ca957612ca96154ca565b5f918252602090912001546001600160a01b031603612d6b5782612cce600184615646565b81548110612cde57612cde6154ca565b905f5260205f20015f9054906101000a90046001600160a01b0316838281548110612d0b57612d0b6154ca565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555082805480612d4657612d46615707565b5f8281526020902081015f1990810180546001600160a01b0319169055019055612d73565b600101612c85565b506001600160a01b0384165f818152600260209081526040808320898452825291829020805460ff19169055905191825286917f32158c6058347c1601b2d12bc696ac6901d8a9a9aa3ba10c27ab0a983e8425a79101612388565b5f5f612dd98361239b565b606001519050805f03612dee57505f92915050565b60015460405163cd802c9160e01b8152600481018390526001600160a01b039091169063cd802c9190602401602060405180830381865afa158015612e35573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110f3919061571b565b612e6282611051565b612e6b8161338f565b6110dc83836134e8565b81612e7f816132a3565b612e876132f7565b5f83815260036020526040902060018101546001600160a01b03848116911614612f08576001810180546001600160a01b0319166001600160a01b03851690811790915560408051338152602081019290925285917f21a4dad170a6bf476c31bbcf4a16628295b0e450672eec25d7c93308e05344a1910160405180910390a25b50610f6160015f55565b5f8181526003602052604081205481906001600160a01b03166060612f3682613b0a565b5f85815260046020908152604080832054600383529281902060020180548251818502810185019093528083526001600160601b03851694600160601b90046001600160401b0316938793918391830182828015612fbb57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311612f9d575b5050505050905093509350935093509193509193565b5f6001600160e01b03198216637965db0b60e01b1480610bca57506301ffc9a760e01b6001600160e01b0319831614610bca565b600a5463ffffffff90811690831611156130615760405162461bcd60e51b815260206004820152601a60248201527f43616c6c6261636b206761734c696d697420746f6f20686967680000000000006044820152606401610c20565b80156131de575f818152600360205260409020546001600160a01b031661308781613b0a565b335f908152600260209081526040808320858452808352928190208151606081018352905460ff811615158083526001600160401b036101008304811695840195909552600160481b90910490931691810191909152906131345760405162461bcd60e51b815260206004820152602160248201527f4e6f2061637469766520737562736372697074696f6e20666f722063616c6c656044820152603960f91b6064820152608401610c20565b8060200180516131439061573a565b6001600160401b0316905260408101805161315d9061573a565b6001600160401b039081169091525f8581526020938452604090819020835181549585015192909401518316600160481b0270ffffffffffffffff00000000000000000019929093166101000268ffffffffffffffff00199415159490941668ffffffffffffffffff19909516949094179290921791909116179055505050565b5f6131ef8363ffffffff163a6133db565b905080341015610f615760405162461bcd60e51b815260206004820152600b60248201526a46656520746f6f206c6f7760a81b6044820152606401610c20565b60015460405163f87f0e6160e01b81525f916001600160a01b03169063f87f0e619061326390879087908790600401615764565b6020604051808303815f875af115801561327f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c87919061579c565b5f818152600360205260409020546001600160a01b03166132c381613b0a565b336001600160a01b0382161461166b57604051636c51fda960e11b81526001600160a01b0382166004820152602401610c20565b60025f540361331957604051633ee5aeb560e01b815260040160405180910390fd5b60025f55565b5f61332983613f46565b905061333e82826001600160601b03166138f7565b604080516001600160a01b03841681526001600160601b038316602082015284917f3784f77e8e883de95b5d47cd713ced01229fa74d118c0a462224bcb0516d43f1910160405180910390a2505050565b6116fc8133614097565b5f5f516020615a355f395f51905f52816133b385856140d0565b90508015611c87575f8581526020839052604090206133d29085614171565b50949350505050565b6040805160e081018252600a5463ffffffff8082168352640100000000820481166020840152600160401b8204811693830193909352600160601b810483166060830152600160801b81048316608083015260ff600160a01b82041660a0830152600160a81b900490911660c08201525f90818361346357816060015163ffffffff16613465565b835b90505f61347186614185565b63ffffffff16836080015163ffffffff1687856020015163ffffffff16010101820290505f61349d5f90565b90505f8460a0015160640160ff1690505f856040015163ffffffff1664e8d4a510000290505f8160648487870102816134d8576134d86157b3565b04019a9950505050505050505050565b5f5f516020615a355f395f51905f5281613502858561419c565b90508015611c87575f8581526020839052604090206133d29085614215565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610bca565b613551614229565b565b604080518082018252601081526f181899199a1a9b1b9c1cb0b131b232b360811b602082015281516042808252608082019093526060925f9190602082018180368337019050509050600360fc1b815f815181106135b3576135b36154ca565b60200101906001600160f81b03191690815f1a905350600f60fb1b816001815181106135e1576135e16154ca565b60200101906001600160f81b03191690815f1a9053505f5b602081101561371257826004868360208110613617576136176154ca565b1a60f81b6001600160f81b031916901c60f81c60ff168151811061363d5761363d6154ca565b01602001516001600160f81b031916826136588360026157c7565b613663906002615633565b81518110613673576136736154ca565b60200101906001600160f81b03191690815f1a9053508285826020811061369c5761369c6154ca565b825191901a600f169081106136b3576136b36154ca565b01602001516001600160f81b031916826136ce8360026157c7565b6136d9906002615633565b6136e4906001615633565b815181106136f4576136f46154ca565b60200101906001600160f81b03191690815f1a9053506001016135f9565b509392505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806137a057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166137945f516020615a555f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156135515760405163703e46dd60e11b815260040160405180910390fd5b6116fc5f516020615a955f395f51905f5261338f565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561382e575060408051601f3d908101601f1916820190925261382b9181019061579c565b60015b61385657604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610c20565b5f516020615a555f395f51905f52811461388657604051632a87526960e21b815260048101829052602401610c20565b610f61838361424e565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146135515760405163703e46dd60e11b815260040160405180910390fd5b806116fc57604051631e9acf1760e31b815260040160405180910390fd5b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114613940576040519150601f19603f3d011682016040523d82523d5f602084013e613945565b606091505b5050905080610f615760405163950b247960e01b815260040160405180910390fd5b5f5a5f85815260106020526040812060038101549293509190036139cd5760405162461bcd60e51b815260206004820152601960248201527f4e6f207265717565737420666f722072657175657374206964000000000000006044820152606401610c20565b5f635d94180260e01b86866040516024016139e99291906157de565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152600d8301546002840154600a549293505f92613a599285926001600160a01b039091169163ffffffff91821691600160a81b9091048116906142a316565b5090508015613aca57600c8301613a7087826153db565b50600b8301613a7f86826153db565b50867f99fd15974cbf00f0f208baae5a2825fa736397eac7e2ba3003c827438ca093f7846004018560050186600c01604051613abd93929190615897565b60405180910390a2613af5565b60405187907f15083536507666802cbd84fcc1e37ed89879bad2345aaa38d48d91a5071d0f5d905f90a25b61163687856142da565b5f6110f383836143c9565b6001600160a01b0381166116fc57604051630fb532db60e11b815260040160405180910390fd5b5f6110f383836143ef565b60605f6110f38361443b565b5f610bca825490565b825160609060ff811115613b7a57846040516313727cdd60e11b8152600401610c209190614bd1565b60408051608880825260c082019092525f916020820181803683370190505090505f81865f875f8b88604051602001613bb9979695949392919061590c565b60405160208183030381529060405290505f818051906020012090505f8160018a87604051602001613bee9493929190615976565b60408051601f19818403018152919052805160208201209091505f60ff89166001600160401b03811115613c2457613c246149ef565b6040519080825280601f01601f191660200182016040528015613c4e576020820181803683370190505b5090505f6005613c62601f60ff8d16615633565b901c905060015b81811015613cc857858418613c7f826001615633565b8e8b604051602001613c949493929190615976565b60408051808303601f1901815291905260205f19830181028501810195909552805194810194909420939450600101613c69565b505f1901602090810282010191909152955050505050509392505050565b5f5f613cf484846030613b51565b601881015160308201519192506001600160c01b0391821691165f7f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd478381600160c01b850908979650505050505050565b604080518082019091525f8082526020820152613d606148df565b6001815260026020820152604081018390525f60608360808460076107d05a03fa905080613dd05760405162461bcd60e51b815260206004820152601f60248201527f4731207363616c6172206d756c7469706c69636174696f6e206661696c6564006044820152606401610c20565b5050919050565b5f5f5f604051806101800160405280865f01518152602001866020015181526020017f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c281526020017f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed81526020017f275dc4a288d1afb3cbb1ac09187524c7db36395df7be3b99e673b13a075a65ec81526020017f1d9befcd05a5323e6da4d435f3b617cdb3af83285c2df711ef39c01571827f9d81526020016001815260200160028152602001855f0151600160028110613eb557613eb56154ca565b60200201518152602001855f01515f60028110613ed457613ed46154ca565b602002015181526020018560200151600160028110613ef557613ef56154ca565b6020020151815260200185602001515f60028110613f1557613f156154ca565b602002015190529050613f266148fd565b6020816101808460086107d05a03fa9051151593509150505b9250929050565b5f8181526003602090815260408083206004909252822054600290910180546001600160601b03909216929091905b81811015613fe05760025f848381548110613f9257613f926154ca565b5f9182526020808320909101546001600160a01b0316835282810193909352604091820181208882529092529020805470ffffffffffffffffffffffffffffffffff19169055600101613f75565b505f84815260036020526040812080546001600160a01b03199081168255600182018054909116905590614017600283018261491b565b50505f84815260046020526040902080546001600160a01b031916905561403f600685614494565b506001600160601b03831615613dd057600880548491905f9061406c9084906001600160601b0316615678565b92506101000a8154816001600160601b0302191690836001600160601b031602179055505050919050565b6140a18282611c8f565b61166b5760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610c20565b5f5f516020615a755f395f51905f526140e98484611c8f565b614168575f848152602082815260408083206001600160a01b03871684529091529020805460ff1916600117905561411e3390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610bca565b5f915050610bca565b5f6110f3836001600160a01b0384166143ef565b5f614191603f836159b9565b610bca9060016159ec565b5f5f516020615a755f395f51905f526141b58484611c8f565b15614168575f848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610bca565b5f6110f3836001600160a01b03841661449b565b614231614575565b61355157604051631afcd79f60e31b815260040160405180910390fd5b6142578261458e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561429b57610f6182826145f1565b61166b614663565b5f5f5a8381106142d0578390036040810481038510156142d0575f5f885160208a015f8a8af19250600191505b5094509492505050565b5f6142e48361239b565b8051909150156143b85780515f9081526004602052604090208054600c9061431b90600160601b90046001600160401b031661573a565b82546001600160401b0391821661010093840a90810290830219909116179092558201516001600160a01b03165f9081526002602090815260408083208551845290915290208054909160099161437a91600160481b90910416615a08565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505f6143a9833a614682565b90506110dc81835f01516146da565b610f618160200151825f01516146da565b5f825f0182815481106143de576143de6154ca565b905f5260205f200154905092915050565b5f81815260018301602052604081205461443457508154600181810184555f848152602080822090930184905584548482528286019093526040902091909155610bca565b505f610bca565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561448857602002820191905f5260205f20905b815481526020019060010190808311614474575b50505050509050919050565b5f6110f383835b5f8181526001830160205260408120548015614168575f6144bd600183615646565b85549091505f906144d090600190615646565b905080821461452f575f865f0182815481106144ee576144ee6154ca565b905f5260205f200154905080875f01848154811061450e5761450e6154ca565b5f918252602080832090910192909255918252600188019052604090208390555b855486908061454057614540615707565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f905560019350505050610bca565b5f61457e613521565b54600160401b900460ff16919050565b806001600160a01b03163b5f036145c357604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610c20565b5f516020615a555f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b03168460405161460d9190615a29565b5f60405180830381855af49150503d805f8114614645576040519150601f19603f3d011682016040523d82523d5f602084013e61464a565b606091505b509150915061465a858383614777565b95945050505050565b34156135515760405163b398979f60e01b815260040160405180910390fd5b5f5f5a600a54640100000000900463ffffffff1685010390508281025f600a5460649190920160ff600160a01b8404168201020464e8d4a5100063ffffffff600160401b909304929092169190910201949350505050565b8015614740575f81815260046020526040902080546001600160601b03908116906147099085168210156138d9565b81546001600160601b039185900382166001600160601b031991821617909255600980548083168601909216919092161790555050565b600880546001600160601b03600160601b80830482168601909116026bffffffffffffffffffffffff60601b199091161790555050565b60608261478c57614787826147d3565b6110f3565b81511580156147a357506001600160a01b0384163b155b156147cc57604051639996b31560e01b81526001600160a01b0385166004820152602401610c20565b50806110f3565b8051156147e35780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b826002810192821561482a579160200282015b8281111561482a57825182559160200191906001019061480f565b50614836929150614932565b5090565b828054828255905f5260205f2090810192821561482a579160200282015b8281111561482a57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190614858565b6040518061012001604052805f81526020015f81526020015f63ffffffff1681526020015f8152602001606081526020016148c6614946565b8152606060208201819052604082018190525f91015290565b60405180606001604052806003906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b5080545f8255905f5260205f20908101906116fc91905b5b80821115614836575f8155600101614933565b604051806060016040528061495961496d565b815260200160608152602001606081525090565b6040518060400160405280614980614992565b815260200161498d614992565b905290565b60405180604001604052806002906020820280368337509192915050565b5f602082840312156149c0575f5ffd5b81356001600160e01b0319811681146110f3575f5ffd5b803563ffffffff811681146149ea575f5ffd5b919050565b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b0381118282101715614a2557614a256149ef565b60405290565b5f82601f830112614a3a575f5ffd5b81356001600160401b03811115614a5357614a536149ef565b604051601f8201601f19908116603f011681016001600160401b0381118282101715614a8157614a816149ef565b604052818152838201602001851015614a98575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60c08284031215614ac4575f5ffd5b50919050565b5f5f5f5f60808587031215614add575f5ffd5b614ae6856149d7565b93506020850135925060408501356001600160401b03811115614b07575f5ffd5b614b1387828801614a2b565b92505060608501356001600160401b03811115614b2e575f5ffd5b614b3a87828801614ab4565b91505092959194509250565b6001600160a01b03811681146116fc575f5ffd5b5f5f60408385031215614b6b575f5ffd5b823591506020830135614b7d81614b46565b809150509250929050565b5f60208284031215614b98575f5ffd5b81356110f381614b46565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6110f36020830184614ba3565b5f60208284031215614bf3575f5ffd5b5035919050565b5f5f60408385031215614c0b575f5ffd5b614c14836149d7565b946020939093013593505050565b5f5f5f5f5f5f5f60e0888a031215614c38575f5ffd5b614c41886149d7565b9650614c4f602089016149d7565b9550614c5d604089016149d7565b9450614c6b606089016149d7565b9350614c79608089016149d7565b925060a088013560ff81168114614c8e575f5ffd5b9150614c9c60c089016149d7565b905092959891949750929550565b5f5f60408385031215614cbb575f5ffd5b8235614cc681614b46565b91506020830135614b7d81614b46565b5f60208284031215614ce6575f5ffd5b6110f3826149d7565b5f5f60408385031215614d00575f5ffd5b8235614d0b81614b46565b915060208301356001600160401b03811115614d25575f5ffd5b614d3185828601614a2b565b9150509250929050565b5f5f83601f840112614d4b575f5ffd5b5081356001600160401b03811115614d61575f5ffd5b602083019150836020828501011115613f3f575f5ffd5b5f5f5f5f5f60608688031215614d8c575f5ffd5b8535945060208601356001600160401b03811115614da8575f5ffd5b614db488828901614d3b565b90955093505060408601356001600160401b03811115614dd2575f5ffd5b614dde88828901614d3b565b969995985093965092949392505050565b805f5b60028110156110dc578151845260209384019390910190600101614df2565b5f8151614e1f848251614def565b60200151614e306040850182614def565b50602082015160c06080850152614e4a60c0850182614ba3565b9050604083015184820360a086015261465a8282614ba3565b89815288602082015263ffffffff8816604082015286606082015261012060808201525f614e95610120830188614ba3565b82810360a0840152614ea78188614e11565b905082810360c0840152614ebb8187614ba3565b905082810360e0840152614ecf8186614ba3565b91505060018060a01b0383166101008301529a9950505050505050505050565b5f5f5f5f60608587031215614f02575f5ffd5b614f0b856149d7565b935060208501356001600160401b03811115614f25575f5ffd5b614f3187828801614d3b565b90945092505060408501356001600160401b03811115614b2e575f5ffd5b5f5f60408385031215614f60575f5ffd5b50508035926020909101359150565b5f8151808452602084019350602083015f5b82811015614fa85781516001600160a01b0316865260209586019590910190600101614f81565b5093949350505050565b602081525f6110f36020830184614f6f565b602080825282518282018190525f918401906040840190835b81811015614ffb578351835260209384019390920191600101614fdd565b509095945050505050565b6020815281516020820152602082015160408201525f6040830151615033606084018263ffffffff169052565b5060608301516080830152608083015161012060a0840152615059610140840182614ba3565b905060a0840151601f198483030160c08501526150768282614e11565b91505060c0840151601f198483030160e08501526150948282614ba3565b91505060e0840151601f19848303016101008501526150b38282614ba3565b9150506101008401516137126101208501826001600160a01b03169052565b5f5f5f604084860312156150e4575f5ffd5b83356001600160401b038111156150f9575f5ffd5b61510586828701614ab4565b93505060208401356001600160401b03811115615120575f5ffd5b61512c86828701614d3b565b9497909650939450505050565b6001600160601b03851681526001600160401b03841660208201526001600160a01b03831660408201526080606082018190525f90611c5890830184614f6f565b5f5f8335601e1984360301811261518f575f5ffd5b83016020810192503590506001600160401b038111156151ad575f5ffd5b803603821315613f3f575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6040818337604080820160408401375f615200608083018361517a565b60c0608086015261521560c0860182846151bb565b91505061522560a084018461517a565b85830360a0870152611c588382846151bb565b602081525f6110f360208301846151e3565b5f82601f830112615259575f5ffd5b615261614a03565b806040840185811115615272575f5ffd5b845b81811015614ffb578035845260209384019301615274565b5f6080828403121561529c575f5ffd5b6152a4614a03565b90506152b0838361524a565b81526152bf836040840161524a565b602082015292915050565b5f60c082360312156152da575f5ffd5b604051606081016001600160401b03811182821017156152fc576152fc6149ef565b604052615309368461528c565b815260808301356001600160401b03811115615323575f5ffd5b61532f36828601614a2b565b60208301525060a08301356001600160401b0381111561534d575f5ffd5b61535936828601614a2b565b60408301525092915050565b600181811c9082168061537957607f821691505b602082108103614ac457634e487b7160e01b5f52602260045260245ffd5b601f821115610f6157805f5260205f20601f840160051c810160208510156153bc5750805b601f840160051c820191505b818110156117cb575f81556001016153c8565b81516001600160401b038111156153f4576153f46149ef565b615408816154028454615365565b84615397565b6020601f82116001811461543a575f83156154235750848201515b5f19600385901b1c1916600184901b1784556117cb565b5f84815260208120601f198516915b828110156154695787850151825560209485019460019092019101615449565b508482101561548657868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b606081525f6154a76060830186614ba3565b82810360208401526154b981866151e3565b915050826040830152949350505050565b634e487b7160e01b5f52603260045260245ffd5b5f81518060208401855e5f93019283525090919050565b7f424c4f434b4c4f434b5f424e32353447315f584d443a4b454343414b2d32353681526b5f535644575f524f5f48315f60a01b60208201525f61553b602c8301846154de565b605f60f81b81526001019392505050565b7f424c4f434b4c4f434b5f424e3235345f584d443a4b454343414b2d3235365f48815261325f60f01b60208201525f61553b60228301846154de565b7f424c4f434b4c4f434b5f424e3235345f584d443a4b454343414b2d3235365f48815261335f60f01b60208201525f61553b60228301846154de565b7f424c4f434b4c4f434b5f424e3235345f584d443a4b454343414b2d3235365f48815261345f60f01b60208201525f61553b60228301846154de565b634e487b7160e01b5f52601160045260245ffd5b6001600160601b038181168382160190811115610bca57610bca615600565b80820180821115610bca57610bca615600565b81810381811115610bca57610bca615600565b6001600160401b038181168382160190811115610bca57610bca615600565b6001600160601b038281168282160390811115610bca57610bca615600565b5f5f8335601e198436030181126156ac575f5ffd5b8301803591506001600160401b038211156156c5575f5ffd5b602001915036819003821315613f3f575f5ffd5b5f611c876156e783866154de565b846154de565b5f608082840312156156fd575f5ffd5b6110f3838361528c565b634e487b7160e01b5f52603160045260245ffd5b5f6020828403121561572b575f5ffd5b815180151581146110f3575f5ffd5b5f6001600160401b0382166001600160401b03810361575b5761575b615600565b60010192915050565b606081525f6157766060830186614ba3565b82810360208401526157888186614ba3565b90508281036040840152611c588185614ba3565b5f602082840312156157ac575f5ffd5b5051919050565b634e487b7160e01b5f52601260045260245ffd5b8082028115828204841417610bca57610bca615600565b828152604060208201525f611c876040830184614ba3565b5f815461580281615365565b80855260018216801561581c57600181146158385761586c565b60ff1983166020870152602082151560051b870101935061586c565b845f5260205f205f5b838110156158635781546020828a010152600182019150602081019050615841565b87016020019450505b50505092915050565b805f5b60028110156110dc578154845260209093019260019182019101615878565b606081525f6158a960608301866157f6565b82810360208401526158bb8186615875565b6158cb6040820160028701615875565b60c060808201526158e260c08201600487016157f6565b81810360a08301526158f781600588016157f6565b9150508281036040840152611c5881856157f6565b5f61592061591a838b6154de565b896154de565b6001600160f81b031960f889811b8216835288811b8216600184015287901b16600282015261595260038201866154de565b60f89490941b6001600160f81b031916845250506001909101979650505050505050565b84815260f884901b6001600160f81b03191660208201525f61599b60218301856154de565b60f89390931b6001600160f81b031916835250506001019392505050565b5f63ffffffff8316806159da57634e487b7160e01b5f52601260045260245ffd5b8063ffffffff84160491505092915050565b63ffffffff8181168382160190811115610bca57610bca615600565b5f6001600160401b03821680615a2057615a20615600565b5f190192915050565b5f6110f382846154de56fec1f6fe24621ce81ec5827caf0253cadb74709b061630e6b55e82371705932000360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a26469706673582212208b0ca7e8e1a61eb12fa6fdef3a655f122ec70138c76b4bc3d34867023009158464736f6c634300081c0033"; static readonly abi: readonly [{ readonly type: "constructor"; readonly inputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "ADMIN_ROLE"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "DEFAULT_ADMIN_ROLE"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "DST_H1_G1"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes"; readonly internalType: "bytes"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "DST_H2"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes"; readonly internalType: "bytes"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "DST_H3"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes"; readonly internalType: "bytes"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "DST_H4"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes";