-
-
Notifications
You must be signed in to change notification settings - Fork 233
/
UnlockSwapPurchaser.json
246 lines (246 loc) · 23.9 KB
/
UnlockSwapPurchaser.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
{
"_format": "hh-sol-artifact-1",
"contractName": "UnlockSwapPurchaser",
"sourceName": "contracts/UnlockSwapPurchaser.flatten.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_unlockAddress",
"type": "address"
},
{
"internalType": "address",
"name": "_permit2Address",
"type": "address"
},
{
"internalType": "address[]",
"name": "_uniswapRouters",
"type": "address[]"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "InsufficientBalance",
"type": "error"
},
{
"inputs": [],
"name": "LockCallFailed",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "lockAddress",
"type": "address"
}
],
"name": "LockDoesntExist",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "uniswapRouter",
"type": "address"
},
{
"internalType": "address",
"name": "tokenIn",
"type": "address"
},
{
"internalType": "address",
"name": "tokenOut",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "callData",
"type": "bytes"
}
],
"name": "SwapFailed",
"type": "error"
},
{
"inputs": [],
"name": "UnauthorizedBalanceChange",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "routerAddress",
"type": "address"
}
],
"name": "UnautorizedRouter",
"type": "error"
},
{
"inputs": [],
"name": "UnsafeCast",
"type": "error"
},
{
"inputs": [],
"name": "WithdrawFailed",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "lock",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "tokenAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amountSpent",
"type": "uint256"
}
],
"name": "SwapCall",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "lock",
"type": "address"
},
{
"internalType": "bytes",
"name": "callData",
"type": "bytes"
}
],
"name": "getKeyPrice",
"outputs": [
{
"internalType": "uint256",
"name": "keyPrice",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "permit2",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "lock",
"type": "address"
},
{
"internalType": "address",
"name": "srcToken",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountInMax",
"type": "uint256"
},
{
"internalType": "address",
"name": "uniswapRouter",
"type": "address"
},
{
"internalType": "bytes",
"name": "swapCalldata",
"type": "bytes"
},
{
"internalType": "bytes",
"name": "callData",
"type": "bytes"
}
],
"name": "swapAndCall",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "unlockAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "tokenAddress",
"type": "address"
}
],
"name": "withdrawToUnlock",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x608060405234801562000010575f80fd5b50604051620013f8380380620013f8833981016040819052620000339162000103565b5f80546001600160a01b038086166001600160a01b031992831617835560018054918616919092161790555b8151811015620000c957600160025f848481518110620000835762000083620001f7565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580620000c0816200020b565b9150506200005f565b5050505062000230565b80516001600160a01b0381168114620000ea575f80fd5b919050565b634e487b7160e01b5f52604160045260245ffd5b5f805f6060848603121562000116575f80fd5b6200012184620000d3565b9250602062000132818601620000d3565b60408601519093506001600160401b03808211156200014f575f80fd5b818701915087601f83011262000163575f80fd5b815181811115620001785762000178620000ef565b8060051b604051601f19603f83011681018181108582111715620001a057620001a0620000ef565b60405291825284820192508381018501918a831115620001be575f80fd5b938501935b82851015620001e757620001d785620000d3565b84529385019392850192620001c3565b8096505050505050509250925092565b634e487b7160e01b5f52603260045260245ffd5b5f600182016200022957634e487b7160e01b5f52601160045260245ffd5b5060010190565b6111ba806200023e5f395ff3fe60806040526004361061004c575f3560e01c806302837f7b1461005757806312261ee7146100785780634fc85292146100ad5780635e8f4502146100da578063b30929cd146100fa575f80fd5b3661005357005b5f80fd5b348015610062575f80fd5b50610076610071366004610b42565b610118565b005b348015610083575f80fd5b50600154610097906001600160a01b031681565b6040516100a49190610b64565b60405180910390f35b3480156100b8575f80fd5b506100cc6100c7366004610c34565b610221565b6040519081526020016100a4565b6100ed6100e8366004610c80565b61030c565b6040516100a49190610d6a565b348015610105575f80fd5b505f54610097906001600160a01b031681565b5f6101228261086c565b90506001600160a01b038216156101ab575f5460405163a9059cbb60e01b81526001600160a01b038481169263a9059cbb9261016692909116908590600401610d7c565b6020604051808303815f875af1158015610182573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a69190610da9565b505050565b5f80546040516001600160a01b039091169083908381818185875af1925050503d805f81146101f5576040519150601f19603f3d011682016040523d82523d5f602084013e6101fa565b606091505b50909150508015155f036101a657604051631d42c86760e21b815260040160405180910390fd5b5f805f805f808680602001905181019061023b9190610f74565b9550955095509550955050876001600160a01b031663097ba333855f815181106102675761026761103e565b6020026020010151855f815181106102815761028161103e565b6020026020010151845f8151811061029b5761029b61103e565b60200260200101516040518463ffffffff1660e01b81526004016102c193929190611052565b602060405180830381865afa1580156102dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103009190611086565b98975050505050505050565b5f8054604051635de9a13760e01b8152606092916001600160a01b031690635de9a1379061033e908b90600401610b64565b606060405180830381865afa158015610359573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061037d919061109d565b50509050806103aa5787604051637421631960e11b81526004016103a19190610b64565b60405180910390fd5b6001600160a01b0385165f9081526002602052604090205460ff1615156001146103e9578460405163f2f52fc960e01b81526004016103a19190610b64565b5f886001600160a01b0316639d76ea586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610426573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044a91906110cf565b90505f6001600160a01b0382161561046a576104658261086c565b61047e565b346104748361086c565b61047e91906110fe565b90505f6001600160a01b038a161561049e576104998a61086c565b6104b2565b346104a88b61086c565b6104b291906110fe565b90506001600160a01b038a1615610550576104cf8a33308c6108f4565b6104da8a898b6109f9565b60015460405163095ea7b360e01b81526001600160a01b038c81169263095ea7b39261050e92909116908d90600401610d7c565b6020604051808303815f875af115801561052a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061054e9190610da9565b505b6001546001600160a01b03166387517c458b8a61056c8d610afe565b61057742603c611111565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015292841660248401529216604482015265ffffffffffff90911660648201526084015f604051808303815f87803b1580156105d3575f80fd5b505af11580156105e5573d5f803e3d5ffd5b505f9250506001600160a01b03808b1691508c1615610604575f610606565b345b896040516106149190611124565b5f6040518083038185875af1925050503d805f811461064e576040519150601f19603f3d011682016040523d82523d5f602084013e610653565b606091505b50909150508015155f0361068457888b858c8b604051637bd486e960e11b81526004016103a195949392919061113f565b61068e8c88610221565b6106989084611111565b6001600160a01b038516156106b5576106b08561086c565b6106c9565b346106bf8661086c565b6106c991906110fe565b10156106e857604051631e9acf1760e31b815260040160405180910390fd5b6001600160a01b0384161561077057836001600160a01b031663095ea7b38d6107118f8b610221565b6040518363ffffffff1660e01b815260040161072e929190610d7c565b6020604051808303815f875af115801561074a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076e9190610da9565b505b5f806001600160a01b03808f169087161561078b575f610795565b6107958f8b610221565b8a6040516107a39190611124565b5f6040518083038185875af1925050503d805f81146107dd576040519150601f19603f3d011682016040523d82523d5f602084013e6107e2565b606091505b5090925090508115155f0361080a57604051637772507160e11b815260040160405180910390fd5b5f846108158f61086c565b61081f91906110fe565b108061083d57505f856108318861086c565b61083b91906110fe565b105b1561085b5760405163392032cb60e21b815260040160405180910390fd5b9d9c50505050505050505050505050565b5f6001600160a01b038216156108ec576040516370a0823160e01b81526001600160a01b038316906370a08231906108a8903090600401610b64565b602060405180830381865afa1580156108c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e79190611086565b6108ee565b475b92915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291515f928392908816916109579190611124565b5f604051808303815f865af19150503d805f8114610990576040519150601f19603f3d011682016040523d82523d5f602084013e610995565b606091505b50915091508180156109bf5750805115806109bf5750808060200190518101906109bf9190610da9565b6109f15760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b60448201526064016103a1565b505050505050565b5f80846001600160a01b031663095ea7b360e01b8585604051602401610a20929190610d7c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610a5e9190611124565b5f604051808303815f865af19150503d805f8114610a97576040519150601f19603f3d011682016040523d82523d5f602084013e610a9c565b606091505b5091509150818015610ac6575080511580610ac6575080806020019051810190610ac69190610da9565b610af75760405162461bcd60e51b8152602060048201526002602482015261534160f01b60448201526064016103a1565b5050505050565b5f6001600160a01b03821115610b275760405163c4bd89a960e01b815260040160405180910390fd5b5090565b6001600160a01b0381168114610b3f575f80fd5b50565b5f60208284031215610b52575f80fd5b8135610b5d81610b2b565b9392505050565b6001600160a01b0391909116815260200190565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715610bb457610bb4610b78565b604052919050565b5f6001600160401b03821115610bd457610bd4610b78565b50601f01601f191660200190565b5f82601f830112610bf1575f80fd5b8135610c04610bff82610bbc565b610b8c565b818152846020838601011115610c18575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215610c45575f80fd5b8235610c5081610b2b565b915060208301356001600160401b03811115610c6a575f80fd5b610c7685828601610be2565b9150509250929050565b5f805f805f8060c08789031215610c95575f80fd5b8635610ca081610b2b565b95506020870135610cb081610b2b565b9450604087013593506060870135610cc781610b2b565b925060808701356001600160401b0380821115610ce2575f80fd5b610cee8a838b01610be2565b935060a0890135915080821115610d03575f80fd5b50610d1089828a01610be2565b9150509295509295509295565b5f5b83811015610d37578181015183820152602001610d1f565b50505f910152565b5f8151808452610d56816020860160208601610d1d565b601f01601f19169290920160200192915050565b602081525f610b5d6020830184610d3f565b6001600160a01b03929092168252602082015260400190565b80518015158114610da4575f80fd5b919050565b5f60208284031215610db9575f80fd5b610b5d82610d95565b80516001600160e01b031981168114610da4575f80fd5b5f6001600160401b03821115610df157610df1610b78565b5060051b60200190565b5f82601f830112610e0a575f80fd5b81516020610e1a610bff83610dd9565b82815260059290921b84018101918181019086841115610e38575f80fd5b8286015b84811015610e535780518352918301918301610e3c565b509695505050505050565b5f82601f830112610e6d575f80fd5b81516020610e7d610bff83610dd9565b82815260059290921b84018101918181019086841115610e9b575f80fd5b8286015b84811015610e53578051610eb281610b2b565b8352918301918301610e9f565b5f82601f830112610ece575f80fd5b81516020610ede610bff83610dd9565b82815260059290921b84018101918181019086841115610efc575f80fd5b8286015b84811015610e535780516001600160401b03811115610f1e575f8081fd5b8701603f81018913610f2f575f8081fd5b848101516040610f41610bff83610bbc565b8281528b82848601011115610f55575f8081fd5b610f6483898301848701610d1d565b8652505050918301918301610f00565b5f805f805f8060c08789031215610f89575f80fd5b610f9287610dc2565b955060208701516001600160401b0380821115610fad575f80fd5b610fb98a838b01610dfb565b96506040890151915080821115610fce575f80fd5b610fda8a838b01610e5e565b95506060890151915080821115610fef575f80fd5b610ffb8a838b01610e5e565b94506080890151915080821115611010575f80fd5b61101c8a838b01610e5e565b935060a0890151915080821115611031575f80fd5b50610d1089828a01610ebf565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b038481168252831660208201526060604082018190525f9061107d90830184610d3f565b95945050505050565b5f60208284031215611096575f80fd5b5051919050565b5f805f606084860312156110af575f80fd5b6110b884610d95565b925060208401519150604084015190509250925092565b5f602082840312156110df575f80fd5b8151610b5d81610b2b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108ee576108ee6110ea565b808201808211156108ee576108ee6110ea565b5f8251611135818460208701610d1d565b9190910192915050565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a0608082018190525f9061117990830184610d3f565b97965050505050505056fea26469706673582212205c2ba9b67715c05833fd58831c41707950da12ee85c6b1da42bd08438af9b2d464736f6c63430008150033",
"deployedBytecode": "0x60806040526004361061004c575f3560e01c806302837f7b1461005757806312261ee7146100785780634fc85292146100ad5780635e8f4502146100da578063b30929cd146100fa575f80fd5b3661005357005b5f80fd5b348015610062575f80fd5b50610076610071366004610b42565b610118565b005b348015610083575f80fd5b50600154610097906001600160a01b031681565b6040516100a49190610b64565b60405180910390f35b3480156100b8575f80fd5b506100cc6100c7366004610c34565b610221565b6040519081526020016100a4565b6100ed6100e8366004610c80565b61030c565b6040516100a49190610d6a565b348015610105575f80fd5b505f54610097906001600160a01b031681565b5f6101228261086c565b90506001600160a01b038216156101ab575f5460405163a9059cbb60e01b81526001600160a01b038481169263a9059cbb9261016692909116908590600401610d7c565b6020604051808303815f875af1158015610182573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a69190610da9565b505050565b5f80546040516001600160a01b039091169083908381818185875af1925050503d805f81146101f5576040519150601f19603f3d011682016040523d82523d5f602084013e6101fa565b606091505b50909150508015155f036101a657604051631d42c86760e21b815260040160405180910390fd5b5f805f805f808680602001905181019061023b9190610f74565b9550955095509550955050876001600160a01b031663097ba333855f815181106102675761026761103e565b6020026020010151855f815181106102815761028161103e565b6020026020010151845f8151811061029b5761029b61103e565b60200260200101516040518463ffffffff1660e01b81526004016102c193929190611052565b602060405180830381865afa1580156102dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103009190611086565b98975050505050505050565b5f8054604051635de9a13760e01b8152606092916001600160a01b031690635de9a1379061033e908b90600401610b64565b606060405180830381865afa158015610359573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061037d919061109d565b50509050806103aa5787604051637421631960e11b81526004016103a19190610b64565b60405180910390fd5b6001600160a01b0385165f9081526002602052604090205460ff1615156001146103e9578460405163f2f52fc960e01b81526004016103a19190610b64565b5f886001600160a01b0316639d76ea586040518163ffffffff1660e01b8152600401602060405180830381865afa158015610426573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044a91906110cf565b90505f6001600160a01b0382161561046a576104658261086c565b61047e565b346104748361086c565b61047e91906110fe565b90505f6001600160a01b038a161561049e576104998a61086c565b6104b2565b346104a88b61086c565b6104b291906110fe565b90506001600160a01b038a1615610550576104cf8a33308c6108f4565b6104da8a898b6109f9565b60015460405163095ea7b360e01b81526001600160a01b038c81169263095ea7b39261050e92909116908d90600401610d7c565b6020604051808303815f875af115801561052a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061054e9190610da9565b505b6001546001600160a01b03166387517c458b8a61056c8d610afe565b61057742603c611111565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015292841660248401529216604482015265ffffffffffff90911660648201526084015f604051808303815f87803b1580156105d3575f80fd5b505af11580156105e5573d5f803e3d5ffd5b505f9250506001600160a01b03808b1691508c1615610604575f610606565b345b896040516106149190611124565b5f6040518083038185875af1925050503d805f811461064e576040519150601f19603f3d011682016040523d82523d5f602084013e610653565b606091505b50909150508015155f0361068457888b858c8b604051637bd486e960e11b81526004016103a195949392919061113f565b61068e8c88610221565b6106989084611111565b6001600160a01b038516156106b5576106b08561086c565b6106c9565b346106bf8661086c565b6106c991906110fe565b10156106e857604051631e9acf1760e31b815260040160405180910390fd5b6001600160a01b0384161561077057836001600160a01b031663095ea7b38d6107118f8b610221565b6040518363ffffffff1660e01b815260040161072e929190610d7c565b6020604051808303815f875af115801561074a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061076e9190610da9565b505b5f806001600160a01b03808f169087161561078b575f610795565b6107958f8b610221565b8a6040516107a39190611124565b5f6040518083038185875af1925050503d805f81146107dd576040519150601f19603f3d011682016040523d82523d5f602084013e6107e2565b606091505b5090925090508115155f0361080a57604051637772507160e11b815260040160405180910390fd5b5f846108158f61086c565b61081f91906110fe565b108061083d57505f856108318861086c565b61083b91906110fe565b105b1561085b5760405163392032cb60e21b815260040160405180910390fd5b9d9c50505050505050505050505050565b5f6001600160a01b038216156108ec576040516370a0823160e01b81526001600160a01b038316906370a08231906108a8903090600401610b64565b602060405180830381865afa1580156108c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e79190611086565b6108ee565b475b92915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291515f928392908816916109579190611124565b5f604051808303815f865af19150503d805f8114610990576040519150601f19603f3d011682016040523d82523d5f602084013e610995565b606091505b50915091508180156109bf5750805115806109bf5750808060200190518101906109bf9190610da9565b6109f15760405162461bcd60e51b815260206004820152600360248201526229aa2360e91b60448201526064016103a1565b505050505050565b5f80846001600160a01b031663095ea7b360e01b8585604051602401610a20929190610d7c565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610a5e9190611124565b5f604051808303815f865af19150503d805f8114610a97576040519150601f19603f3d011682016040523d82523d5f602084013e610a9c565b606091505b5091509150818015610ac6575080511580610ac6575080806020019051810190610ac69190610da9565b610af75760405162461bcd60e51b8152602060048201526002602482015261534160f01b60448201526064016103a1565b5050505050565b5f6001600160a01b03821115610b275760405163c4bd89a960e01b815260040160405180910390fd5b5090565b6001600160a01b0381168114610b3f575f80fd5b50565b5f60208284031215610b52575f80fd5b8135610b5d81610b2b565b9392505050565b6001600160a01b0391909116815260200190565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715610bb457610bb4610b78565b604052919050565b5f6001600160401b03821115610bd457610bd4610b78565b50601f01601f191660200190565b5f82601f830112610bf1575f80fd5b8135610c04610bff82610bbc565b610b8c565b818152846020838601011115610c18575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215610c45575f80fd5b8235610c5081610b2b565b915060208301356001600160401b03811115610c6a575f80fd5b610c7685828601610be2565b9150509250929050565b5f805f805f8060c08789031215610c95575f80fd5b8635610ca081610b2b565b95506020870135610cb081610b2b565b9450604087013593506060870135610cc781610b2b565b925060808701356001600160401b0380821115610ce2575f80fd5b610cee8a838b01610be2565b935060a0890135915080821115610d03575f80fd5b50610d1089828a01610be2565b9150509295509295509295565b5f5b83811015610d37578181015183820152602001610d1f565b50505f910152565b5f8151808452610d56816020860160208601610d1d565b601f01601f19169290920160200192915050565b602081525f610b5d6020830184610d3f565b6001600160a01b03929092168252602082015260400190565b80518015158114610da4575f80fd5b919050565b5f60208284031215610db9575f80fd5b610b5d82610d95565b80516001600160e01b031981168114610da4575f80fd5b5f6001600160401b03821115610df157610df1610b78565b5060051b60200190565b5f82601f830112610e0a575f80fd5b81516020610e1a610bff83610dd9565b82815260059290921b84018101918181019086841115610e38575f80fd5b8286015b84811015610e535780518352918301918301610e3c565b509695505050505050565b5f82601f830112610e6d575f80fd5b81516020610e7d610bff83610dd9565b82815260059290921b84018101918181019086841115610e9b575f80fd5b8286015b84811015610e53578051610eb281610b2b565b8352918301918301610e9f565b5f82601f830112610ece575f80fd5b81516020610ede610bff83610dd9565b82815260059290921b84018101918181019086841115610efc575f80fd5b8286015b84811015610e535780516001600160401b03811115610f1e575f8081fd5b8701603f81018913610f2f575f8081fd5b848101516040610f41610bff83610bbc565b8281528b82848601011115610f55575f8081fd5b610f6483898301848701610d1d565b8652505050918301918301610f00565b5f805f805f8060c08789031215610f89575f80fd5b610f9287610dc2565b955060208701516001600160401b0380821115610fad575f80fd5b610fb98a838b01610dfb565b96506040890151915080821115610fce575f80fd5b610fda8a838b01610e5e565b95506060890151915080821115610fef575f80fd5b610ffb8a838b01610e5e565b94506080890151915080821115611010575f80fd5b61101c8a838b01610e5e565b935060a0890151915080821115611031575f80fd5b50610d1089828a01610ebf565b634e487b7160e01b5f52603260045260245ffd5b6001600160a01b038481168252831660208201526060604082018190525f9061107d90830184610d3f565b95945050505050565b5f60208284031215611096575f80fd5b5051919050565b5f805f606084860312156110af575f80fd5b6110b884610d95565b925060208401519150604084015190509250925092565b5f602082840312156110df575f80fd5b8151610b5d81610b2b565b634e487b7160e01b5f52601160045260245ffd5b818103818111156108ee576108ee6110ea565b808201808211156108ee576108ee6110ea565b5f8251611135818460208701610d1d565b9190910192915050565b6001600160a01b0386811682528581166020830152841660408201526060810183905260a0608082018190525f9061117990830184610d3f565b97965050505050505056fea26469706673582212205c2ba9b67715c05833fd58831c41707950da12ee85c6b1da42bd08438af9b2d464736f6c63430008150033",
"linkReferences": {},
"deployedLinkReferences": {}
}