3 txs
10 calls
constructor
constructor(address _roleStore, address _dataStore, address _eventEmitter, address _oracle, address _multichainVault, address _shiftVault, address _depositHandler, address _withdrawalHandler, address _swapHandler)
functions
dataStore
viewfunction dataStore() view returns (address)
depositHandler
viewfunction depositHandler() view returns (address)
eventEmitter
viewfunction eventEmitter() view returns (address)
multichainVault
viewfunction multichainVault() view returns (address)
oracle
viewfunction oracle() view returns (address)
roleStore
viewfunction roleStore() view returns (address)
shiftVault
viewfunction shiftVault() view returns (address)
swapHandler
viewfunction swapHandler() view returns (address)
withdrawalHandler
viewfunction withdrawalHandler() view returns (address)
_executeShift
nonpayablefunction _executeShift(bytes32 key, tuple shift, address keeper)
cancelShift
nonpayablefunction cancelShift(bytes32 key)
createShift
nonpayablefunction createShift(address account, uint256 srcChainId, tuple params) returns (bytes32)
executeShift
nonpayablefunction executeShift(bytes32 key, tuple oracleParams)
simulateExecuteShift
nonpayablefunction simulateExecuteShift(bytes32 key, tuple params)
events
No events.
errors
DisabledFeature
error DisabledFeature(bytes32 key)
EndOfOracleSimulation
error EndOfOracleSimulation()
InvalidNativeTokenSender
error InvalidNativeTokenSender(address msgSender)
InvalidPrimaryPricesForSimulation
error InvalidPrimaryPricesForSimulation(uint256 primaryTokensLength, uint256 primaryPricesLength)
MaxDataListLengthExceeded
error MaxDataListLengthExceeded(uint256 dataLength, uint256 maxDataLength)
RequestNotYetCancellable
error RequestNotYetCancellable(uint256 requestAge, uint256 requestExpirationAge, string requestType)
Unauthorized
error Unauthorized(address msgSender, string role)
creation bytecode
0x61016060405234801561001157600080fd5b50604051612fda380380612fda833981016040819052610030916100a3565b6001600160a01b0398891660805296881660a05293871660c05293861660e05290851661010052841661012052600080549285166001600160a01b031993841617905560018054918516919092161790551661014052610167565b6001600160a01b03811681146100a057600080fd5b50565b60008060008060008060008060006101208a8c0312156100c257600080fd5b89516100cd8161008b565b60208b01519099506100de8161008b565b60408b01519098506100ef8161008b565b60608b01519097506101008161008b565b60808b01519096506101118161008b565b60a08b01519095506101228161008b565b60c08b01519094506101338161008b565b60e08b01519093506101448161008b565b6101008b01519092506101568161008b565b809150509295985092959850929598565b60805160a05160c05160e051610100516101205161014051612d1e6102bc600039600081816103420152610a0d01526000818161040a01528181610543015281816109a901528181610c3201526119480152600081816102860152818161098201528181610c1101526119260152600081816103b6015281816105210152818161095a01528181610bf0015261190401526000818161030e0152818161068e015281816106fd015281816109d101528181610d86015261110801526000818160ba015281816102ba0152818161048b015281816104ff015281816107bd015281816108f80152818161093501528181610afb01528181610e1001528181610eb201528181610f4701528181610ffe015281816111890152818161128c015281816114ac015281816115aa015281816116e80152818161183101526118e201526000818161025201526113570152612d1e6000f3fe6080604052600436106100b15760003560e01c806322dfcf4c146101c05780632c2f3c07146101f357806349e58799146102205780634a4a7b0414610240578063528a65f414610274578063660d0d67146102a857806370ed07ec146102dc5780637dc0d1d0146102fc5780638a53aaac1461033057806396be2898146103645780639c8b2cfb146103845780639ff78c30146103a4578063c68f53c1146103d8578063ece9296b146103f857600080fd5b366101bb5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166321f8a72160405160200161010e9060208082526003908201526215d39560ea1b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161014291815260200190565b602060405180830381865afa15801561015f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101839190611bd6565b9050336001600160a01b038216146101b9573360405163738d28df60e11b81526004016101b09190611c00565b60405180910390fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db366004611c24565b61042c565b6040519081526020015b60405180910390f35b3480156101ff57600080fd5b50600154610213906001600160a01b031681565b6040516101ea9190611c00565b34801561022c57600080fd5b506101b961023b366004611df1565b6105c3565b34801561024c57600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b34801561028057600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b3480156102b457600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b3480156102e857600080fd5b506101b96102f7366004611fe3565b6108aa565b34801561030857600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b34801561033c57600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b34801561037057600080fd5b506101b961037f366004612112565b610acc565b34801561039057600080fd5b50600054610213906001600160a01b031681565b3480156103b057600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b3480156103e457600080fd5b506101b96103f336600461212b565b610ceb565b34801561040457600080fd5b506102137f000000000000000000000000000000000000000000000000000000000000000081565b6000610436611185565b61048660405160200161044890612178565b604051602081830303815290604052805190602001206040518060400160405280600a81526020016921a7a72a2927a62622a960b11b815250611340565b6104b87f00000000000000000000000000000000000000000000000000000000000000006104b3306113f0565b61147d565b6104d06104c961010084018461219c565b90506114a8565b60405163ec9d63c760e01b81527341e1d594a9fcf6d2ea17d284c6f44c24b303aeae9063ec9d63c790610571907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000908a908a908a90600401612266565b602060405180830381865af415801561058e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b2919061237b565b90506105bc6115a8565b9392505050565b6105d560405160200161044890612178565b6020810151518151518291146106095780515160208201515160405163663de02360e01b81526101b0929190600401612394565b60005b8151518110156106fa5760008260000151828151811061062e5761062e6123a2565b60200260200101519050600083602001518381518110610650576106506123a2565b6020908102919091018101516040516347cba33d60e01b81526001600160a01b038581166004830152825160248301529282015160448201529092507f0000000000000000000000000000000000000000000000000000000000000000909116906347cba33d90606401600060405180830381600087803b1580156106d457600080fd5b505af11580156106e8573d6000803e3d6000fd5b50506001909401935061060c92505050565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fa101977826040015183606001516040518363ffffffff1660e01b8152600401610751929190612394565b600060405180830381600087803b15801561076b57600080fd5b505af115801561077f573d6000803e3d6000fd5b5050505061078b611185565b60405163fdfc26f360e01b8152600090737ea79eac0009f7888b6f8dcfffa1ea9aa8c30f7d9063fdfc26f3906107e7907f00000000000000000000000000000000000000000000000000000000000000009088906004016123b8565b600060405180830381865af4158015610804573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261082c9190810190612488565b604051631c3b41fb60e21b815290915030906370ed07ec9061085690879085903390600401612620565b600060405180830381600087803b15801561087057600080fd5b505af1158015610884573d6000803e3d6000fd5b50505050506108916115a8565b6040516327246e6d60e11b815260040160405180910390fd5b3330146108ee576040805163a35b150b60e01b815233600480830191909152602482019290925260448101919091526329a2a62360e11b60648201526084016101b0565b60005a90506109207f00000000000000000000000000000000000000000000000000000000000000006104b33061165e565b60408051610160810182526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811682527f0000000000000000000000000000000000000000000000000000000000000000811660208301527f00000000000000000000000000000000000000000000000000000000000000008116828401527f0000000000000000000000000000000000000000000000000000000000000000811660608301527f000000000000000000000000000000000000000000000000000000000000000081166080830152600054811660a0830152600154811660c08301527f0000000000000000000000000000000000000000000000000000000000000000811660e08301526101008201879052841661012082015261014081018390529051634baad2d560e01b81527341e1d594a9fcf6d2ea17d284c6f44c24b303aeae90634baad2d590610a83908490889060040161271d565b602060405180830381865af4158015610aa0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac4919061237b565b505050505050565b610ad4611185565b610ae660405160200161044890612178565b60005a60405163fdfc26f360e01b81529091507f000000000000000000000000000000000000000000000000000000000000000090600090737ea79eac0009f7888b6f8dcfffa1ea9aa8c30f7d9063fdfc26f390610b4a90859088906004016123b8565b600060405180830381865af4158015610b67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b8f9190810190612488565b9050610b9e826104b3306116a1565b610bd3610bb082602001516040015190565b6040518060400160405280600581526020016414da1a599d60da1b8152506116e4565b7341e1d594a9fcf6d2ea17d284c6f44c24b303aeae634d629360837f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000089610c5b88515190565b60408051808201825260158152741554d15497d2539255125055115117d0d05390d153605a1b602082015290516001600160e01b031960e08a901b168152610cad979695949392918d91600401612843565b60006040518083038186803b158015610cc557600080fd5b505af4158015610cd9573d6000803e3d6000fd5b50505050505050610ce86115a8565b50565b610cf3611185565b610d66604051602001610d26906020808252600c908201526b27a92222a92fa5a2a2a822a960a11b604082015260600190565b604051602081830303815290604052805190602001206040518060400160405280600c81526020016b27a92222a92fa5a2a2a822a960a11b815250611340565b610d6f816128de565b604051633d333c8560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633d333c8590610dbb908490600401612a7b565b600060405180830381600087803b158015610dd557600080fd5b505af1158015610de9573d6000803e3d6000fd5b5050505060005a90506000737ea79eac0009f7888b6f8dcfffa1ea9aa8c30f7d63fdfc26f37f0000000000000000000000000000000000000000000000000000000000000000876040518363ffffffff1660e01b8152600401610e4d9291906123b8565b600060405180830381865af4158015610e6a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e929190810190612488565b905060007349eaeafa626011ede0b9852e567dfcf8b62aba8863590d008c7f0000000000000000000000000000000000000000000000000000000000000000846040518363ffffffff1660e01b8152600401610eef929190612b21565b602060405180830381865af4158015610f0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f30919061237b565b60405163376693ad60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016600482015260248101859052604481018290529091507349eaeafa626011ede0b9852e567dfcf8b62aba889063376693ad9060640160006040518083038186803b158015610fb457600080fd5b505af4158015610fc8573d6000803e3d6000fd5b5050604051631dbf163560e31b8152600092507349eaeafa626011ede0b9852e567dfcf8b62aba88915063edf8b1a890611028907f00000000000000000000000000000000000000000000000000000000000000009088906004016123b8565b602060405180830381865af4158015611045573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611069919061237b565b604051631c3b41fb60e21b815290915030906370ed07ec908390611095908b9088903390600401612620565b600060405180830381600088803b1580156110af57600080fd5b5087f1935050505080156110c1575060015b611102573d8080156110ef576040519150601f19603f3d011682016040523d82523d6000602084013e6110f4565b606091505b50611100888683611802565b505b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662ccf1556040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561116057600080fd5b505af1158015611174573d6000803e3d6000fd5b50505050506111816115a8565b5050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f56040516020016111c590612b45565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016111f991815260200190565b602060405180830381865afa158015611216573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061123a919061237b565b9050801561128a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101b0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e2a4853a6040516020016112c890612b45565b6040516020818303038152906040528051906020012060016040518363ffffffff1660e01b81526004016112fd929190612394565b6020604051808303816000875af115801561131c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611181919061237b565b60405163ac4ab3fb60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ac4ab3fb9061138e90339086906004016123b8565b602060405180830381865afa1580156113ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113cf9190612b76565b61118157338160405163a35b150b60e01b81526004016101b0929190612b98565b6000604051602001611433906020808252601d908201527f4352454154455f53484946545f464541545552455f44495341424c4544000000604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03841690820152606001604051602081830303815290604052805190602001209050919050565b61148782826119b1565b156111815760405163dd70e0c960e01b8152600481018290526024016101b0565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f560405160200161150c906020808252600f908201526e09a82b0be8882a882be988a9c8ea89608b1b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161154091815260200190565b602060405180830381865afa15801561155d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611581919061237b565b905080821115611181578181604051635031491b60e11b81526004016101b0929190612394565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e2a4853a6040516020016115e690612b45565b6040516020818303038152906040528051906020012060006040518363ffffffff1660e01b815260040161161b929190612394565b6020604051808303816000875af115801561163a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce8919061237b565b6000604051602001611433906020808252601e908201527f455845435554455f53484946545f464541545552455f44495341424c45440000604082015260600190565b6000604051602001611433906020808252601d908201527f43414e43454c5f53484946545f464541545552455f44495341424c4544000000604082015260600190565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f560405160200161175090602080825260179082015276524551554553545f45585049524154494f4e5f54494d4560481b604082015260600190565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161178491815260200190565b602060405180830381865afa1580156117a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c5919061237b565b905060006117d38442612bbc565b9050818110156117fc57808284604051631d04cc8760e31b81526004016101b093929190612bdd565b50505050565b604051637757905b60e01b81527349eaeafa626011ede0b9852e567dfcf8b62aba8890637757905b9061185b907f0000000000000000000000000000000000000000000000000000000000000000908590600401612b98565b60006040518083038186803b15801561187357600080fd5b505af4158015611887573d6000803e3d6000fd5b505050506000611898826020015190565b90506118a48183611a26565b60006118af83611a8e565b5060405163026b149b60e51b81529091507341e1d594a9fcf6d2ea17d284c6f44c24b303aeae90634d6293609061197a907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000907f0000000000000000000000000000000000000000000000000000000000000000908c9033908d908b908e90600401612c05565b60006040518083038186803b15801561199257600080fd5b505af41580156119a6573d6000803e3d6000fd5b505050505050505050565b604051633d70e7e560e11b8152600481018290526000906001600160a01b03841690637ae1cfca90602401602060405180830381865afa1580156119f9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1d9190612b76565b90505b92915050565b611a2f82611b1e565b80611a4a57506001600160e01b0319821663dd70e0c960e01b145b80611a6557506001600160e01b031982166379a2abad60e01b145b80611a8057506001600160e01b031982166334f6b2ab60e21b145b156111815761118181611b54565b60606000604483511015611ab5575050604080516020810190915260008082529092909150565b6000611ac2846020015190565b90506307b9e43360e51b6001600160e01b0319821601611b015760048401935083806020019051810190611af69190612c7b565b946001945092505050565b600060405180602001604052806000815250909250925050915091565b6000611b2982611b5d565b15611b3657506001919050565b611b3f82611b9f565b15611b4c57506001919050565b506000919050565b80518060208301fd5b60006304f68e2360e31b6001600160e01b0319831601611b7f57506001919050565b638298854160e01b6001600160e01b0319831601611b4c57506001919050565b600063329b5fdb60e01b6001600160e01b0319831601611b4c57506001919050565b6001600160a01b0381168114610ce857600080fd5b600060208284031215611be857600080fd5b81516105bc81611bc1565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b8035611c1f81611bc1565b919050565b600080600060608486031215611c3957600080fd5b8335611c4481611bc1565b92506020840135915060408401356001600160401b03811115611c6657600080fd5b84016101208187031215611c7957600080fd5b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715611cbc57611cbc611c84565b60405290565b604080519081016001600160401b0381118282101715611cbc57611cbc611c84565b60405160c081016001600160401b0381118282101715611cbc57611cbc611c84565b604051606081016001600160401b0381118282101715611cbc57611cbc611c84565b604051601f8201601f191681016001600160401b0381118282101715611d5057611d50611c84565b604052919050565b60006001600160401b03821115611d7157611d71611c84565b5060051b60200190565b600082601f830112611d8c57600080fd5b8135611d9f611d9a82611d58565b611d28565b8082825260208201915060208360051b860101925085831115611dc157600080fd5b602085015b83811015611de7578035611dd981611bc1565b835260209283019201611dc6565b5095945050505050565b60008060408385031215611e0457600080fd5b8235915060208301356001600160401b03811115611e2157600080fd5b830160808186031215611e3357600080fd5b611e3b611c9a565b81356001600160401b03811115611e5157600080fd5b611e5d87828501611d7b565b82525060208201356001600160401b03811115611e7957600080fd5b8201601f81018713611e8a57600080fd5b8035611e98611d9a82611d58565b8082825260208201915060208360061b850101925089831115611eba57600080fd5b6020840193505b82841015611f02576040848b031215611ed957600080fd5b611ee1611cc2565b84358152602080860135818301529083526040909401939190910190611ec1565b60208501525050506040828101359082015260609182013591810191909152919491935090915050565b600060c08284031215611f3e57600080fd5b611f46611ce4565b823581526020808401359082015260408084013590820152606080840135908201526080808401359082015260a0928301359281019290925250919050565b600082601f830112611f9657600080fd5b8135611fa4611d9a82611d58565b8082825260208201915060208360051b860101925085831115611fc657600080fd5b602085015b83811015611de7578035835260209283019201611fcb565b600080600060608486031215611ff857600080fd5b8335925060208401356001600160401b0381111561201557600080fd5b84018086036101a081121561202957600080fd5b612031611d06565b60c082121561203f57600080fd5b612047611ce4565b9150823561205481611bc1565b8252602083013561206481611bc1565b6020830152604083013561207781611bc1565b6040830152606083013561208a81611bc1565b6060830152608083013561209d81611bc1565b608083015260a08301356120b081611bc1565b60a08301528181526120c58860c08501611f2c565b602082015261018083013591506001600160401b038211156120e657600080fd5b6120f288838501611f85565b604082015280945050505061210960408501611c14565b90509250925092565b60006020828403121561212457600080fd5b5035919050565b6000806040838503121561213e57600080fd5b8235915060208301356001600160401b0381111561215b57600080fd5b83016060818603121561216d57600080fd5b809150509250929050565b6020808252600a908201526921a7a72a2927a62622a960b11b604082015260600190565b6000808335601e198436030181126121b357600080fd5b8301803591506001600160401b038211156121cd57600080fd5b6020019150600581901b36038213156121e557600080fd5b9250929050565b6000808335601e1984360301811261220357600080fd5b83016020810192503590506001600160401b0381111561222257600080fd5b8060051b36038213156121e557600080fd5b81835260006001600160fb1b0383111561224d57600080fd5b8260051b80836020870137939093016020019392505050565b6001600160a01b03878116825286811660208301528581166040830152841660608201526080810183905260c060a0820152600082356122a581611bc1565b6001600160a01b031660c083015260208301356122c181611bc1565b6001600160a01b031660e083015260408301356122dd81611bc1565b6001600160a01b031661010083015260608301356122fa81611bc1565b6001600160a01b0316610120830152608083013561231781611bc1565b6001600160a01b031661014083015260a083013561016083015260c083013561018083015260e08301356101a08301526123556101008401846121ec565b6101206101c085015261236d6101e085018284612234565b9a9950505050505050505050565b60006020828403121561238d57600080fd5b5051919050565b918252602082015260400190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03929092168252602082015260400190565b600060c082840312156123e357600080fd5b6123eb611ce4565b825181526020808401519082015260408084015190820152606080840151908201526080808401519082015260a0928301519281019290925250919050565b600082601f83011261243b57600080fd5b8151612449611d9a82611d58565b8082825260208201915060208360051b86010192508583111561246b57600080fd5b602085015b83811015611de7578051835260209283019201612470565b60006020828403121561249a57600080fd5b81516001600160401b038111156124b057600080fd5b82018084036101a08112156124c457600080fd5b6124cc611d06565b60c08212156124da57600080fd5b6124e2611ce4565b915082516124ef81611bc1565b825260208301516124ff81611bc1565b6020830152604083015161251281611bc1565b6040830152606083015161252581611bc1565b6060830152608083015161253881611bc1565b608083015260a083015161254b81611bc1565b60a08301528181526125608660c085016123d1565b602082015261018083015191506001600160401b0382111561258157600080fd5b61258d8683850161242a565b604082015295945050505050565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260608083015182169084015260808083015182169084015260a09182015116910152565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b838152606060208201526000610200820161263f60608401865161259b565b60208501516126526101208501826125e6565b5060408501516101a06101e0850152805191829052602001906000906102208501905b808310156126985783518252602082019150602084019350600183019250612675565b5092506126ab9150506040830184611bf3565b949350505050565b60006101a083016126c584845161259b565b60208301516126d760c08601826125e6565b5060408301516101a0610180860152805191829052602001906000906101c08601905b80831015611de757835182526020820191506020840193506001830192506126fa565b612728818451611bf3565b6000602084015161273c6020840182611bf3565b50604084015161274f6040840182611bf3565b5060608401516127626060840182611bf3565b5060808401516127756080840182611bf3565b5060a084015161278860a0840182611bf3565b5060c084015161279b60c0840182611bf3565b5060e08401516127ae60e0840182611bf3565b506101008401516101008301526101208401516127cf610120840182611bf3565b506101408401516101408301526101806101608301526126ab6101808301846126b3565b60005b8381101561280e5781810151838201526020016127f6565b50506000910152565b6000815180845261282f8160208601602086016127f3565b601f01601f19169290920160200192915050565b6001600160a01b03898116825288811660208301528781166040830152868116606083015260808201869052841660a082015260c0810183905261012060e0820181905260009061289690830184612817565b82810361010090930192909252506000815260200198975050505050505050565b60006001600160401b038211156128d0576128d0611c84565b50601f01601f191660200190565b6000606082360312156128f057600080fd5b6128f8611d06565b82356001600160401b0381111561290e57600080fd5b61291a36828601611d7b565b82525060208301356001600160401b0381111561293657600080fd5b61294236828601611d7b565b60208301525060408301356001600160401b0381111561296157600080fd5b830136601f82011261297257600080fd5b8035612980611d9a82611d58565b8082825260208201915060208360051b8501019250368311156129a257600080fd5b602084015b83811015612a265780356001600160401b038111156129c557600080fd5b850136603f8201126129d657600080fd5b60208101356129e7611d9a826128b7565b8181523660408484010111156129fc57600080fd5b816040840160208301376000602083830101528086525050506020830192506020810190506129a7565b5060408501525091949350505050565b600081518084526020840193506020830160005b82811015612a715781516001600160a01b0316865260209586019590910190600101612a4a565b5093949350505050565b602081526000825160606020840152612a976080840182612a36565b90506020840151601f19848303016040850152612ab48282612a36565b6040860151858203601f190160608701528051808352919350602090810192508084019190600582901b85010160005b82811015612b1557601f19868303018452612b00828651612817565b60209586019594909401939150600101612ae4565b50979650505050505050565b6001600160a01b03831681526040602082018190526000906126ab908301846126b3565b6020808252601790820152765245454e5452414e43595f47554152445f53544154555360481b604082015260600190565b600060208284031215612b8857600080fd5b815180151581146105bc57600080fd5b6001600160a01b03831681526040602082018190526000906126ab90830184612817565b81810381811115611a2057634e487b7160e01b600052601160045260246000fd5b838152826020820152606060408201526000612bfc6060830184612817565b95945050505050565b6001600160a01b038a8116825289811660208301528881166040830152878116606083015260808201879052851660a082015260c0810184905261012060e08201819052600090612c5890830185612817565b828103610100840152612c6b8185612817565b9c9b505050505050505050505050565b600060208284031215612c8d57600080fd5b81516001600160401b03811115612ca357600080fd5b8201601f81018413612cb457600080fd5b8051612cc2611d9a826128b7565b818152856020838501011115612cd757600080fd5b612bfc8260208301602086016127f356fea26469706673582212205542347b318b7a74e39e1e690b9d5f28216d07c318c7ec4a1c04aa7a0da2210964736f6c634300081d00330000000000000000000000003c3d99fd298f679dbc2cecd132b4ec4d0f5e6e72000000000000000000000000fd70de6b91282d8017aa4e741e9ae325cab992d8000000000000000000000000c8ee91a54287db53897056e12d9819156d3822fb0000000000000000000000007f01614ca5198ec979b1aad1daf0de7e0a215bdf000000000000000000000000ceaadfaf6a8c489b250e407987877c5fdfcdbe6e000000000000000000000000fe99609c4aa83ff6816b64563bdffd7fa68753ab000000000000000000000000563e8cdb5ba929039c2bb693b78ce12dc0aafada0000000000000000000000001ec018d2b6acca20a0bedb86450b7e27d1d8355b000000000000000000000000db2ab9566732710d02b23325f79a8832118b97c5