@hanamesh/api-contracts 0.0.0-stage → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +10 -2
- package/contracts/chain/quote-v2/BatchVestingDistributorQuoteV2.json +3601 -0
- package/contracts/chain/quote-v2/HanaBondFactoryQuoteV2.json +953 -0
- package/contracts/chain/quote-v2/HanaBondQuoteV2.json +2951 -0
- package/contracts/chain/quote-v2/HanaLauncherQuoteV2.json +2820 -0
- package/contracts/chain/quote-v2/HanaTokenQuoteV2.json +817 -0
- package/contracts/chain/quote-v2/WETH9.json +610 -0
- package/contracts/chain/quote-v2/index.d.ts +3 -0
- package/contracts/chain/quote-v2/index.js +1 -0
- package/contracts/chain/quote-v2/manifest.json +125 -0
- package/contracts/chain/quote-v2/provenance.json +20 -0
- package/contracts/chain/quote-v2/provider.d.ts +88 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +52 -4
|
@@ -0,0 +1,953 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": "HanaBondFactoryQuoteV2",
|
|
3
|
+
"version": "release-quote-v2",
|
|
4
|
+
"abi": [
|
|
5
|
+
{
|
|
6
|
+
"type": "constructor",
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"name": "router_",
|
|
10
|
+
"type": "address",
|
|
11
|
+
"internalType": "address"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "mesh_",
|
|
15
|
+
"type": "address",
|
|
16
|
+
"internalType": "address"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "launcher_",
|
|
20
|
+
"type": "address",
|
|
21
|
+
"internalType": "address"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"stateMutability": "nonpayable"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "function",
|
|
28
|
+
"name": "MAX_POINTS_BPS",
|
|
29
|
+
"inputs": [],
|
|
30
|
+
"outputs": [
|
|
31
|
+
{
|
|
32
|
+
"name": "",
|
|
33
|
+
"type": "uint256",
|
|
34
|
+
"internalType": "uint256"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"stateMutability": "view"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"type": "function",
|
|
41
|
+
"name": "bonds",
|
|
42
|
+
"inputs": [
|
|
43
|
+
{
|
|
44
|
+
"name": "",
|
|
45
|
+
"type": "address",
|
|
46
|
+
"internalType": "address"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"outputs": [
|
|
50
|
+
{
|
|
51
|
+
"name": "",
|
|
52
|
+
"type": "address",
|
|
53
|
+
"internalType": "address"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"stateMutability": "view"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"type": "function",
|
|
60
|
+
"name": "create",
|
|
61
|
+
"inputs": [
|
|
62
|
+
{
|
|
63
|
+
"name": "hana",
|
|
64
|
+
"type": "address",
|
|
65
|
+
"internalType": "address"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"name": "hanaTreasury",
|
|
69
|
+
"type": "address",
|
|
70
|
+
"internalType": "address"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "quote_",
|
|
74
|
+
"type": "address",
|
|
75
|
+
"internalType": "address"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "issuer",
|
|
79
|
+
"type": "address",
|
|
80
|
+
"internalType": "address"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "pointsBps",
|
|
84
|
+
"type": "uint256",
|
|
85
|
+
"internalType": "uint256"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "earlyReleaseAllowed",
|
|
89
|
+
"type": "bool",
|
|
90
|
+
"internalType": "bool"
|
|
91
|
+
}
|
|
92
|
+
],
|
|
93
|
+
"outputs": [
|
|
94
|
+
{
|
|
95
|
+
"name": "bond",
|
|
96
|
+
"type": "address",
|
|
97
|
+
"internalType": "address"
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"stateMutability": "nonpayable"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"type": "function",
|
|
104
|
+
"name": "launcher",
|
|
105
|
+
"inputs": [],
|
|
106
|
+
"outputs": [
|
|
107
|
+
{
|
|
108
|
+
"name": "",
|
|
109
|
+
"type": "address",
|
|
110
|
+
"internalType": "address"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"stateMutability": "view"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"type": "function",
|
|
117
|
+
"name": "meshTreasury",
|
|
118
|
+
"inputs": [],
|
|
119
|
+
"outputs": [
|
|
120
|
+
{
|
|
121
|
+
"name": "",
|
|
122
|
+
"type": "address",
|
|
123
|
+
"internalType": "address"
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"stateMutability": "view"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"type": "function",
|
|
130
|
+
"name": "pools",
|
|
131
|
+
"inputs": [
|
|
132
|
+
{
|
|
133
|
+
"name": "",
|
|
134
|
+
"type": "address",
|
|
135
|
+
"internalType": "address"
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
"outputs": [
|
|
139
|
+
{
|
|
140
|
+
"name": "",
|
|
141
|
+
"type": "address",
|
|
142
|
+
"internalType": "address"
|
|
143
|
+
}
|
|
144
|
+
],
|
|
145
|
+
"stateMutability": "view"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"type": "function",
|
|
149
|
+
"name": "quoteConfig",
|
|
150
|
+
"inputs": [
|
|
151
|
+
{
|
|
152
|
+
"name": "",
|
|
153
|
+
"type": "address",
|
|
154
|
+
"internalType": "address"
|
|
155
|
+
}
|
|
156
|
+
],
|
|
157
|
+
"outputs": [
|
|
158
|
+
{
|
|
159
|
+
"name": "virtualQuote",
|
|
160
|
+
"type": "uint256",
|
|
161
|
+
"internalType": "uint256"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"name": "enabled",
|
|
165
|
+
"type": "bool",
|
|
166
|
+
"internalType": "bool"
|
|
167
|
+
}
|
|
168
|
+
],
|
|
169
|
+
"stateMutability": "view"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"type": "function",
|
|
173
|
+
"name": "recordMigration",
|
|
174
|
+
"inputs": [
|
|
175
|
+
{
|
|
176
|
+
"name": "hana",
|
|
177
|
+
"type": "address",
|
|
178
|
+
"internalType": "address"
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"name": "pool",
|
|
182
|
+
"type": "address",
|
|
183
|
+
"internalType": "address"
|
|
184
|
+
}
|
|
185
|
+
],
|
|
186
|
+
"outputs": [],
|
|
187
|
+
"stateMutability": "nonpayable"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"type": "function",
|
|
191
|
+
"name": "router",
|
|
192
|
+
"inputs": [],
|
|
193
|
+
"outputs": [
|
|
194
|
+
{
|
|
195
|
+
"name": "",
|
|
196
|
+
"type": "address",
|
|
197
|
+
"internalType": "address"
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
"stateMutability": "view"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"type": "function",
|
|
204
|
+
"name": "setQuote",
|
|
205
|
+
"inputs": [
|
|
206
|
+
{
|
|
207
|
+
"name": "quote",
|
|
208
|
+
"type": "address",
|
|
209
|
+
"internalType": "address"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"name": "virtualQuote",
|
|
213
|
+
"type": "uint256",
|
|
214
|
+
"internalType": "uint256"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"name": "enabled",
|
|
218
|
+
"type": "bool",
|
|
219
|
+
"internalType": "bool"
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
"outputs": [],
|
|
223
|
+
"stateMutability": "nonpayable"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"type": "function",
|
|
227
|
+
"name": "v2Factory",
|
|
228
|
+
"inputs": [],
|
|
229
|
+
"outputs": [
|
|
230
|
+
{
|
|
231
|
+
"name": "",
|
|
232
|
+
"type": "address",
|
|
233
|
+
"internalType": "address"
|
|
234
|
+
}
|
|
235
|
+
],
|
|
236
|
+
"stateMutability": "view"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
"type": "function",
|
|
240
|
+
"name": "wrappedNative",
|
|
241
|
+
"inputs": [],
|
|
242
|
+
"outputs": [
|
|
243
|
+
{
|
|
244
|
+
"name": "",
|
|
245
|
+
"type": "address",
|
|
246
|
+
"internalType": "address"
|
|
247
|
+
}
|
|
248
|
+
],
|
|
249
|
+
"stateMutability": "view"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"type": "event",
|
|
253
|
+
"name": "BondCreated",
|
|
254
|
+
"inputs": [
|
|
255
|
+
{
|
|
256
|
+
"name": "hana",
|
|
257
|
+
"type": "address",
|
|
258
|
+
"indexed": true,
|
|
259
|
+
"internalType": "address"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"name": "bond",
|
|
263
|
+
"type": "address",
|
|
264
|
+
"indexed": true,
|
|
265
|
+
"internalType": "address"
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"name": "pool",
|
|
269
|
+
"type": "address",
|
|
270
|
+
"indexed": true,
|
|
271
|
+
"internalType": "address"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"name": "hanaTreasury",
|
|
275
|
+
"type": "address",
|
|
276
|
+
"indexed": false,
|
|
277
|
+
"internalType": "address"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"name": "issuer",
|
|
281
|
+
"type": "address",
|
|
282
|
+
"indexed": false,
|
|
283
|
+
"internalType": "address"
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"name": "pointsBps",
|
|
287
|
+
"type": "uint256",
|
|
288
|
+
"indexed": false,
|
|
289
|
+
"internalType": "uint256"
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"name": "earlyReleaseAllowed",
|
|
293
|
+
"type": "bool",
|
|
294
|
+
"indexed": false,
|
|
295
|
+
"internalType": "bool"
|
|
296
|
+
}
|
|
297
|
+
],
|
|
298
|
+
"anonymous": false
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"type": "event",
|
|
302
|
+
"name": "PoolRegistered",
|
|
303
|
+
"inputs": [
|
|
304
|
+
{
|
|
305
|
+
"name": "hana",
|
|
306
|
+
"type": "address",
|
|
307
|
+
"indexed": true,
|
|
308
|
+
"internalType": "address"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"name": "bond",
|
|
312
|
+
"type": "address",
|
|
313
|
+
"indexed": true,
|
|
314
|
+
"internalType": "address"
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"name": "pair",
|
|
318
|
+
"type": "address",
|
|
319
|
+
"indexed": true,
|
|
320
|
+
"internalType": "address"
|
|
321
|
+
}
|
|
322
|
+
],
|
|
323
|
+
"anonymous": false
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"type": "event",
|
|
327
|
+
"name": "QuoteConfigured",
|
|
328
|
+
"inputs": [
|
|
329
|
+
{
|
|
330
|
+
"name": "quote",
|
|
331
|
+
"type": "address",
|
|
332
|
+
"indexed": true,
|
|
333
|
+
"internalType": "address"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"name": "virtualQuote",
|
|
337
|
+
"type": "uint256",
|
|
338
|
+
"indexed": false,
|
|
339
|
+
"internalType": "uint256"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
"name": "enabled",
|
|
343
|
+
"type": "bool",
|
|
344
|
+
"indexed": false,
|
|
345
|
+
"internalType": "bool"
|
|
346
|
+
}
|
|
347
|
+
],
|
|
348
|
+
"anonymous": false
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"type": "error",
|
|
352
|
+
"name": "AlreadyRegistered",
|
|
353
|
+
"inputs": []
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"type": "error",
|
|
357
|
+
"name": "InvalidAsset",
|
|
358
|
+
"inputs": []
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
"type": "error",
|
|
362
|
+
"name": "InvalidConfiguration",
|
|
363
|
+
"inputs": []
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"type": "error",
|
|
367
|
+
"name": "ReentrancyGuardReentrantCall",
|
|
368
|
+
"inputs": []
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"type": "error",
|
|
372
|
+
"name": "SafeERC20FailedOperation",
|
|
373
|
+
"inputs": [
|
|
374
|
+
{
|
|
375
|
+
"name": "token",
|
|
376
|
+
"type": "address",
|
|
377
|
+
"internalType": "address"
|
|
378
|
+
}
|
|
379
|
+
]
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"type": "error",
|
|
383
|
+
"name": "Unauthorized",
|
|
384
|
+
"inputs": []
|
|
385
|
+
}
|
|
386
|
+
],
|
|
387
|
+
"creationBytecode": "0x61012060405234801561001157600080fd5b5060405161622a38038061622a833981016040819052610030916101d1565b60016000556001600160a01b0383163b158061005357506001600160a01b038216155b8061006557506001600160a01b038116155b156100835760405163c52a9bd360e01b815260040160405180910390fd5b6000836001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e79190610214565b90506000846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014d9190610214565b90506001600160a01b0382163b158061016e57506001600160a01b0381163b155b1561018c5760405163c52a9bd360e01b815260040160405180910390fd5b6001600160a01b0390811660805293841660a052831660c05290821660e0521661010052610236565b80516001600160a01b03811681146101cc57600080fd5b919050565b6000806000606084860312156101e657600080fd5b6101ef846101b5565b92506101fd602085016101b5565b915061020b604085016101b5565b90509250925092565b60006020828403121561022657600080fd5b61022f826101b5565b9392505050565b60805160a05160c05160e05161010051615f9c61028e6000396000818160d3015281816104ab01526105d50152600081816101170152610287015260006101d00152600061021e015260006101f70152615f9c6000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a9f9f37311610071578063a9f9f373146101b8578063b4b57c39146101cb578063eb6d3a11146101f2578063f887ea4014610219578063fba2781b14610240578063fe10d7741461025357600080fd5b806305cd2a4d146100b957806316eebd1e146100ce5780637f646d0714610112578063853472f6146101395780639cd57cad14610150578063a4063dbc1461018f575b600080fd5b6100cc6100c7366004610a95565b61027c565b005b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6101426101f481565b604051908152602001610109565b61017a61015e366004610ad3565b6001602081905260009182526040909120805491015460ff1682565b60408051928352901515602083015201610109565b6100f561019d366004610ad3565b6003602052600090815260409020546001600160a01b031681565b6100cc6101c6366004610af7565b6103b7565b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6100f561024e366004610b30565b610496565b6100f5610261366004610ad3565b6002602052600090815260409020546001600160a01b031681565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102c4576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0383163b15806102d9575081155b806103125750600a6102fa60016dffffffffffffffffffffffffffff610bbb565b610305906003610bd4565b61030f9190610beb565b82115b156103305760405163c52a9bd360e01b815260040160405180910390fd5b60408051808201825283815282151560208083018281526001600160a01b038816600081815260018085529087902095518655915194909101805460ff19169415159490941790935583518681529081019190915290917faa4837739289bc825af3edef898d9515e207195df84be3745bd39e550d19a028910160405180910390a2505050565b6001600160a01b0382811660009081526002602052604090205416331415806103e757506001600160a01b038116155b15610404576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03828116600090815260036020526040902054161561043d57604051630ea075bf60e21b815260040160405180910390fd5b6001600160a01b0382811660008181526003602052604080822080546001600160a01b0319169486169485179055513392917f61afef2e121f71511fab2583c5ac49a5dc1d7a8ad8ad91c44c8465f073a73ac491a45050565b60006104a061095c565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104e8576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03878116600090815260026020526040902054161561052157604051630ea075bf60e21b815260040160405180910390fd5b6001600160a01b0385166000908152600160208181526040928390208351808501909452805484529091015460ff16151590820181905261057557604051636448d6e960e11b815260040160405180910390fd5b856001600160a01b0316886001600160a01b0316148061059d57506001600160a01b0388163b155b806105af57506001600160a01b038716155b806105c157506001600160a01b038516155b806105cd57506101f484115b8061066b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b03166316eebd1e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190610c0d565b6001600160a01b031614155b806106db5750876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190610c2a565b60ff16601214155b806107535750876001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561071f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107439190610c4d565b6b033b2e3c9fd0803ce800000014155b1561077157604051636448d6e960e11b815260040160405180910390fd5b6000888888846000015189898960405161078a90610a5b565b6001600160a01b039788168152958716602087015293861660408601526060850192909252909316608083015260a082019290925290151560c082015260e001604051809103906000f0801580156107e6573d6000803e3d6000fd5b506001600160a01b038a8116600090815260026020526040902080546001600160a01b03191691831691909117905592508290506108328933836b0295be96e640669720000000610986565b806001600160a01b0316630f15f4c06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086d57600080fd5b505af1158015610881573d6000803e3d6000fd5b50505050806001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e79190610c0d565b604080516001600160a01b038b811682528981166020830152918101889052861515606082015291811691858216918c16907f21de952fe499d7b6411019b8d0a02cb47d3c36c6e384a8c8dd50d257f214cb519060800160405180910390a450506109526001600055565b9695505050505050565b60026000540361097f57604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526109e09085906109e6565b50505050565b600080602060008451602086016000885af180610a09576040513d6000823e3d81fd5b50506000513d91508115610a21578060011415610a2e565b6001600160a01b0384163b155b156109e057604051635274afe760e01b81526001600160a01b038516600482015260240160405180910390fd5b61530080610c6783390190565b6001600160a01b0381168114610a7d57600080fd5b50565b80358015158114610a9057600080fd5b919050565b600080600060608486031215610aaa57600080fd5b8335610ab581610a68565b925060208401359150610aca60408501610a80565b90509250925092565b600060208284031215610ae557600080fd5b8135610af081610a68565b9392505050565b60008060408385031215610b0a57600080fd5b8235610b1581610a68565b91506020830135610b2581610a68565b809150509250929050565b60008060008060008060c08789031215610b4957600080fd5b8635610b5481610a68565b95506020870135610b6481610a68565b94506040870135610b7481610a68565b93506060870135610b8481610a68565b925060808701359150610b9960a08801610a80565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b81810381811115610bce57610bce610ba5565b92915050565b8082028115828204841417610bce57610bce610ba5565b600082610c0857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610c1f57600080fd5b8151610af081610a68565b600060208284031215610c3c57600080fd5b815160ff81168114610af057600080fd5b600060208284031215610c5f57600080fd5b505191905056fe61024060405234801561001157600080fd5b50604051615300380380615300833981016040819052610030916104c1565b6001600055336102208190526001600160a01b0388811660805287811660a052861660c0526040805163eb6d3a1160e01b8152905163eb6d3a11916004808201926020929091908290030181865afa158015610090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b49190610544565b6001600160a01b03166101a0816001600160a01b031681525050610220516001600160a01b031663f887ea406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561010f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101339190610544565b6001600160a01b031660e0816001600160a01b031681525050610220516001600160a01b031663b4b57c396040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b19190610544565b6001600160a01b0316610100816001600160a01b031681525050610220516001600160a01b0316637f646d076040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102309190610544565b6001600160a01b03908116610120528316610160526101c0829052612710610264836b033b2e3c9fd0803ce8000000610566565b61026e9190610591565b6101e052801515610200526101808490526101005160c05160405163e6a4390560e01b81526001600160a01b038a811660048301529182166024820152600092919091169063e6a4390590604401602060405180830381865afa1580156102d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fd9190610544565b90506001600160a01b03811661038d576101005160c0516040516364e329cb60e11b81526001600160a01b038b81166004830152918216602482015291169063c9c65396906044016020604051808303816000875af1158015610364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103889190610544565b61038f565b805b6001600160a01b031661014081905215806104325750610140516101005160c05160405163e6a4390560e01b81526001600160a01b038c8116600483015291821660248201529281169291169063e6a4390590604401602060405180830381865afa158015610402573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104269190610544565b6001600160a01b031614155b1561044f5760405162820f3560e61b815260040160405180910390fd5b6001600160a01b03871630148061047a5750610140516001600160a01b0316876001600160a01b0316145b156104985760405163d69b537960e01b815260040160405180910390fd5b50505050505050506105b3565b80516001600160a01b03811681146104bc57600080fd5b919050565b600080600080600080600060e0888a0312156104dc57600080fd5b6104e5886104a5565b96506104f3602089016104a5565b9550610501604089016104a5565b60608901519095509350610517608089016104a5565b60a089015160c08a01519194509250801515811461053457600080fd5b8091505092959891949750929550565b60006020828403121561055657600080fd5b61055f826104a5565b9392505050565b808202811582820484141761058b57634e487b7160e01b600052601160045260246000fd5b92915050565b6000826105ae57634e487b7160e01b600052601260045260246000fd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051614afb6108056000396000818161073101528181610db101526134a501526000818161064701526117fc015260006106ae01526000610a1301526000818161032e01528181610a67015281816113c001526120ab01526000818161042b0152611a010152600081816104be01526117bd01526000818161047201528181610c3901528181610ce801528181611a5e015281816123d10152818161288501528181612b3601528181612df201528181612e9e0152818161310901528181613154015281816133da0152818161347d01526135410152600081816107650152818161153c015281816122fa0152818161333b015261338601526000818161092b0152612b5c01526000610a9b01526000818161086701528181610d16015281816113ea0152818161142d015281816114a5015281816114d00152818161151b01528181612036015281816120d50152818161212f015281816121b2015281816121f80152818161228e015281816122d901528181612b0901528181612ece01528181613133015281816132a80152613365015260008181610acf015281816114f101526122af01526000818161095f01528181610c6401528181610e3a0152818161126d015281816112e70152818161132d0152818161172701528181611b960152818161232401528181612ae101528181612dc3015281816130e80152818161321a0152818161331a0152818161344c015261361a0152614afb6000f3fe60806040526004361061031e5760003560e01c80637f646d07116101ab578063a8aa1b31116100f7578063c979e56b11610095578063e4d453e01161006f578063e4d453e014610a35578063eb6d3a1114610a55578063f887ea4014610a89578063f892d87b14610abd57600080fd5b8063c979e56b146109cb578063d51684a7146109eb578063d6b852c214610a0157600080fd5b8063b4e0ecf2116100d1578063b4e0ecf21461094d578063c2d107f114610981578063c796817b14610996578063c8cfaae4146109b657600080fd5b8063a8aa1b31146108da578063aedf220b14610903578063b4b57c391461091957600080fd5b8063900ef0ee1161016457806398aaa62b1161013e57806398aaa62b1461083f578063999b93af146108555780639ef27b0014610889578063a64190c41461089f57600080fd5b8063900ef0ee146107fd5780639042454314610813578063942062521461082957600080fd5b80637f646d07146107535780638113f0d9146107875780638a038a541461079c5780638b21e484146107bc5780638ee25281146107d25780638fd3ab80146107e857600080fd5b806332b8b2151161026a5780634cecd3f61161022357806361f5b8b3116101fd57806361f5b8b31461069c5780636be6e9d9146106d05780636fed787d146106f05780637b1039991461071f57600080fd5b80634cecd3f6146106355780634e80955c14610669578063554a21891461068957600080fd5b806332b8b215146105755780633833a4f11461058b5780633ded58be146105a057806343fd3cdd146105e057806346d201ee146105f55780634acc79ed1461061557600080fd5b806316875160116102d7578063252c09d7116102b1578063252c09d7146104e057806327efc086146105155780632861c7d1146105355780632c678c641461055457600080fd5b8063168751601461044d57806316f0115b146104605780631d143848146104ac57600080fd5b806302c7e7af1461037357806302fb0c5e1461039c57806306731d33146103cd5780630f15f4c0146103ef57806313821bf714610404578063147ece661461041957600080fd5b3661036e57336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461036c57604051632f35253160e01b815260040160405180910390fd5b005b600080fd5b34801561037f57600080fd5b5061038960015481565b6040519081526020015b60405180910390f35b3480156103a857600080fd5b506049546103bd90600160c81b900460ff1681565b6040519015158152602001610393565b3480156103d957600080fd5b506103e2610af1565b60405161039391906147f1565b3480156103fb57600080fd5b5061036c610da6565b34801561041057600080fd5b50610389603c81565b34801561042557600080fd5b506103897f000000000000000000000000000000000000000000000000000000000000000081565b61038961045b36600461487d565b610ee0565b34801561046c57600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610393565b3480156104b857600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ec57600080fd5b506105006104fb3660046148a9565b610f58565b60408051928352602083019190915201610393565b34801561052157600080fd5b506103896b033b2e3c9fd0803ce800000081565b34801561054157600080fd5b506103896a7c13bc4b2c133c5600000081565b34801561056057600080fd5b506049546103bd90600160d01b900460ff1681565b34801561058157600080fd5b5061038961070881565b34801561059757600080fd5b50610389610f7a565b3480156105ac57600080fd5b506105c06105bb3660046148a9565b610f94565b604080519485526020850193909352918301526060820152608001610393565b3480156105ec57600080fd5b5061038960c881565b34801561060157600080fd5b506103896106103660046148d7565b611038565b34801561062157600080fd5b506105006106303660046148a9565b611073565b34801561064157600080fd5b506103bd7f000000000000000000000000000000000000000000000000000000000000000081565b34801561067557600080fd5b506103896b02baf7b5c99a6c5c6d00000081565b61038961069736600461487d565b6110ad565b3480156106a857600080fd5b506103897f000000000000000000000000000000000000000000000000000000000000000081565b3480156106dc57600080fd5b506103896b0219aada9b14535aca00000081565b3480156106fc57600080fd5b5060495461071290640100000000900460ff1681565b60405161039391906148f4565b34801561072b57600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b34801561075f57600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b34801561079357600080fd5b506103896110f0565b3480156107a857600080fd5b506103896107b7366004614902565b6110ff565b3480156107c857600080fd5b50610389604a5481565b3480156107de57600080fd5b5061038960045481565b3480156107f457600080fd5b506103bd6115d5565b34801561080957600080fd5b5061038960055481565b34801561081f57600080fd5b50610389604b5481565b34801561083557600080fd5b5061038960085481565b34801561084b57600080fd5b5061038960025481565b34801561086157600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b34801561089557600080fd5b5061038960075481565b3480156108ab57600080fd5b506108bf6108ba3660046148a9565b611655565b60408051938452602084019290925290820152606001610393565b3480156108e657600080fd5b50604954610494906501000000000090046001600160a01b031681565b34801561090f57600080fd5b5061038960035481565b34801561092557600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b34801561095957600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b34801561098d57600080fd5b50610389602081565b3480156109a257600080fd5b506103896109b13660046148d7565b6116c1565b3480156109c257600080fd5b5061036c6117aa565b3480156109d757600080fd5b506105c06109e63660046148a9565b611895565b3480156109f757600080fd5b5061038960065481565b348015610a0d57600080fd5b506103897f000000000000000000000000000000000000000000000000000000000000000081565b348015610a4157600080fd5b50610389610a503660046148a9565b6119b0565b348015610a6157600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b348015610a9557600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b348015610ac957600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b610b47604080516101408101825260008082526020820181905291810182905290606082019081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6b0219aada9b14535aca000000600154148015610b6e5750604954600160c81b900460ff16155b1515815260495460ff600160d01b820481161515602084015260608301916401000000009004166003811115610ba657610ba66147b9565b90816003811115610bb957610bb96147b9565b9052506007546080820152604a5460a082015260085460c0820152600080610bdf611a57565b915091508115610c2257600080610bf583611d66565b80158015604089015260e088018290529193509150610c1f57610c18818361496d565b6101008601525b50505b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd19190614981565b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610d5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d819190614981565b90508115610d9f57610d9881600160701b84611e78565b6101208601525b5050505090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141580610de75750604954600160c81b900460ff165b15610e04576040516282b42960e81b815260040160405180910390fd5b610e256a7c13bc4b2c133c560000006b0219aada9b14535aca00000061499a565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190614981565b14610ecb57604051632f35253160e01b815260040160405180910390fd5b6049805460ff60c81b1916600160c81b179055565b6000610eea611f2d565b6000806000610ef887610f94565b929650909450925090508581610f0e848661499a565b610f18919061499a565b1115610f37576040516307dd37f760e41b815260040160405180910390fd5b610f448484848489611f57565b505050610f516001600055565b9392505050565b60098160208110610f6857600080fd5b60020201805460019091015490915082565b6000604b54600003610f8d5750604a5490565b50604b5490565b600080600080610fa2612469565b84600003610fc35760405163d69b537960e01b815260040160405180910390fd5b600154610fdc906b0219aada9b14535aca0000006149ad565b8511610fe85784611001565b600154611001906b0219aada9b14535aca0000006149ad565b935060025461101785600154610a50919061499a565b61102191906149ad565b925061102c83611073565b94969395509392915050565b604954600090600160d01b900460ff1661106a576001600160a01b0382166000908152604c602052604090205461106d565b60005b92915050565b6000806103e86110848460046149c0565b61108e919061496d565b91508161109c60648561496d565b6110a691906149ad565b9050915091565b60006110b7611f2d565b60008060006110c587611895565b9296509094509250905085841015610f37576040516307dd37f760e41b815260040160405180910390fd5b6110fc603c60206149c0565b81565b6000611109611f2d565b611112826124a9565b6001600160a01b038316158061113057506001600160a01b03831630145b1561114e5760405163d69b537960e01b815260040160405180910390fd5b336000908152604c60205260409020548086111561117f57604051632c5374f960e01b815260040160405180910390fd5b600080600061118d89611655565b919450925090508061119f83856149ad565b6111a991906149ad565b9450878510156111cc576040516307dd37f760e41b815260040160405180910390fd5b6111d689856149ad565b336000818152604c60205260409020919091557fb2e960e0adf7f3443afba08bed10ecb80f72394e72e60f9e4c325e6bce0132bf6112148b876149ad565b60405190815260200160405180910390a2886001600082825461123791906149ad565b92505081905550826002600082825461125091906149ad565b90915550506040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e09190614981565b905061130e7f000000000000000000000000000000000000000000000000000000000000000033308d6124cd565b6113188a8261499a565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a09190614981565b146113be57604051632f35253160e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036114a057604051632e1a7d4d60e01b8152600481018790527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561147957600080fd5b505af115801561148d573d6000803e3d6000fd5b5050505061149b888761253a565b6114cb565b6114cb7f000000000000000000000000000000000000000000000000000000000000000089886125bf565b6115167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000856125bf565b6115617f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000846125bf565b604080518b815260208101869052908101849052606081018390526001600160a01b0389169033907f89bc96e242cf3b1e6040a8f5123c29dbf1e48d876ded5856f1668191a8a7658e9060800160405180910390a36115be6127ca565b50505050506115cd6001600055565b949350505050565b60006115df611f2d565b604954600160d01b900460ff16156115f957506001611648565b6b0219aada9b14535aca00000060015414158061161f5750604954600160c81b900460ff165b1561163d57604051631cdde67b60e01b815260040160405180910390fd5b6116456127fd565b90505b6116526001600055565b90565b6000806000611662612469565b831580611670575060015484115b1561168e5760405163d69b537960e01b815260040160405180910390fd5b61169f84600154610a5091906149ad565b6002546116ac91906149ad565b92506116b783611073565b9395909450915050565b604954600090600160c81b900460ff1615806116e65750604954600160d01b900460ff165b156116f357506000919050565b6001600160a01b038281166000818152604c60205260408082205490516370a0823160e01b815260048101939093529290917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015611770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117949190614981565b90508082106117a357806115cd565b5092915050565b6117b2611f2d565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117fa576040516282b42960e81b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015806118285750604b5415155b156118465760405163cae54ae360e01b815260040160405180910390fd5b61184e612469565b42604b81905560405190815233907f85e1ef7b0313e3485755af9d396b0e69d958f9930ba5f57564127a6f61b6eefd9060200160405180910390a26118936001600055565b565b6000806000806118a3612469565b846000036118c45760405163d69b537960e01b815260040160405180910390fd5b6000806001546b0219aada9b14535aca0000006118e191906149ad565b90505b8082101561197557600060026118fa84846149ad565b61190590600161499a565b61190f919061496d565b611919908461499a565b9050600060025461193183600154610a50919061499a565b61193b91906149ad565b90508861194960648361496d565b611953908361499a565b116119605781935061196e565b61196b6001836149ad565b92505b50506118e4565b816000036119965760405163d69b537960e01b815260040160405180910390fd5b61199f82610f94565b955095509550955050509193509193565b60006b0219aada9b14535aca0000008211156119df5760405163d69b537960e01b815260040160405180910390fd5b60006119f7836b02baf7b5c99a6c5c6d0000006149ad565b90506000611a25847f00000000000000000000000000000000000000000000000000000000000000006149c0565b9050611a3182826149d7565b15611a3d576001611a40565b60005b60ff16611a4d838361496d565b6115cd919061499a565b60008060007f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611abd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae19190614981565b600003611af357506000928392509050565b6000806000836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a9190614a07565b925092509250826001600160701b031660001480611b7f57506001600160701b038216155b15611b9257506000958695509350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c209190614a57565b6001600160a01b031614905080611c9857846001600160a01b0316635a3d54936040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c939190614981565b611cfa565b846001600160a01b0316635909c0d56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfa9190614981565b9550600081611d095783611d0b565b845b6001600160701b03169050600082611d235785611d25565b845b6001600160701b031690504284900363ffffffff811683600160701b840281611d5057611d50614941565b0402890198505060019850505050505050509091565b600080610708421015611d7e57506000928392509050565b6000611d8c610708426149ad565b905060008060005b6020811015611e5157604954600163ffffffff8381169190911b9091161615611e4957600060098260208110611dcc57611dcc614a74565b600202016040518060400160405290816000820154815260200160018201548152505090508481600001511180611e185750611e0a603c60206149c0565b8151611e1690426149ad565b115b15611e235750611e49565b831580611e305750805183105b15611e475780516020820151890397506001945092505b505b600101611d94565b50818015611e5e57508415155b15611e7057611e6d81426149ad565b93505b505050915091565b6000806000611e8786866128ed565b9150915081600003611eac57838181611ea257611ea2614941565b0492505050610f51565b818411611ec357611ec3600385150260111861290b565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b600260005403611f5057604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b611f60816124a9565b336000908152604c6020526040812054611f7b90879061499a565b336000818152604c60205260409081902083905551919250907fb2e960e0adf7f3443afba08bed10ecb80f72394e72e60f9e4c325e6bce0132bf90611fc39084815260200190565b60405180910390a28560016000828254611fdd919061499a565b925050819055508460026000828254611ff6919061499a565b909155506000905083612009868861499a565b612013919061499a565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561207d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a19190614981565b905034156121a7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614158061210957508134105b156121275760405163d69b537960e01b815260040160405180910390fd5b81156121a2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561218857600080fd5b505af115801561219c573d6000803e3d6000fd5b50505050505b6121d9565b81156121d9576121d97f00000000000000000000000000000000000000000000000000000000000000003330856124cd565b6121e3828261499a565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226b9190614981565b1461228957604051632f35253160e01b815260040160405180910390fd5b6122d47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000886125bf565b61231f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000876125bf565b61234a7f0000000000000000000000000000000000000000000000000000000000000000338a6125bf565b60408051898152602081018990529081018790526060810186905233907f27330bd7589580547b6437e08f9c60653de63691d2d2b2c13bff9ee67da2a68d9060800160405180910390a26b0219aada9b14535aca0000006001540361243c576049805460ff60c81b1916905542600781905560025460088190556040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016927ffa93b615fecab715dce428daa1553fb5c24c02f50a81d4971bb86b1937e3c4f29261242692918252602082015260400190565b60405180910390a26124366127fd565b50612444565b6124446127ca565b8134111561245f5761245f3361245a84346149ad565b61253a565b5050505050505050565b604954600160c81b900460ff16158061248b5750604954600160d01b900460ff165b1561189357604051631cdde67b60e01b815260040160405180910390fd5b428110156124ca5760405163d69b537960e01b815260040160405180910390fd5b50565b6040516001600160a01b0384811660248301528381166044830152606482018390526125349186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061291d565b50505050565b80600003612546575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612593576040519150601f19603f3d011682016040523d82523d6000602084013e612598565b606091505b50509050806125ba57604051632f35253160e01b815260040160405180910390fd5b505050565b806000036125cc57505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015612613573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126379190614981565b6040516370a0823160e01b81526001600160a01b0385811660048301529192506000918616906370a0823190602401602060405180830381865afa158015612683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a79190614981565b90506126b4858585612992565b6126be83836149ad565b6040516370a0823160e01b81523060048201526001600160a01b038716906370a0823190602401602060405180830381865afa158015612702573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127269190614981565b1415806127a55750612738838261499a565b6040516370a0823160e01b81526001600160a01b0386811660048301528716906370a0823190602401602060405180830381865afa15801561277e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a29190614981565b14155b156127c357604051632f35253160e01b815260040160405180910390fd5b5050505050565b6000806127d5611a57565b9150915081156127ec576127e8816129c3565b5050565b6049805463ffffffff191690555050565b600080600061280a611a57565b9150915060008083156128335761282083611d66565b909250905061282e836129c3565b612841565b6049805463ffffffff191690555b600061284d8383612aca565b9096509050856128e5576049805482919064ff00000000191664010000000083600381111561287e5761287e6147b9565b02179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f886f47bb880c2e015d8bdca3a345bd9578546a41b00952e356923daa465d1f60826040516128dc91906148f4565b60405180910390a25b505050505090565b60008060001983850993909202808410938190039390930393915050565b634e487b71600052806020526024601cfd5b600080602060008451602086016000885af180612940576040513d6000823e3d81fd5b50506000513d91508115612958578060011415612965565b6001600160a01b0384163b155b1561253457604051635274afe760e01b81526001600160a01b038516600482015260240160405180910390fd5b6040516001600160a01b038381166024830152604482018390526125ba91859182169063a9059cbb90606401612502565b60006129d0603c4261496d565b905060006129df6020836149d7565b604954909150600163ffffffff8084169190911b918216161580612a26575082603c60098460208110612a1457612a14614a74565b6002020154612a23919061496d565b14155b156125345760405180604001604052804281526020018581525060098360208110612a5357612a53614a74565b8251600291909102919091019081556020918201516001909101556049805463ffffffff8481169082161763ffffffff199091161790556040805142815291820186905283917f5d2f23d17c4ad5347ae00f7c12f3c1b984d44422cecfcba0009c80d996899f72910160405180910390a250505050565b60405163e6a4390560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000008116602483015260009182917f000000000000000000000000000000000000000000000000000000000000000091828216917f0000000000000000000000000000000000000000000000000000000000000000169063e6a4390590604401602060405180830381865afa158015612ba3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc79190614a57565b6001600160a01b031614612bed5760405162820f3560e61b815260040160405180910390fd5b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c519190614981565b6000141590506000808215612dae57836001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c9b57600080fd5b505af1158015612caf573d6000803e3d6000fd5b50505050600080612cbf866135ab565b915091508160001480612cd0575080155b15612ced5760405162820f3560e61b815260040160405180910390fd5b88600003612d085760006001975097505050505050506135a4565b612d1482828c8c6136eb565b612d2b5760006002975097505050505050506135a4565b6000612d526a7c13bc4b2c133c56000000612d4d856001600160701b036149ad565b613772565b600854909150600090612d7090612d4d856001600160701b036149ad565b90506000612d7f838587611e78565b9050818111612d9357829650809550612da4565b612d9e828686611e78565b96508195505b50505050506130e3565b600080612dba866135ab565b915091506000827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401612e3c91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7d9190614981565b612e8791906149ad565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291925060009184917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015612f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f3b9190614981565b612f4591906149ad565b90506000886001600160a01b031663ba9a7a566040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fab9190614981565b612fb690600161499a565b905060006130556040518060e00160405280888152602001878152602001612fff876a7c13bc4b2c133c56000000612fee919061499a565b612d4d8b6001600160701b036149ad565b815260200161302686600854613015919061499a565b612d4d8a6001600160701b036149ad565b81526a7c13bc4b2c133c560000006020820152600854604082015260600161304e85806149c0565b9052613782565b9050806040015161307757600060039b509b50505050505050505050506135a4565b8051602082015160405163bc25cf7760e01b815230600482015291995097506001600160a01b038b169063bc25cf7790602401600060405180830381600087803b1580156130c457600080fd5b505af11580156130d8573d6000803e3d6000fd5b505050505050505050505b61312e7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000846125bf565b6131797f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000836125bf565b6040516335313c2160e11b8152600060048201819052906001600160a01b03861690636a627842906024016020604051808303816000875af11580156131c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e79190614981565b90506000806131f5876135ab565b6040516370a0823160e01b815230600482015291935091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015613261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132859190614981565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156132ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133139190614981565b90506133607f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000846125bf565b6133ab7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000836125bf565b6049805460048990556003889055600586905560068590556000600281905560ff60d01b196001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166501000000000002166501000000000061ff0160c81b031990921691909117600160d01b1780835542604a5590919064ff00000000191664010000000083021790555060405163a9f9f37360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063a9f9f37390604401600060405180830381600087803b1580156134e957600080fd5b505af11580156134fd573d6000803e3d6000fd5b5050604080518a8152602081018a905290810188905260608101859052608081018490528a151560a082015260c0810187905260e081018690526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692507f6245a4f316997e7f00a4d4bf01393dc71253e3f9b060b14e31ecad684d753f4891506101000160405180910390a2600160009a509a505050505050505050505b9250929050565b600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156135ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136139190614a07565b50915091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015613680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a49190614a57565b6001600160a01b0316146136cb57806001600160701b0316826001600160701b03166136e0565b816001600160701b0316816001600160701b03165b935093505050915091565b6000806136fc600160701b846149c0565b613708906127106149c0565b9050600061372f61371c60c86127106149ad565b61372690896149c0565b86846001613ae7565b9050600061375461374360c861271061499a565b61374d908a6149c0565b8785611e78565b90508187101580156137665750808711155b98975050505050505050565b6000828218828410028218610f51565b6137a8604051806060016040528060008152602001600081526020016000151581525090565b604082015115806137bb57506060820151155b806137da575081606001516137d88360c001518460400151613b34565b115b156137e457919050565b60006137f883608001518460a00151613b66565b9050600081846080015161380c919061496d565b90506000828560a00151613820919061496d565b90506000613865838760400151886000015161383c919061499a565b613846919061496d565b838860600151896020015161385b919061499a565b612d4d919061496d565b865190915061387484836149c0565b11801561388d5750602086015161388b83836149c0565b115b156138e25785516138cd9087906138a486856149c0565b6138ae91906149ad565b60208901516138bd86866149c0565b6138c791906149ad565b88613b8c565b94508460400151156138e25750505050919050565b60006138f38760c001516001613dd0565b90508087604001511015801561390d575080876060015110155b15613a375760008760c00151905060006040518060800160405280613936848c60600151613b34565b8b51613942919061499a565b81526020018a604001518b6000015161395b919061499a565b815260200161396e848c60400151613b34565b8b6020015161397d919061499a565b81526020018a606001518b60200151613996919061499a565b9052600160c08b015290506139ae898260008b613e01565b97506139bd898260018b613e01565b60c08a018390526020810151815191995083916139da91906149c0565b106139eb5750505050505050919050565b6000604089015288516139ff90849061499a565b81526020890151613a1190849061499a565b6040820152613a23898260008b613e01565b9750613a32898260018b613e01565b975050505b6000613a4e8860400151600184612d4d91906149ad565b9050613a628860c001518960600151613b34565b94505b808511613a8b57613a77888689613ffc565b965084613a8381614a8a565b955050613a65565b6060880151613a9f90612d4d6001856149ad565b9050613ab38860c001518960400151613b34565b93505b808411613adc57613ac88885896140c4565b965083613ad481614a8a565b945050613ab6565b505050505050919050565b6000613b16613af58361418b565b8015613b11575060008480613b0c57613b0c614941565b868809115b151590565b613b21868686611e78565b613b2b919061499a565b95945050505050565b6000613b4082846149d7565b15613b4c576001613b4f565b60005b60ff16613b5c838561496d565b610f51919061499a565b60005b8115613b85576000613b7b83856149d7565b929350613b699050565b5090919050565b613bb2604051806060016040528060008152602001600081526020016000151581525090565b831580613bbd575082155b80613bcb5750846040015184115b80613bd95750846060015183115b80613bf0575082613bee8660c0015186613b34565b115b15613bfc5750806115cd565b8160400151613c2a5760405180606001604052808581526020018481526020016001151581525090506115cd565b60008560800151848760200151613c41919061499a565b613c4b91906149c0565b905060008660a00151868860000151613c64919061499a565b613c6e91906149c0565b90506000818311613c8857613c8383836149ad565b613c92565b613c9282846149ad565b9050876080015185602001518960200151613cad919061499a565b613cb791906149c0565b60a089015186518a519295509091613ccf919061499a565b613cd991906149c0565b91506000828411613cf357613cee84846149ad565b613cfd565b613cfd83856149ad565b9050600080613d1f8489600001518d60000151613d1a919061499a565b6128ed565b91509150600080613d3a858d8f60000151613d1a919061499a565b9150915081841080613d5557508184148015613d5557508083105b80613d8d57508184148015613d6957508083145b8015613d8d575060208a01518a51613d8191906149c0565b613d8b8c8e6149c0565b115b15613dbf5760405180606001604052808d81526020018c815260200160011515815250985050505050505050506115cd565b50979b9a5050505050505050505050565b600080613ddc846141b8565b9050613df9613dea8461418b565b8015613b115750818002851190565b019392505050565b613e27604051806060016040528060008152602001600081526020016000151581525090565b6000613e3d858760a00151886080015187614311565b905083613e4b578015613e93565b84604001518560600151613e5f91906149ad565b613e6a90600161499a565b85516020870151613e7b91906149ad565b613e8690600161499a565b613e9091906149c0565b81145b15613ea157829150506115cd565b6040805180820182526000808252600160208084018290528451808601909552908452830152905b606087015181518351613edc919061499a565b11158015613f015750866020015181602001518360200151613efe919061499a565b11155b15613f6d5780518251600091613f37918a91613f1c9161499a565b84602001518660200151613f30919061499a565b878b614502565b90508015613f5557613f4e888484878b6001614538565b9250613f67565b613f64888385878b6000614538565b91505b50613ec9565b600086613f7a5782613f7c565b815b90506000613fa882602001518a60200151613f97919061496d565b835160608c0151612d4d919061496d565b9050613fee8a8b60000151846020015184613fc391906149c0565b613fcd91906149ad565b60208d01518551613fde90866149c0565b613fe891906149ad565b8a613b8c565b9a9950505050505050505050565b614022604051806060016040528060008152602001600081526020016000151581525090565b60006140328560c0015185613b34565b8560200151614041919061499a565b9050600085606001518660200151614059919061499a565b9050600061407f868860000151614070919061499a565b8860a001518960800151611e78565b9050614096878789602001516138bd8588886146b0565b94506140b9878789602001516138bd8560016140b2919061499a565b88886146b0565b979650505050505050565b6140ea604051806060016040528060008152602001600081526020016000151581525090565b60006140fa8560c0015185613b34565b8551614106919061499a565b905060008560400151866000015161411e919061499a565b90506000614144868860200151614135919061499a565b88608001518960a00151611e78565b905061416b87886000015161415a8487876146b0565b61416491906149ad565b8888613b8c565b87519095506140b990889061415a61418485600161499a565b87876146b0565b600060028260038111156141a1576141a16147b9565b6141ab9190614aa3565b60ff166001149050919050565b6000600182116141c6575090565b816001600160801b82106141df5760809190911c9060401b5b6801000000000000000082106141fa5760409190911c9060201b5b64010000000082106142115760209190911c9060101b5b6201000082106142265760109190911c9060081b5b610100821061423a5760089190911c9060041b5b6010821061424d5760049190911c9060021b5b600482106142595760011b5b600302600190811c9081858161427157614271614941565b048201901c9050600181858161428957614289614941565b048201901c905060018185816142a1576142a1614941565b048201901c905060018185816142b9576142b9614941565b048201901c905060018185816142d1576142d1614941565b048201901c905060018185816142e9576142e9614941565b048201901c905061430881858161430257614302614941565b04821190565b90039392505050565b600082600003614367578460400151856060015161432f91906149ad565b61433a90600161499a565b8551602087015161434b91906149ad565b61435690600161499a565b61436091906149c0565b90506115cd565b83600003614377575060006115cd565b60006143ca8660000151846143a45761439f86896040015161439991906149c0565b88613b34565b6146d4565b868689604001516143b591906149c0565b6143bf919061496d565b61439f90600161499a565b905060006144058760000151856143f45761439f878a606001516143ee91906149c0565b89613b34565b87878a606001516143b591906149c0565b905086602001518111614459578660400151876060015161442691906149ad565b61443190600161499a565b81886020015161444191906149ad565b61444c90600161499a565b61445691906149c0565b92505b60006144708860200151600184612d4d91906149ad565b90508083116144f757600061448584836149ad565b61449090600161499a565b90508060018a604001516144a491906149ad565b6144ae91906149c0565b6144df82898b8a6144c05760006144c3565b60015b60ff166144d08a8f6149c0565b6144da91906149ad565b6146e4565b6144e991906149ad565b6144f3908661499a565b9450505b505050949350505050565b60008161451d57826145178787876001614311565b1061452e565b8261452b8787876000614311565b11155b9695505050505050565b604080518082019091526000808252602082015284516000906145af901561457c578651885160608b015161456d91906149ad565b614577919061496d565b614582565b88602001515b6020880151156145a557876020015189602001518b6020015161385b91906149ad565b8960600151613772565b905060015b8181101561465657600060026145ca83856149ad565b6145d590600161499a565b6145df919061496d565b6145e9908361499a565b90508415156146338b8a600001518461460291906149c0565b8c5161460e919061499a565b60208c015161461d90866149c0565b8d6020015161462c919061499a565b8b8b614502565b15150361464257809150614650565b61464d6001826149ad565b92505b506145b4565b604051806040016040528088600001518361467191906149c0565b8a5161467d919061499a565b815260200188602001518361469291906149c0565b8a602001516146a1919061499a565b90529998505050505050505050565b60008284106146cc578184116146c657836115cd565b816115cd565b509092915050565b6000828218828411028218610f51565b60005b83831061473c576146f8848461496d565b60026147056001886149ad565b61470f90886149c0565b614719919061496d565b61472391906149c0565b61472d908261499a565b905061473984846149d7565b92505b8382106147705761474d848361496d565b61475790866149c0565b614761908261499a565b905061476d84836149d7565b91505b60008261477d87866149c0565b614787919061499a565b90508481101561479757506115cd565b6147a1858261496d565b95506147ad85826149d7565b93949392506146e79050565b634e487b7160e01b600052602160045260246000fd5b600481106147ed57634e487b7160e01b600052602160045260246000fd5b9052565b8151151581526101408101602083015161480f602084018215159052565b506040830151614823604084018215159052565b50606083015161483660608401826147cf565b506080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015261012083015161012083015292915050565b60008060006060848603121561489257600080fd5b505081359360208301359350604090920135919050565b6000602082840312156148bb57600080fd5b5035919050565b6001600160a01b03811681146124ca57600080fd5b6000602082840312156148e957600080fd5b8135610f51816148c2565b6020810161106d82846147cf565b6000806000806080858703121561491857600080fd5b84359350602085013592506040850135614931816148c2565b9396929550929360600135925050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261497c5761497c614941565b500490565b60006020828403121561499357600080fd5b5051919050565b8082018082111561106d5761106d614957565b8181038181111561106d5761106d614957565b808202811582820484141761106d5761106d614957565b6000826149e6576149e6614941565b500690565b80516001600160701b0381168114614a0257600080fd5b919050565b600080600060608486031215614a1c57600080fd5b614a25846149eb565b9250614a33602085016149eb565b9150604084015163ffffffff81168114614a4c57600080fd5b809150509250925092565b600060208284031215614a6957600080fd5b8151610f51816148c2565b634e487b7160e01b600052603260045260246000fd5b600060018201614a9c57614a9c614957565b5060010190565b600060ff831680614ab657614ab6614941565b8060ff8416069150509291505056fea2646970667358221220c05e5681bf37683440183c9bbaa0dfb163caab8d0f31ead556d000c8b959713b64736f6c634300081a0033a26469706673582212200193342308f3ccf6202171a54a918fe4b4bd2628879354f18800fc0bc3edfca064736f6c634300081a0033",
|
|
388
|
+
"runtimeTemplate": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a9f9f37311610071578063a9f9f373146101b8578063b4b57c39146101cb578063eb6d3a11146101f2578063f887ea4014610219578063fba2781b14610240578063fe10d7741461025357600080fd5b806305cd2a4d146100b957806316eebd1e146100ce5780637f646d0714610112578063853472f6146101395780639cd57cad14610150578063a4063dbc1461018f575b600080fd5b6100cc6100c7366004610a95565b61027c565b005b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6101426101f481565b604051908152602001610109565b61017a61015e366004610ad3565b6001602081905260009182526040909120805491015460ff1682565b60408051928352901515602083015201610109565b6100f561019d366004610ad3565b6003602052600090815260409020546001600160a01b031681565b6100cc6101c6366004610af7565b6103b7565b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6100f57f000000000000000000000000000000000000000000000000000000000000000081565b6100f561024e366004610b30565b610496565b6100f5610261366004610ad3565b6002602052600090815260409020546001600160a01b031681565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102c4576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0383163b15806102d9575081155b806103125750600a6102fa60016dffffffffffffffffffffffffffff610bbb565b610305906003610bd4565b61030f9190610beb565b82115b156103305760405163c52a9bd360e01b815260040160405180910390fd5b60408051808201825283815282151560208083018281526001600160a01b038816600081815260018085529087902095518655915194909101805460ff19169415159490941790935583518681529081019190915290917faa4837739289bc825af3edef898d9515e207195df84be3745bd39e550d19a028910160405180910390a2505050565b6001600160a01b0382811660009081526002602052604090205416331415806103e757506001600160a01b038116155b15610404576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03828116600090815260036020526040902054161561043d57604051630ea075bf60e21b815260040160405180910390fd5b6001600160a01b0382811660008181526003602052604080822080546001600160a01b0319169486169485179055513392917f61afef2e121f71511fab2583c5ac49a5dc1d7a8ad8ad91c44c8465f073a73ac491a45050565b60006104a061095c565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104e8576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03878116600090815260026020526040902054161561052157604051630ea075bf60e21b815260040160405180910390fd5b6001600160a01b0385166000908152600160208181526040928390208351808501909452805484529091015460ff16151590820181905261057557604051636448d6e960e11b815260040160405180910390fd5b856001600160a01b0316886001600160a01b0316148061059d57506001600160a01b0388163b155b806105af57506001600160a01b038716155b806105c157506001600160a01b038516155b806105cd57506101f484115b8061066b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b03166316eebd1e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065f9190610c0d565b6001600160a01b031614155b806106db5750876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190610c2a565b60ff16601214155b806107535750876001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561071f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107439190610c4d565b6b033b2e3c9fd0803ce800000014155b1561077157604051636448d6e960e11b815260040160405180910390fd5b6000888888846000015189898960405161078a90610a5b565b6001600160a01b039788168152958716602087015293861660408601526060850192909252909316608083015260a082019290925290151560c082015260e001604051809103906000f0801580156107e6573d6000803e3d6000fd5b506001600160a01b038a8116600090815260026020526040902080546001600160a01b03191691831691909117905592508290506108328933836b0295be96e640669720000000610986565b806001600160a01b0316630f15f4c06040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086d57600080fd5b505af1158015610881573d6000803e3d6000fd5b50505050806001600160a01b03166316f0115b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e79190610c0d565b604080516001600160a01b038b811682528981166020830152918101889052861515606082015291811691858216918c16907f21de952fe499d7b6411019b8d0a02cb47d3c36c6e384a8c8dd50d257f214cb519060800160405180910390a450506109526001600055565b9695505050505050565b60026000540361097f57604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526109e09085906109e6565b50505050565b600080602060008451602086016000885af180610a09576040513d6000823e3d81fd5b50506000513d91508115610a21578060011415610a2e565b6001600160a01b0384163b155b156109e057604051635274afe760e01b81526001600160a01b038516600482015260240160405180910390fd5b61530080610c6783390190565b6001600160a01b0381168114610a7d57600080fd5b50565b80358015158114610a9057600080fd5b919050565b600080600060608486031215610aaa57600080fd5b8335610ab581610a68565b925060208401359150610aca60408501610a80565b90509250925092565b600060208284031215610ae557600080fd5b8135610af081610a68565b9392505050565b60008060408385031215610b0a57600080fd5b8235610b1581610a68565b91506020830135610b2581610a68565b809150509250929050565b60008060008060008060c08789031215610b4957600080fd5b8635610b5481610a68565b95506020870135610b6481610a68565b94506040870135610b7481610a68565b93506060870135610b8481610a68565b925060808701359150610b9960a08801610a80565b90509295509295509295565b634e487b7160e01b600052601160045260246000fd5b81810381811115610bce57610bce610ba5565b92915050565b8082028115828204841417610bce57610bce610ba5565b600082610c0857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215610c1f57600080fd5b8151610af081610a68565b600060208284031215610c3c57600080fd5b815160ff81168114610af057600080fd5b600060208284031215610c5f57600080fd5b505191905056fe61024060405234801561001157600080fd5b50604051615300380380615300833981016040819052610030916104c1565b6001600055336102208190526001600160a01b0388811660805287811660a052861660c0526040805163eb6d3a1160e01b8152905163eb6d3a11916004808201926020929091908290030181865afa158015610090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b49190610544565b6001600160a01b03166101a0816001600160a01b031681525050610220516001600160a01b031663f887ea406040518163ffffffff1660e01b8152600401602060405180830381865afa15801561010f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101339190610544565b6001600160a01b031660e0816001600160a01b031681525050610220516001600160a01b031663b4b57c396040518163ffffffff1660e01b8152600401602060405180830381865afa15801561018d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b19190610544565b6001600160a01b0316610100816001600160a01b031681525050610220516001600160a01b0316637f646d076040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102309190610544565b6001600160a01b03908116610120528316610160526101c0829052612710610264836b033b2e3c9fd0803ce8000000610566565b61026e9190610591565b6101e052801515610200526101808490526101005160c05160405163e6a4390560e01b81526001600160a01b038a811660048301529182166024820152600092919091169063e6a4390590604401602060405180830381865afa1580156102d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fd9190610544565b90506001600160a01b03811661038d576101005160c0516040516364e329cb60e11b81526001600160a01b038b81166004830152918216602482015291169063c9c65396906044016020604051808303816000875af1158015610364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103889190610544565b61038f565b805b6001600160a01b031661014081905215806104325750610140516101005160c05160405163e6a4390560e01b81526001600160a01b038c8116600483015291821660248201529281169291169063e6a4390590604401602060405180830381865afa158015610402573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104269190610544565b6001600160a01b031614155b1561044f5760405162820f3560e61b815260040160405180910390fd5b6001600160a01b03871630148061047a5750610140516001600160a01b0316876001600160a01b0316145b156104985760405163d69b537960e01b815260040160405180910390fd5b50505050505050506105b3565b80516001600160a01b03811681146104bc57600080fd5b919050565b600080600080600080600060e0888a0312156104dc57600080fd5b6104e5886104a5565b96506104f3602089016104a5565b9550610501604089016104a5565b60608901519095509350610517608089016104a5565b60a089015160c08a01519194509250801515811461053457600080fd5b8091505092959891949750929550565b60006020828403121561055657600080fd5b61055f826104a5565b9392505050565b808202811582820484141761058b57634e487b7160e01b600052601160045260246000fd5b92915050565b6000826105ae57634e487b7160e01b600052601260045260246000fd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e0516102005161022051614afb6108056000396000818161073101528181610db101526134a501526000818161064701526117fc015260006106ae01526000610a1301526000818161032e01528181610a67015281816113c001526120ab01526000818161042b0152611a010152600081816104be01526117bd01526000818161047201528181610c3901528181610ce801528181611a5e015281816123d10152818161288501528181612b3601528181612df201528181612e9e0152818161310901528181613154015281816133da0152818161347d01526135410152600081816107650152818161153c015281816122fa0152818161333b015261338601526000818161092b0152612b5c01526000610a9b01526000818161086701528181610d16015281816113ea0152818161142d015281816114a5015281816114d00152818161151b01528181612036015281816120d50152818161212f015281816121b2015281816121f80152818161228e015281816122d901528181612b0901528181612ece01528181613133015281816132a80152613365015260008181610acf015281816114f101526122af01526000818161095f01528181610c6401528181610e3a0152818161126d015281816112e70152818161132d0152818161172701528181611b960152818161232401528181612ae101528181612dc3015281816130e80152818161321a0152818161331a0152818161344c015261361a0152614afb6000f3fe60806040526004361061031e5760003560e01c80637f646d07116101ab578063a8aa1b31116100f7578063c979e56b11610095578063e4d453e01161006f578063e4d453e014610a35578063eb6d3a1114610a55578063f887ea4014610a89578063f892d87b14610abd57600080fd5b8063c979e56b146109cb578063d51684a7146109eb578063d6b852c214610a0157600080fd5b8063b4e0ecf2116100d1578063b4e0ecf21461094d578063c2d107f114610981578063c796817b14610996578063c8cfaae4146109b657600080fd5b8063a8aa1b31146108da578063aedf220b14610903578063b4b57c391461091957600080fd5b8063900ef0ee1161016457806398aaa62b1161013e57806398aaa62b1461083f578063999b93af146108555780639ef27b0014610889578063a64190c41461089f57600080fd5b8063900ef0ee146107fd5780639042454314610813578063942062521461082957600080fd5b80637f646d07146107535780638113f0d9146107875780638a038a541461079c5780638b21e484146107bc5780638ee25281146107d25780638fd3ab80146107e857600080fd5b806332b8b2151161026a5780634cecd3f61161022357806361f5b8b3116101fd57806361f5b8b31461069c5780636be6e9d9146106d05780636fed787d146106f05780637b1039991461071f57600080fd5b80634cecd3f6146106355780634e80955c14610669578063554a21891461068957600080fd5b806332b8b215146105755780633833a4f11461058b5780633ded58be146105a057806343fd3cdd146105e057806346d201ee146105f55780634acc79ed1461061557600080fd5b806316875160116102d7578063252c09d7116102b1578063252c09d7146104e057806327efc086146105155780632861c7d1146105355780632c678c641461055457600080fd5b8063168751601461044d57806316f0115b146104605780631d143848146104ac57600080fd5b806302c7e7af1461037357806302fb0c5e1461039c57806306731d33146103cd5780630f15f4c0146103ef57806313821bf714610404578063147ece661461041957600080fd5b3661036e57336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461036c57604051632f35253160e01b815260040160405180910390fd5b005b600080fd5b34801561037f57600080fd5b5061038960015481565b6040519081526020015b60405180910390f35b3480156103a857600080fd5b506049546103bd90600160c81b900460ff1681565b6040519015158152602001610393565b3480156103d957600080fd5b506103e2610af1565b60405161039391906147f1565b3480156103fb57600080fd5b5061036c610da6565b34801561041057600080fd5b50610389603c81565b34801561042557600080fd5b506103897f000000000000000000000000000000000000000000000000000000000000000081565b61038961045b36600461487d565b610ee0565b34801561046c57600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610393565b3480156104b857600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ec57600080fd5b506105006104fb3660046148a9565b610f58565b60408051928352602083019190915201610393565b34801561052157600080fd5b506103896b033b2e3c9fd0803ce800000081565b34801561054157600080fd5b506103896a7c13bc4b2c133c5600000081565b34801561056057600080fd5b506049546103bd90600160d01b900460ff1681565b34801561058157600080fd5b5061038961070881565b34801561059757600080fd5b50610389610f7a565b3480156105ac57600080fd5b506105c06105bb3660046148a9565b610f94565b604080519485526020850193909352918301526060820152608001610393565b3480156105ec57600080fd5b5061038960c881565b34801561060157600080fd5b506103896106103660046148d7565b611038565b34801561062157600080fd5b506105006106303660046148a9565b611073565b34801561064157600080fd5b506103bd7f000000000000000000000000000000000000000000000000000000000000000081565b34801561067557600080fd5b506103896b02baf7b5c99a6c5c6d00000081565b61038961069736600461487d565b6110ad565b3480156106a857600080fd5b506103897f000000000000000000000000000000000000000000000000000000000000000081565b3480156106dc57600080fd5b506103896b0219aada9b14535aca00000081565b3480156106fc57600080fd5b5060495461071290640100000000900460ff1681565b60405161039391906148f4565b34801561072b57600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b34801561075f57600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b34801561079357600080fd5b506103896110f0565b3480156107a857600080fd5b506103896107b7366004614902565b6110ff565b3480156107c857600080fd5b50610389604a5481565b3480156107de57600080fd5b5061038960045481565b3480156107f457600080fd5b506103bd6115d5565b34801561080957600080fd5b5061038960055481565b34801561081f57600080fd5b50610389604b5481565b34801561083557600080fd5b5061038960085481565b34801561084b57600080fd5b5061038960025481565b34801561086157600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b34801561089557600080fd5b5061038960075481565b3480156108ab57600080fd5b506108bf6108ba3660046148a9565b611655565b60408051938452602084019290925290820152606001610393565b3480156108e657600080fd5b50604954610494906501000000000090046001600160a01b031681565b34801561090f57600080fd5b5061038960035481565b34801561092557600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b34801561095957600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b34801561098d57600080fd5b50610389602081565b3480156109a257600080fd5b506103896109b13660046148d7565b6116c1565b3480156109c257600080fd5b5061036c6117aa565b3480156109d757600080fd5b506105c06109e63660046148a9565b611895565b3480156109f757600080fd5b5061038960065481565b348015610a0d57600080fd5b506103897f000000000000000000000000000000000000000000000000000000000000000081565b348015610a4157600080fd5b50610389610a503660046148a9565b6119b0565b348015610a6157600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b348015610a9557600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b348015610ac957600080fd5b506104947f000000000000000000000000000000000000000000000000000000000000000081565b610b47604080516101408101825260008082526020820181905291810182905290606082019081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6b0219aada9b14535aca000000600154148015610b6e5750604954600160c81b900460ff16155b1515815260495460ff600160d01b820481161515602084015260608301916401000000009004166003811115610ba657610ba66147b9565b90816003811115610bb957610bb96147b9565b9052506007546080820152604a5460a082015260085460c0820152600080610bdf611a57565b915091508115610c2257600080610bf583611d66565b80158015604089015260e088018290529193509150610c1f57610c18818361496d565b6101008601525b50505b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015610cad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd19190614981565b6040516370a0823160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301529192506000917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015610d5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d819190614981565b90508115610d9f57610d9881600160701b84611e78565b6101208601525b5050505090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141580610de75750604954600160c81b900460ff165b15610e04576040516282b42960e81b815260040160405180910390fd5b610e256a7c13bc4b2c133c560000006b0219aada9b14535aca00000061499a565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610e89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ead9190614981565b14610ecb57604051632f35253160e01b815260040160405180910390fd5b6049805460ff60c81b1916600160c81b179055565b6000610eea611f2d565b6000806000610ef887610f94565b929650909450925090508581610f0e848661499a565b610f18919061499a565b1115610f37576040516307dd37f760e41b815260040160405180910390fd5b610f448484848489611f57565b505050610f516001600055565b9392505050565b60098160208110610f6857600080fd5b60020201805460019091015490915082565b6000604b54600003610f8d5750604a5490565b50604b5490565b600080600080610fa2612469565b84600003610fc35760405163d69b537960e01b815260040160405180910390fd5b600154610fdc906b0219aada9b14535aca0000006149ad565b8511610fe85784611001565b600154611001906b0219aada9b14535aca0000006149ad565b935060025461101785600154610a50919061499a565b61102191906149ad565b925061102c83611073565b94969395509392915050565b604954600090600160d01b900460ff1661106a576001600160a01b0382166000908152604c602052604090205461106d565b60005b92915050565b6000806103e86110848460046149c0565b61108e919061496d565b91508161109c60648561496d565b6110a691906149ad565b9050915091565b60006110b7611f2d565b60008060006110c587611895565b9296509094509250905085841015610f37576040516307dd37f760e41b815260040160405180910390fd5b6110fc603c60206149c0565b81565b6000611109611f2d565b611112826124a9565b6001600160a01b038316158061113057506001600160a01b03831630145b1561114e5760405163d69b537960e01b815260040160405180910390fd5b336000908152604c60205260409020548086111561117f57604051632c5374f960e01b815260040160405180910390fd5b600080600061118d89611655565b919450925090508061119f83856149ad565b6111a991906149ad565b9450878510156111cc576040516307dd37f760e41b815260040160405180910390fd5b6111d689856149ad565b336000818152604c60205260409020919091557fb2e960e0adf7f3443afba08bed10ecb80f72394e72e60f9e4c325e6bce0132bf6112148b876149ad565b60405190815260200160405180910390a2886001600082825461123791906149ad565b92505081905550826002600082825461125091906149ad565b90915550506040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156112bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e09190614981565b905061130e7f000000000000000000000000000000000000000000000000000000000000000033308d6124cd565b6113188a8261499a565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa15801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a09190614981565b146113be57604051632f35253160e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316036114a057604051632e1a7d4d60e01b8152600481018790527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561147957600080fd5b505af115801561148d573d6000803e3d6000fd5b5050505061149b888761253a565b6114cb565b6114cb7f000000000000000000000000000000000000000000000000000000000000000089886125bf565b6115167f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000856125bf565b6115617f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000846125bf565b604080518b815260208101869052908101849052606081018390526001600160a01b0389169033907f89bc96e242cf3b1e6040a8f5123c29dbf1e48d876ded5856f1668191a8a7658e9060800160405180910390a36115be6127ca565b50505050506115cd6001600055565b949350505050565b60006115df611f2d565b604954600160d01b900460ff16156115f957506001611648565b6b0219aada9b14535aca00000060015414158061161f5750604954600160c81b900460ff165b1561163d57604051631cdde67b60e01b815260040160405180910390fd5b6116456127fd565b90505b6116526001600055565b90565b6000806000611662612469565b831580611670575060015484115b1561168e5760405163d69b537960e01b815260040160405180910390fd5b61169f84600154610a5091906149ad565b6002546116ac91906149ad565b92506116b783611073565b9395909450915050565b604954600090600160c81b900460ff1615806116e65750604954600160d01b900460ff165b156116f357506000919050565b6001600160a01b038281166000818152604c60205260408082205490516370a0823160e01b815260048101939093529290917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015611770573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117949190614981565b90508082106117a357806115cd565b5092915050565b6117b2611f2d565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117fa576040516282b42960e81b815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000015806118285750604b5415155b156118465760405163cae54ae360e01b815260040160405180910390fd5b61184e612469565b42604b81905560405190815233907f85e1ef7b0313e3485755af9d396b0e69d958f9930ba5f57564127a6f61b6eefd9060200160405180910390a26118936001600055565b565b6000806000806118a3612469565b846000036118c45760405163d69b537960e01b815260040160405180910390fd5b6000806001546b0219aada9b14535aca0000006118e191906149ad565b90505b8082101561197557600060026118fa84846149ad565b61190590600161499a565b61190f919061496d565b611919908461499a565b9050600060025461193183600154610a50919061499a565b61193b91906149ad565b90508861194960648361496d565b611953908361499a565b116119605781935061196e565b61196b6001836149ad565b92505b50506118e4565b816000036119965760405163d69b537960e01b815260040160405180910390fd5b61199f82610f94565b955095509550955050509193509193565b60006b0219aada9b14535aca0000008211156119df5760405163d69b537960e01b815260040160405180910390fd5b60006119f7836b02baf7b5c99a6c5c6d0000006149ad565b90506000611a25847f00000000000000000000000000000000000000000000000000000000000000006149c0565b9050611a3182826149d7565b15611a3d576001611a40565b60005b60ff16611a4d838361496d565b6115cd919061499a565b60008060007f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611abd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae19190614981565b600003611af357506000928392509050565b6000806000836001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015611b36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b5a9190614a07565b925092509250826001600160701b031660001480611b7f57506001600160701b038216155b15611b9257506000958695509350505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bfc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c209190614a57565b6001600160a01b031614905080611c9857846001600160a01b0316635a3d54936040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c939190614981565b611cfa565b846001600160a01b0316635909c0d56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfa9190614981565b9550600081611d095783611d0b565b845b6001600160701b03169050600082611d235785611d25565b845b6001600160701b031690504284900363ffffffff811683600160701b840281611d5057611d50614941565b0402890198505060019850505050505050509091565b600080610708421015611d7e57506000928392509050565b6000611d8c610708426149ad565b905060008060005b6020811015611e5157604954600163ffffffff8381169190911b9091161615611e4957600060098260208110611dcc57611dcc614a74565b600202016040518060400160405290816000820154815260200160018201548152505090508481600001511180611e185750611e0a603c60206149c0565b8151611e1690426149ad565b115b15611e235750611e49565b831580611e305750805183105b15611e475780516020820151890397506001945092505b505b600101611d94565b50818015611e5e57508415155b15611e7057611e6d81426149ad565b93505b505050915091565b6000806000611e8786866128ed565b9150915081600003611eac57838181611ea257611ea2614941565b0492505050610f51565b818411611ec357611ec3600385150260111861290b565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b600260005403611f5057604051633ee5aeb560e01b815260040160405180910390fd5b6002600055565b611f60816124a9565b336000908152604c6020526040812054611f7b90879061499a565b336000818152604c60205260409081902083905551919250907fb2e960e0adf7f3443afba08bed10ecb80f72394e72e60f9e4c325e6bce0132bf90611fc39084815260200190565b60405180910390a28560016000828254611fdd919061499a565b925050819055508460026000828254611ff6919061499a565b909155506000905083612009868861499a565b612013919061499a565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561207d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a19190614981565b905034156121a7577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614158061210957508134105b156121275760405163d69b537960e01b815260040160405180910390fd5b81156121a2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561218857600080fd5b505af115801561219c573d6000803e3d6000fd5b50505050505b6121d9565b81156121d9576121d97f00000000000000000000000000000000000000000000000000000000000000003330856124cd565b6121e3828261499a565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612247573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226b9190614981565b1461228957604051632f35253160e01b815260040160405180910390fd5b6122d47f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000886125bf565b61231f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000876125bf565b61234a7f0000000000000000000000000000000000000000000000000000000000000000338a6125bf565b60408051898152602081018990529081018790526060810186905233907f27330bd7589580547b6437e08f9c60653de63691d2d2b2c13bff9ee67da2a68d9060800160405180910390a26b0219aada9b14535aca0000006001540361243c576049805460ff60c81b1916905542600781905560025460088190556040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016927ffa93b615fecab715dce428daa1553fb5c24c02f50a81d4971bb86b1937e3c4f29261242692918252602082015260400190565b60405180910390a26124366127fd565b50612444565b6124446127ca565b8134111561245f5761245f3361245a84346149ad565b61253a565b5050505050505050565b604954600160c81b900460ff16158061248b5750604954600160d01b900460ff165b1561189357604051631cdde67b60e01b815260040160405180910390fd5b428110156124ca5760405163d69b537960e01b815260040160405180910390fd5b50565b6040516001600160a01b0384811660248301528381166044830152606482018390526125349186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061291d565b50505050565b80600003612546575050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612593576040519150601f19603f3d011682016040523d82523d6000602084013e612598565b606091505b50509050806125ba57604051632f35253160e01b815260040160405180910390fd5b505050565b806000036125cc57505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015612613573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126379190614981565b6040516370a0823160e01b81526001600160a01b0385811660048301529192506000918616906370a0823190602401602060405180830381865afa158015612683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a79190614981565b90506126b4858585612992565b6126be83836149ad565b6040516370a0823160e01b81523060048201526001600160a01b038716906370a0823190602401602060405180830381865afa158015612702573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127269190614981565b1415806127a55750612738838261499a565b6040516370a0823160e01b81526001600160a01b0386811660048301528716906370a0823190602401602060405180830381865afa15801561277e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127a29190614981565b14155b156127c357604051632f35253160e01b815260040160405180910390fd5b5050505050565b6000806127d5611a57565b9150915081156127ec576127e8816129c3565b5050565b6049805463ffffffff191690555050565b600080600061280a611a57565b9150915060008083156128335761282083611d66565b909250905061282e836129c3565b612841565b6049805463ffffffff191690555b600061284d8383612aca565b9096509050856128e5576049805482919064ff00000000191664010000000083600381111561287e5761287e6147b9565b02179055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03167f886f47bb880c2e015d8bdca3a345bd9578546a41b00952e356923daa465d1f60826040516128dc91906148f4565b60405180910390a25b505050505090565b60008060001983850993909202808410938190039390930393915050565b634e487b71600052806020526024601cfd5b600080602060008451602086016000885af180612940576040513d6000823e3d81fd5b50506000513d91508115612958578060011415612965565b6001600160a01b0384163b155b1561253457604051635274afe760e01b81526001600160a01b038516600482015260240160405180910390fd5b6040516001600160a01b038381166024830152604482018390526125ba91859182169063a9059cbb90606401612502565b60006129d0603c4261496d565b905060006129df6020836149d7565b604954909150600163ffffffff8084169190911b918216161580612a26575082603c60098460208110612a1457612a14614a74565b6002020154612a23919061496d565b14155b156125345760405180604001604052804281526020018581525060098360208110612a5357612a53614a74565b8251600291909102919091019081556020918201516001909101556049805463ffffffff8481169082161763ffffffff199091161790556040805142815291820186905283917f5d2f23d17c4ad5347ae00f7c12f3c1b984d44422cecfcba0009c80d996899f72910160405180910390a250505050565b60405163e6a4390560e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000008116602483015260009182917f000000000000000000000000000000000000000000000000000000000000000091828216917f0000000000000000000000000000000000000000000000000000000000000000169063e6a4390590604401602060405180830381865afa158015612ba3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc79190614a57565b6001600160a01b031614612bed5760405162820f3560e61b815260040160405180910390fd5b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c519190614981565b6000141590506000808215612dae57836001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612c9b57600080fd5b505af1158015612caf573d6000803e3d6000fd5b50505050600080612cbf866135ab565b915091508160001480612cd0575080155b15612ced5760405162820f3560e61b815260040160405180910390fd5b88600003612d085760006001975097505050505050506135a4565b612d1482828c8c6136eb565b612d2b5760006002975097505050505050506135a4565b6000612d526a7c13bc4b2c133c56000000612d4d856001600160701b036149ad565b613772565b600854909150600090612d7090612d4d856001600160701b036149ad565b90506000612d7f838587611e78565b9050818111612d9357829650809550612da4565b612d9e828686611e78565b96508195505b50505050506130e3565b600080612dba866135ab565b915091506000827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b8152600401612e3c91906001600160a01b0391909116815260200190565b602060405180830381865afa158015612e59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7d9190614981565b612e8791906149ad565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291925060009184917f0000000000000000000000000000000000000000000000000000000000000000909116906370a0823190602401602060405180830381865afa158015612f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f3b9190614981565b612f4591906149ad565b90506000886001600160a01b031663ba9a7a566040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fab9190614981565b612fb690600161499a565b905060006130556040518060e00160405280888152602001878152602001612fff876a7c13bc4b2c133c56000000612fee919061499a565b612d4d8b6001600160701b036149ad565b815260200161302686600854613015919061499a565b612d4d8a6001600160701b036149ad565b81526a7c13bc4b2c133c560000006020820152600854604082015260600161304e85806149c0565b9052613782565b9050806040015161307757600060039b509b50505050505050505050506135a4565b8051602082015160405163bc25cf7760e01b815230600482015291995097506001600160a01b038b169063bc25cf7790602401600060405180830381600087803b1580156130c457600080fd5b505af11580156130d8573d6000803e3d6000fd5b505050505050505050505b61312e7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000846125bf565b6131797f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000836125bf565b6040516335313c2160e11b8152600060048201819052906001600160a01b03861690636a627842906024016020604051808303816000875af11580156131c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131e79190614981565b90506000806131f5876135ab565b6040516370a0823160e01b815230600482015291935091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015613261573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132859190614981565b6040516370a0823160e01b81523060048201529091506000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156132ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133139190614981565b90506133607f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000846125bf565b6133ab7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000836125bf565b6049805460048990556003889055600586905560068590556000600281905560ff60d01b196001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166501000000000002166501000000000061ff0160c81b031990921691909117600160d01b1780835542604a5590919064ff00000000191664010000000083021790555060405163a9f9f37360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811660048301527f0000000000000000000000000000000000000000000000000000000000000000811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063a9f9f37390604401600060405180830381600087803b1580156134e957600080fd5b505af11580156134fd573d6000803e3d6000fd5b5050604080518a8152602081018a905290810188905260608101859052608081018490528a151560a082015260c0810187905260e081018690526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692507f6245a4f316997e7f00a4d4bf01393dc71253e3f9b060b14e31ecad684d753f4891506101000160405180910390a2600160009a509a505050505050505050505b9250929050565b600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156135ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136139190614a07565b50915091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015613680573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a49190614a57565b6001600160a01b0316146136cb57806001600160701b0316826001600160701b03166136e0565b816001600160701b0316816001600160701b03165b935093505050915091565b6000806136fc600160701b846149c0565b613708906127106149c0565b9050600061372f61371c60c86127106149ad565b61372690896149c0565b86846001613ae7565b9050600061375461374360c861271061499a565b61374d908a6149c0565b8785611e78565b90508187101580156137665750808711155b98975050505050505050565b6000828218828410028218610f51565b6137a8604051806060016040528060008152602001600081526020016000151581525090565b604082015115806137bb57506060820151155b806137da575081606001516137d88360c001518460400151613b34565b115b156137e457919050565b60006137f883608001518460a00151613b66565b9050600081846080015161380c919061496d565b90506000828560a00151613820919061496d565b90506000613865838760400151886000015161383c919061499a565b613846919061496d565b838860600151896020015161385b919061499a565b612d4d919061496d565b865190915061387484836149c0565b11801561388d5750602086015161388b83836149c0565b115b156138e25785516138cd9087906138a486856149c0565b6138ae91906149ad565b60208901516138bd86866149c0565b6138c791906149ad565b88613b8c565b94508460400151156138e25750505050919050565b60006138f38760c001516001613dd0565b90508087604001511015801561390d575080876060015110155b15613a375760008760c00151905060006040518060800160405280613936848c60600151613b34565b8b51613942919061499a565b81526020018a604001518b6000015161395b919061499a565b815260200161396e848c60400151613b34565b8b6020015161397d919061499a565b81526020018a606001518b60200151613996919061499a565b9052600160c08b015290506139ae898260008b613e01565b97506139bd898260018b613e01565b60c08a018390526020810151815191995083916139da91906149c0565b106139eb5750505050505050919050565b6000604089015288516139ff90849061499a565b81526020890151613a1190849061499a565b6040820152613a23898260008b613e01565b9750613a32898260018b613e01565b975050505b6000613a4e8860400151600184612d4d91906149ad565b9050613a628860c001518960600151613b34565b94505b808511613a8b57613a77888689613ffc565b965084613a8381614a8a565b955050613a65565b6060880151613a9f90612d4d6001856149ad565b9050613ab38860c001518960400151613b34565b93505b808411613adc57613ac88885896140c4565b965083613ad481614a8a565b945050613ab6565b505050505050919050565b6000613b16613af58361418b565b8015613b11575060008480613b0c57613b0c614941565b868809115b151590565b613b21868686611e78565b613b2b919061499a565b95945050505050565b6000613b4082846149d7565b15613b4c576001613b4f565b60005b60ff16613b5c838561496d565b610f51919061499a565b60005b8115613b85576000613b7b83856149d7565b929350613b699050565b5090919050565b613bb2604051806060016040528060008152602001600081526020016000151581525090565b831580613bbd575082155b80613bcb5750846040015184115b80613bd95750846060015183115b80613bf0575082613bee8660c0015186613b34565b115b15613bfc5750806115cd565b8160400151613c2a5760405180606001604052808581526020018481526020016001151581525090506115cd565b60008560800151848760200151613c41919061499a565b613c4b91906149c0565b905060008660a00151868860000151613c64919061499a565b613c6e91906149c0565b90506000818311613c8857613c8383836149ad565b613c92565b613c9282846149ad565b9050876080015185602001518960200151613cad919061499a565b613cb791906149c0565b60a089015186518a519295509091613ccf919061499a565b613cd991906149c0565b91506000828411613cf357613cee84846149ad565b613cfd565b613cfd83856149ad565b9050600080613d1f8489600001518d60000151613d1a919061499a565b6128ed565b91509150600080613d3a858d8f60000151613d1a919061499a565b9150915081841080613d5557508184148015613d5557508083105b80613d8d57508184148015613d6957508083145b8015613d8d575060208a01518a51613d8191906149c0565b613d8b8c8e6149c0565b115b15613dbf5760405180606001604052808d81526020018c815260200160011515815250985050505050505050506115cd565b50979b9a5050505050505050505050565b600080613ddc846141b8565b9050613df9613dea8461418b565b8015613b115750818002851190565b019392505050565b613e27604051806060016040528060008152602001600081526020016000151581525090565b6000613e3d858760a00151886080015187614311565b905083613e4b578015613e93565b84604001518560600151613e5f91906149ad565b613e6a90600161499a565b85516020870151613e7b91906149ad565b613e8690600161499a565b613e9091906149c0565b81145b15613ea157829150506115cd565b6040805180820182526000808252600160208084018290528451808601909552908452830152905b606087015181518351613edc919061499a565b11158015613f015750866020015181602001518360200151613efe919061499a565b11155b15613f6d5780518251600091613f37918a91613f1c9161499a565b84602001518660200151613f30919061499a565b878b614502565b90508015613f5557613f4e888484878b6001614538565b9250613f67565b613f64888385878b6000614538565b91505b50613ec9565b600086613f7a5782613f7c565b815b90506000613fa882602001518a60200151613f97919061496d565b835160608c0151612d4d919061496d565b9050613fee8a8b60000151846020015184613fc391906149c0565b613fcd91906149ad565b60208d01518551613fde90866149c0565b613fe891906149ad565b8a613b8c565b9a9950505050505050505050565b614022604051806060016040528060008152602001600081526020016000151581525090565b60006140328560c0015185613b34565b8560200151614041919061499a565b9050600085606001518660200151614059919061499a565b9050600061407f868860000151614070919061499a565b8860a001518960800151611e78565b9050614096878789602001516138bd8588886146b0565b94506140b9878789602001516138bd8560016140b2919061499a565b88886146b0565b979650505050505050565b6140ea604051806060016040528060008152602001600081526020016000151581525090565b60006140fa8560c0015185613b34565b8551614106919061499a565b905060008560400151866000015161411e919061499a565b90506000614144868860200151614135919061499a565b88608001518960a00151611e78565b905061416b87886000015161415a8487876146b0565b61416491906149ad565b8888613b8c565b87519095506140b990889061415a61418485600161499a565b87876146b0565b600060028260038111156141a1576141a16147b9565b6141ab9190614aa3565b60ff166001149050919050565b6000600182116141c6575090565b816001600160801b82106141df5760809190911c9060401b5b6801000000000000000082106141fa5760409190911c9060201b5b64010000000082106142115760209190911c9060101b5b6201000082106142265760109190911c9060081b5b610100821061423a5760089190911c9060041b5b6010821061424d5760049190911c9060021b5b600482106142595760011b5b600302600190811c9081858161427157614271614941565b048201901c9050600181858161428957614289614941565b048201901c905060018185816142a1576142a1614941565b048201901c905060018185816142b9576142b9614941565b048201901c905060018185816142d1576142d1614941565b048201901c905060018185816142e9576142e9614941565b048201901c905061430881858161430257614302614941565b04821190565b90039392505050565b600082600003614367578460400151856060015161432f91906149ad565b61433a90600161499a565b8551602087015161434b91906149ad565b61435690600161499a565b61436091906149c0565b90506115cd565b83600003614377575060006115cd565b60006143ca8660000151846143a45761439f86896040015161439991906149c0565b88613b34565b6146d4565b868689604001516143b591906149c0565b6143bf919061496d565b61439f90600161499a565b905060006144058760000151856143f45761439f878a606001516143ee91906149c0565b89613b34565b87878a606001516143b591906149c0565b905086602001518111614459578660400151876060015161442691906149ad565b61443190600161499a565b81886020015161444191906149ad565b61444c90600161499a565b61445691906149c0565b92505b60006144708860200151600184612d4d91906149ad565b90508083116144f757600061448584836149ad565b61449090600161499a565b90508060018a604001516144a491906149ad565b6144ae91906149c0565b6144df82898b8a6144c05760006144c3565b60015b60ff166144d08a8f6149c0565b6144da91906149ad565b6146e4565b6144e991906149ad565b6144f3908661499a565b9450505b505050949350505050565b60008161451d57826145178787876001614311565b1061452e565b8261452b8787876000614311565b11155b9695505050505050565b604080518082019091526000808252602082015284516000906145af901561457c578651885160608b015161456d91906149ad565b614577919061496d565b614582565b88602001515b6020880151156145a557876020015189602001518b6020015161385b91906149ad565b8960600151613772565b905060015b8181101561465657600060026145ca83856149ad565b6145d590600161499a565b6145df919061496d565b6145e9908361499a565b90508415156146338b8a600001518461460291906149c0565b8c5161460e919061499a565b60208c015161461d90866149c0565b8d6020015161462c919061499a565b8b8b614502565b15150361464257809150614650565b61464d6001826149ad565b92505b506145b4565b604051806040016040528088600001518361467191906149c0565b8a5161467d919061499a565b815260200188602001518361469291906149c0565b8a602001516146a1919061499a565b90529998505050505050505050565b60008284106146cc578184116146c657836115cd565b816115cd565b509092915050565b6000828218828411028218610f51565b60005b83831061473c576146f8848461496d565b60026147056001886149ad565b61470f90886149c0565b614719919061496d565b61472391906149c0565b61472d908261499a565b905061473984846149d7565b92505b8382106147705761474d848361496d565b61475790866149c0565b614761908261499a565b905061476d84836149d7565b91505b60008261477d87866149c0565b614787919061499a565b90508481101561479757506115cd565b6147a1858261496d565b95506147ad85826149d7565b93949392506146e79050565b634e487b7160e01b600052602160045260246000fd5b600481106147ed57634e487b7160e01b600052602160045260246000fd5b9052565b8151151581526101408101602083015161480f602084018215159052565b506040830151614823604084018215159052565b50606083015161483660608401826147cf565b506080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010083015161010083015261012083015161012083015292915050565b60008060006060848603121561489257600080fd5b505081359360208301359350604090920135919050565b6000602082840312156148bb57600080fd5b5035919050565b6001600160a01b03811681146124ca57600080fd5b6000602082840312156148e957600080fd5b8135610f51816148c2565b6020810161106d82846147cf565b6000806000806080858703121561491857600080fd5b84359350602085013592506040850135614931816148c2565b9396929550929360600135925050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261497c5761497c614941565b500490565b60006020828403121561499357600080fd5b5051919050565b8082018082111561106d5761106d614957565b8181038181111561106d5761106d614957565b808202811582820484141761106d5761106d614957565b6000826149e6576149e6614941565b500690565b80516001600160701b0381168114614a0257600080fd5b919050565b600080600060608486031215614a1c57600080fd5b614a25846149eb565b9250614a33602085016149eb565b9150604084015163ffffffff81168114614a4c57600080fd5b809150509250925092565b600060208284031215614a6957600080fd5b8151610f51816148c2565b634e487b7160e01b600052603260045260246000fd5b600060018201614a9c57614a9c614957565b5060010190565b600060ff831680614ab657614ab6614941565b8060ff8416069150509291505056fea2646970667358221220c05e5681bf37683440183c9bbaa0dfb163caab8d0f31ead556d000c8b959713b64736f6c634300081a0033a26469706673582212200193342308f3ccf6202171a54a918fe4b4bd2628879354f18800fc0bc3edfca064736f6c634300081a0033",
|
|
389
|
+
"metadata": {
|
|
390
|
+
"compiler": {
|
|
391
|
+
"version": "0.8.26+commit.8a97fa7a"
|
|
392
|
+
},
|
|
393
|
+
"language": "Solidity",
|
|
394
|
+
"output": {
|
|
395
|
+
"abi": [
|
|
396
|
+
{
|
|
397
|
+
"inputs": [
|
|
398
|
+
{
|
|
399
|
+
"internalType": "address",
|
|
400
|
+
"name": "router_",
|
|
401
|
+
"type": "address"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"internalType": "address",
|
|
405
|
+
"name": "mesh_",
|
|
406
|
+
"type": "address"
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
"internalType": "address",
|
|
410
|
+
"name": "launcher_",
|
|
411
|
+
"type": "address"
|
|
412
|
+
}
|
|
413
|
+
],
|
|
414
|
+
"stateMutability": "nonpayable",
|
|
415
|
+
"type": "constructor"
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"inputs": [],
|
|
419
|
+
"type": "error",
|
|
420
|
+
"name": "AlreadyRegistered"
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"inputs": [],
|
|
424
|
+
"type": "error",
|
|
425
|
+
"name": "InvalidAsset"
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"inputs": [],
|
|
429
|
+
"type": "error",
|
|
430
|
+
"name": "InvalidConfiguration"
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"inputs": [],
|
|
434
|
+
"type": "error",
|
|
435
|
+
"name": "ReentrancyGuardReentrantCall"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"inputs": [
|
|
439
|
+
{
|
|
440
|
+
"internalType": "address",
|
|
441
|
+
"name": "token",
|
|
442
|
+
"type": "address"
|
|
443
|
+
}
|
|
444
|
+
],
|
|
445
|
+
"type": "error",
|
|
446
|
+
"name": "SafeERC20FailedOperation"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
"inputs": [],
|
|
450
|
+
"type": "error",
|
|
451
|
+
"name": "Unauthorized"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"inputs": [
|
|
455
|
+
{
|
|
456
|
+
"internalType": "address",
|
|
457
|
+
"name": "hana",
|
|
458
|
+
"type": "address",
|
|
459
|
+
"indexed": true
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"internalType": "address",
|
|
463
|
+
"name": "bond",
|
|
464
|
+
"type": "address",
|
|
465
|
+
"indexed": true
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"internalType": "address",
|
|
469
|
+
"name": "pool",
|
|
470
|
+
"type": "address",
|
|
471
|
+
"indexed": true
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"internalType": "address",
|
|
475
|
+
"name": "hanaTreasury",
|
|
476
|
+
"type": "address",
|
|
477
|
+
"indexed": false
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"internalType": "address",
|
|
481
|
+
"name": "issuer",
|
|
482
|
+
"type": "address",
|
|
483
|
+
"indexed": false
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
"internalType": "uint256",
|
|
487
|
+
"name": "pointsBps",
|
|
488
|
+
"type": "uint256",
|
|
489
|
+
"indexed": false
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"internalType": "bool",
|
|
493
|
+
"name": "earlyReleaseAllowed",
|
|
494
|
+
"type": "bool",
|
|
495
|
+
"indexed": false
|
|
496
|
+
}
|
|
497
|
+
],
|
|
498
|
+
"type": "event",
|
|
499
|
+
"name": "BondCreated",
|
|
500
|
+
"anonymous": false
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"inputs": [
|
|
504
|
+
{
|
|
505
|
+
"internalType": "address",
|
|
506
|
+
"name": "hana",
|
|
507
|
+
"type": "address",
|
|
508
|
+
"indexed": true
|
|
509
|
+
},
|
|
510
|
+
{
|
|
511
|
+
"internalType": "address",
|
|
512
|
+
"name": "bond",
|
|
513
|
+
"type": "address",
|
|
514
|
+
"indexed": true
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
"internalType": "address",
|
|
518
|
+
"name": "pair",
|
|
519
|
+
"type": "address",
|
|
520
|
+
"indexed": true
|
|
521
|
+
}
|
|
522
|
+
],
|
|
523
|
+
"type": "event",
|
|
524
|
+
"name": "PoolRegistered",
|
|
525
|
+
"anonymous": false
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
"inputs": [
|
|
529
|
+
{
|
|
530
|
+
"internalType": "address",
|
|
531
|
+
"name": "quote",
|
|
532
|
+
"type": "address",
|
|
533
|
+
"indexed": true
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
"internalType": "uint256",
|
|
537
|
+
"name": "virtualQuote",
|
|
538
|
+
"type": "uint256",
|
|
539
|
+
"indexed": false
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"internalType": "bool",
|
|
543
|
+
"name": "enabled",
|
|
544
|
+
"type": "bool",
|
|
545
|
+
"indexed": false
|
|
546
|
+
}
|
|
547
|
+
],
|
|
548
|
+
"type": "event",
|
|
549
|
+
"name": "QuoteConfigured",
|
|
550
|
+
"anonymous": false
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"inputs": [],
|
|
554
|
+
"stateMutability": "view",
|
|
555
|
+
"type": "function",
|
|
556
|
+
"name": "MAX_POINTS_BPS",
|
|
557
|
+
"outputs": [
|
|
558
|
+
{
|
|
559
|
+
"internalType": "uint256",
|
|
560
|
+
"name": "",
|
|
561
|
+
"type": "uint256"
|
|
562
|
+
}
|
|
563
|
+
]
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"inputs": [
|
|
567
|
+
{
|
|
568
|
+
"internalType": "address",
|
|
569
|
+
"name": "",
|
|
570
|
+
"type": "address"
|
|
571
|
+
}
|
|
572
|
+
],
|
|
573
|
+
"stateMutability": "view",
|
|
574
|
+
"type": "function",
|
|
575
|
+
"name": "bonds",
|
|
576
|
+
"outputs": [
|
|
577
|
+
{
|
|
578
|
+
"internalType": "address",
|
|
579
|
+
"name": "",
|
|
580
|
+
"type": "address"
|
|
581
|
+
}
|
|
582
|
+
]
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
"inputs": [
|
|
586
|
+
{
|
|
587
|
+
"internalType": "address",
|
|
588
|
+
"name": "hana",
|
|
589
|
+
"type": "address"
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"internalType": "address",
|
|
593
|
+
"name": "hanaTreasury",
|
|
594
|
+
"type": "address"
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"internalType": "address",
|
|
598
|
+
"name": "quote_",
|
|
599
|
+
"type": "address"
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"internalType": "address",
|
|
603
|
+
"name": "issuer",
|
|
604
|
+
"type": "address"
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"internalType": "uint256",
|
|
608
|
+
"name": "pointsBps",
|
|
609
|
+
"type": "uint256"
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
"internalType": "bool",
|
|
613
|
+
"name": "earlyReleaseAllowed",
|
|
614
|
+
"type": "bool"
|
|
615
|
+
}
|
|
616
|
+
],
|
|
617
|
+
"stateMutability": "nonpayable",
|
|
618
|
+
"type": "function",
|
|
619
|
+
"name": "create",
|
|
620
|
+
"outputs": [
|
|
621
|
+
{
|
|
622
|
+
"internalType": "address",
|
|
623
|
+
"name": "bond",
|
|
624
|
+
"type": "address"
|
|
625
|
+
}
|
|
626
|
+
]
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
"inputs": [],
|
|
630
|
+
"stateMutability": "view",
|
|
631
|
+
"type": "function",
|
|
632
|
+
"name": "launcher",
|
|
633
|
+
"outputs": [
|
|
634
|
+
{
|
|
635
|
+
"internalType": "address",
|
|
636
|
+
"name": "",
|
|
637
|
+
"type": "address"
|
|
638
|
+
}
|
|
639
|
+
]
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
"inputs": [],
|
|
643
|
+
"stateMutability": "view",
|
|
644
|
+
"type": "function",
|
|
645
|
+
"name": "meshTreasury",
|
|
646
|
+
"outputs": [
|
|
647
|
+
{
|
|
648
|
+
"internalType": "address",
|
|
649
|
+
"name": "",
|
|
650
|
+
"type": "address"
|
|
651
|
+
}
|
|
652
|
+
]
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"inputs": [
|
|
656
|
+
{
|
|
657
|
+
"internalType": "address",
|
|
658
|
+
"name": "",
|
|
659
|
+
"type": "address"
|
|
660
|
+
}
|
|
661
|
+
],
|
|
662
|
+
"stateMutability": "view",
|
|
663
|
+
"type": "function",
|
|
664
|
+
"name": "pools",
|
|
665
|
+
"outputs": [
|
|
666
|
+
{
|
|
667
|
+
"internalType": "address",
|
|
668
|
+
"name": "",
|
|
669
|
+
"type": "address"
|
|
670
|
+
}
|
|
671
|
+
]
|
|
672
|
+
},
|
|
673
|
+
{
|
|
674
|
+
"inputs": [
|
|
675
|
+
{
|
|
676
|
+
"internalType": "address",
|
|
677
|
+
"name": "",
|
|
678
|
+
"type": "address"
|
|
679
|
+
}
|
|
680
|
+
],
|
|
681
|
+
"stateMutability": "view",
|
|
682
|
+
"type": "function",
|
|
683
|
+
"name": "quoteConfig",
|
|
684
|
+
"outputs": [
|
|
685
|
+
{
|
|
686
|
+
"internalType": "uint256",
|
|
687
|
+
"name": "virtualQuote",
|
|
688
|
+
"type": "uint256"
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
"internalType": "bool",
|
|
692
|
+
"name": "enabled",
|
|
693
|
+
"type": "bool"
|
|
694
|
+
}
|
|
695
|
+
]
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
"inputs": [
|
|
699
|
+
{
|
|
700
|
+
"internalType": "address",
|
|
701
|
+
"name": "hana",
|
|
702
|
+
"type": "address"
|
|
703
|
+
},
|
|
704
|
+
{
|
|
705
|
+
"internalType": "address",
|
|
706
|
+
"name": "pool",
|
|
707
|
+
"type": "address"
|
|
708
|
+
}
|
|
709
|
+
],
|
|
710
|
+
"stateMutability": "nonpayable",
|
|
711
|
+
"type": "function",
|
|
712
|
+
"name": "recordMigration"
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"inputs": [],
|
|
716
|
+
"stateMutability": "view",
|
|
717
|
+
"type": "function",
|
|
718
|
+
"name": "router",
|
|
719
|
+
"outputs": [
|
|
720
|
+
{
|
|
721
|
+
"internalType": "address",
|
|
722
|
+
"name": "",
|
|
723
|
+
"type": "address"
|
|
724
|
+
}
|
|
725
|
+
]
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
"inputs": [
|
|
729
|
+
{
|
|
730
|
+
"internalType": "address",
|
|
731
|
+
"name": "quote",
|
|
732
|
+
"type": "address"
|
|
733
|
+
},
|
|
734
|
+
{
|
|
735
|
+
"internalType": "uint256",
|
|
736
|
+
"name": "virtualQuote",
|
|
737
|
+
"type": "uint256"
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
"internalType": "bool",
|
|
741
|
+
"name": "enabled",
|
|
742
|
+
"type": "bool"
|
|
743
|
+
}
|
|
744
|
+
],
|
|
745
|
+
"stateMutability": "nonpayable",
|
|
746
|
+
"type": "function",
|
|
747
|
+
"name": "setQuote"
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"inputs": [],
|
|
751
|
+
"stateMutability": "view",
|
|
752
|
+
"type": "function",
|
|
753
|
+
"name": "v2Factory",
|
|
754
|
+
"outputs": [
|
|
755
|
+
{
|
|
756
|
+
"internalType": "address",
|
|
757
|
+
"name": "",
|
|
758
|
+
"type": "address"
|
|
759
|
+
}
|
|
760
|
+
]
|
|
761
|
+
},
|
|
762
|
+
{
|
|
763
|
+
"inputs": [],
|
|
764
|
+
"stateMutability": "view",
|
|
765
|
+
"type": "function",
|
|
766
|
+
"name": "wrappedNative",
|
|
767
|
+
"outputs": [
|
|
768
|
+
{
|
|
769
|
+
"internalType": "address",
|
|
770
|
+
"name": "",
|
|
771
|
+
"type": "address"
|
|
772
|
+
}
|
|
773
|
+
]
|
|
774
|
+
}
|
|
775
|
+
],
|
|
776
|
+
"devdoc": {
|
|
777
|
+
"kind": "dev",
|
|
778
|
+
"methods": {},
|
|
779
|
+
"version": 1
|
|
780
|
+
},
|
|
781
|
+
"userdoc": {
|
|
782
|
+
"kind": "user",
|
|
783
|
+
"methods": {
|
|
784
|
+
"setQuote(address,uint256,bool)": {
|
|
785
|
+
"notice": "Platform Safe controls available quote assets and each asset's fixed virtual reserve. Changes only affect future Bonds; existing Bonds hold immutable copies."
|
|
786
|
+
}
|
|
787
|
+
},
|
|
788
|
+
"version": 1
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
"settings": {
|
|
792
|
+
"remappings": [
|
|
793
|
+
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
|
|
794
|
+
"forge-std/=lib/forge-std/src/"
|
|
795
|
+
],
|
|
796
|
+
"optimizer": {
|
|
797
|
+
"enabled": true,
|
|
798
|
+
"runs": 200
|
|
799
|
+
},
|
|
800
|
+
"metadata": {
|
|
801
|
+
"bytecodeHash": "ipfs"
|
|
802
|
+
},
|
|
803
|
+
"compilationTarget": {
|
|
804
|
+
"src/HanaBondQuoteV2.sol": "HanaBondFactoryQuoteV2"
|
|
805
|
+
},
|
|
806
|
+
"evmVersion": "paris",
|
|
807
|
+
"libraries": {}
|
|
808
|
+
},
|
|
809
|
+
"sources": {
|
|
810
|
+
"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol": {
|
|
811
|
+
"keccak256": "0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7",
|
|
812
|
+
"urls": [
|
|
813
|
+
"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b",
|
|
814
|
+
"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"
|
|
815
|
+
],
|
|
816
|
+
"license": "MIT"
|
|
817
|
+
},
|
|
818
|
+
"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol": {
|
|
819
|
+
"keccak256": "0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724",
|
|
820
|
+
"urls": [
|
|
821
|
+
"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a",
|
|
822
|
+
"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"
|
|
823
|
+
],
|
|
824
|
+
"license": "MIT"
|
|
825
|
+
},
|
|
826
|
+
"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol": {
|
|
827
|
+
"keccak256": "0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c",
|
|
828
|
+
"urls": [
|
|
829
|
+
"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba",
|
|
830
|
+
"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"
|
|
831
|
+
],
|
|
832
|
+
"license": "MIT"
|
|
833
|
+
},
|
|
834
|
+
"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": {
|
|
835
|
+
"keccak256": "0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7",
|
|
836
|
+
"urls": [
|
|
837
|
+
"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db",
|
|
838
|
+
"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"
|
|
839
|
+
],
|
|
840
|
+
"license": "MIT"
|
|
841
|
+
},
|
|
842
|
+
"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol": {
|
|
843
|
+
"keccak256": "0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5",
|
|
844
|
+
"urls": [
|
|
845
|
+
"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508",
|
|
846
|
+
"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"
|
|
847
|
+
],
|
|
848
|
+
"license": "MIT"
|
|
849
|
+
},
|
|
850
|
+
"lib/openzeppelin-contracts/contracts/utils/Panic.sol": {
|
|
851
|
+
"keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a",
|
|
852
|
+
"urls": [
|
|
853
|
+
"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a",
|
|
854
|
+
"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"
|
|
855
|
+
],
|
|
856
|
+
"license": "MIT"
|
|
857
|
+
},
|
|
858
|
+
"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol": {
|
|
859
|
+
"keccak256": "0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3",
|
|
860
|
+
"urls": [
|
|
861
|
+
"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a",
|
|
862
|
+
"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"
|
|
863
|
+
],
|
|
864
|
+
"license": "MIT"
|
|
865
|
+
},
|
|
866
|
+
"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": {
|
|
867
|
+
"keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8",
|
|
868
|
+
"urls": [
|
|
869
|
+
"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621",
|
|
870
|
+
"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"
|
|
871
|
+
],
|
|
872
|
+
"license": "MIT"
|
|
873
|
+
},
|
|
874
|
+
"lib/openzeppelin-contracts/contracts/utils/math/Math.sol": {
|
|
875
|
+
"keccak256": "0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6",
|
|
876
|
+
"urls": [
|
|
877
|
+
"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3",
|
|
878
|
+
"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"
|
|
879
|
+
],
|
|
880
|
+
"license": "MIT"
|
|
881
|
+
},
|
|
882
|
+
"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": {
|
|
883
|
+
"keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54",
|
|
884
|
+
"urls": [
|
|
885
|
+
"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8",
|
|
886
|
+
"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"
|
|
887
|
+
],
|
|
888
|
+
"license": "MIT"
|
|
889
|
+
},
|
|
890
|
+
"src/HanaBondQuoteV2.sol": {
|
|
891
|
+
"keccak256": "0x68b4ab797dc6cd4a647240586595d105908476f6dd1f4fd68fb5d3f3e67802f1",
|
|
892
|
+
"urls": [
|
|
893
|
+
"bzz-raw://a347a47725a0781f9e25dfb41e3d79b9f34ecdeeaedf674e2023f71739f5269e",
|
|
894
|
+
"dweb:/ipfs/QmYatBjqtcjUS9TS3J8KYs3ibJf2VwpjfcQ2NfSmZrGh6W"
|
|
895
|
+
],
|
|
896
|
+
"license": "MIT"
|
|
897
|
+
},
|
|
898
|
+
"src/QuoteV2MigrationMath.sol": {
|
|
899
|
+
"keccak256": "0xa7f4e632458606afde140bad764ebf1490aa9cd5d5a1ef3f7f3830b85fb6b58c",
|
|
900
|
+
"urls": [
|
|
901
|
+
"bzz-raw://c0055087d5ab596ce4349d53ba18ae50d6ecda5d88767698ada57dc02102786f",
|
|
902
|
+
"dweb:/ipfs/QmSdQJZxDvkqRoh7BQVeQgdFWNCv6DAHHD8wf8LBnREQCv"
|
|
903
|
+
],
|
|
904
|
+
"license": "MIT"
|
|
905
|
+
}
|
|
906
|
+
},
|
|
907
|
+
"version": 1
|
|
908
|
+
},
|
|
909
|
+
"immutableReferences": {
|
|
910
|
+
"11352": [
|
|
911
|
+
{
|
|
912
|
+
"start": 503,
|
|
913
|
+
"length": 32
|
|
914
|
+
}
|
|
915
|
+
],
|
|
916
|
+
"11354": [
|
|
917
|
+
{
|
|
918
|
+
"start": 542,
|
|
919
|
+
"length": 32
|
|
920
|
+
}
|
|
921
|
+
],
|
|
922
|
+
"11356": [
|
|
923
|
+
{
|
|
924
|
+
"start": 464,
|
|
925
|
+
"length": 32
|
|
926
|
+
}
|
|
927
|
+
],
|
|
928
|
+
"11358": [
|
|
929
|
+
{
|
|
930
|
+
"start": 279,
|
|
931
|
+
"length": 32
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
"start": 647,
|
|
935
|
+
"length": 32
|
|
936
|
+
}
|
|
937
|
+
],
|
|
938
|
+
"11360": [
|
|
939
|
+
{
|
|
940
|
+
"start": 211,
|
|
941
|
+
"length": 32
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"start": 1195,
|
|
945
|
+
"length": 32
|
|
946
|
+
},
|
|
947
|
+
{
|
|
948
|
+
"start": 1493,
|
|
949
|
+
"length": 32
|
|
950
|
+
}
|
|
951
|
+
]
|
|
952
|
+
}
|
|
953
|
+
}
|