@elizaos/plugin-wallet 2.0.0-beta.1

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.
Files changed (200) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +64 -0
  3. package/auto-enable.ts +76 -0
  4. package/dist/LpManagementService-BWrQ5-cO.mjs +353 -0
  5. package/dist/MockLpService-D_Apn4Fd.mjs +99 -0
  6. package/dist/aerodrome-CfnESC32.mjs +890 -0
  7. package/dist/chunk-hT5z_Zn9.mjs +35 -0
  8. package/dist/index.d.mts +34727 -0
  9. package/dist/index.mjs +21590 -0
  10. package/dist/lib/server-wallet-trade.d.mts +34 -0
  11. package/dist/lib/server-wallet-trade.mjs +306 -0
  12. package/dist/meteora-BPX39hZo.mjs +22640 -0
  13. package/dist/orca-Bybp1HXO.mjs +249 -0
  14. package/dist/pancakeswp-CkEXlXti.mjs +604 -0
  15. package/dist/plugin-ZO_MTyd0.mjs +529 -0
  16. package/dist/raydium-rfaM9yEf.mjs +539 -0
  17. package/dist/sdk/index.d.mts +32492 -0
  18. package/dist/sdk/index.mjs +6415 -0
  19. package/dist/types-D5252NZk.mjs +487 -0
  20. package/dist/uniswap-CReXgXVN.mjs +573 -0
  21. package/dist/wallet-action.d.mts +6 -0
  22. package/dist/wallet-action.mjs +820 -0
  23. package/package.json +152 -0
  24. package/src/actions/failure-codes.ts +79 -0
  25. package/src/actions/index.ts +1 -0
  26. package/src/analytics/birdeye/actions/wallet-search-address.ts +9 -0
  27. package/src/analytics/birdeye/birdeye-task.ts +175 -0
  28. package/src/analytics/birdeye/birdeye.ts +813 -0
  29. package/src/analytics/birdeye/constants.ts +74 -0
  30. package/src/analytics/birdeye/providers/agent-portfolio-provider.ts +18 -0
  31. package/src/analytics/birdeye/providers/market.ts +227 -0
  32. package/src/analytics/birdeye/providers/portfolio-factory.test.ts +138 -0
  33. package/src/analytics/birdeye/providers/portfolio-factory.ts +252 -0
  34. package/src/analytics/birdeye/providers/trending.ts +365 -0
  35. package/src/analytics/birdeye/providers/wallet.ts +14 -0
  36. package/src/analytics/birdeye/search-category.test.ts +207 -0
  37. package/src/analytics/birdeye/search-category.ts +506 -0
  38. package/src/analytics/birdeye/service.ts +992 -0
  39. package/src/analytics/birdeye/tasks/birdeye.ts +232 -0
  40. package/src/analytics/birdeye/types/api/common.ts +305 -0
  41. package/src/analytics/birdeye/types/api/defi.ts +220 -0
  42. package/src/analytics/birdeye/types/api/pair.ts +200 -0
  43. package/src/analytics/birdeye/types/api/search.ts +86 -0
  44. package/src/analytics/birdeye/types/api/token.ts +635 -0
  45. package/src/analytics/birdeye/types/api/trader.ts +76 -0
  46. package/src/analytics/birdeye/types/api/wallet.ts +181 -0
  47. package/src/analytics/birdeye/types/shared.ts +106 -0
  48. package/src/analytics/birdeye/utils.ts +700 -0
  49. package/src/analytics/dexscreener/errors.ts +28 -0
  50. package/src/analytics/dexscreener/index.ts +3 -0
  51. package/src/analytics/dexscreener/search-category.test.ts +49 -0
  52. package/src/analytics/dexscreener/search-category.ts +42 -0
  53. package/src/analytics/dexscreener/service.ts +595 -0
  54. package/src/analytics/dexscreener/types.ts +128 -0
  55. package/src/analytics/lpinfo/index.d.ts +7 -0
  56. package/src/analytics/lpinfo/index.ts +52 -0
  57. package/src/analytics/lpinfo/kamino/README.md +102 -0
  58. package/src/analytics/lpinfo/kamino/index.ts +24 -0
  59. package/src/analytics/lpinfo/kamino/providers/kaminoLiquidityProvider.ts +422 -0
  60. package/src/analytics/lpinfo/kamino/providers/kaminoPoolProvider.ts +365 -0
  61. package/src/analytics/lpinfo/kamino/providers/kaminoProvider.ts +496 -0
  62. package/src/analytics/lpinfo/kamino/services/kaminoLiquidityService.ts +1123 -0
  63. package/src/analytics/lpinfo/kamino/services/kaminoService.ts +758 -0
  64. package/src/analytics/lpinfo/steer/README.md +169 -0
  65. package/src/analytics/lpinfo/steer/index.ts +23 -0
  66. package/src/analytics/lpinfo/steer/providers/steerLiquidityProvider.ts +544 -0
  67. package/src/analytics/lpinfo/steer/services/steerLiquidityService.ts +1690 -0
  68. package/src/analytics/lpinfo/steer/steer-display-types.ts +99 -0
  69. package/src/analytics/news/index.ts +52 -0
  70. package/src/analytics/news/interfaces/types.ts +222 -0
  71. package/src/analytics/news/providers/defiNewsProvider.ts +734 -0
  72. package/src/analytics/news/services/newsDataService.ts +332 -0
  73. package/src/analytics/news/utils/formatters.ts +151 -0
  74. package/src/analytics/token-info/action.ts +240 -0
  75. package/src/analytics/token-info/index.ts +3 -0
  76. package/src/analytics/token-info/params.ts +215 -0
  77. package/src/analytics/token-info/providers.ts +681 -0
  78. package/src/analytics/token-info/service.ts +168 -0
  79. package/src/analytics/token-info/types.ts +74 -0
  80. package/src/audit/audit-log.ts +45 -0
  81. package/src/browser-shim/build-shim.ts +123 -0
  82. package/src/browser-shim/index.ts +5 -0
  83. package/src/browser-shim/shim.template.js +563 -0
  84. package/src/chains/evm/.github/workflows/npm-deploy.yml +112 -0
  85. package/src/chains/evm/LICENSE +21 -0
  86. package/src/chains/evm/README.md +106 -0
  87. package/src/chains/evm/actions/helpers.ts +147 -0
  88. package/src/chains/evm/actions/swap.ts +839 -0
  89. package/src/chains/evm/actions/transfer.ts +254 -0
  90. package/src/chains/evm/biome.json +61 -0
  91. package/src/chains/evm/bridge-router.ts +660 -0
  92. package/src/chains/evm/build.ts +89 -0
  93. package/src/chains/evm/chain-handler.ts +416 -0
  94. package/src/chains/evm/constants.ts +23 -0
  95. package/src/chains/evm/contracts/artifacts/OZGovernor.json +1707 -0
  96. package/src/chains/evm/contracts/artifacts/TimelockController.json +1007 -0
  97. package/src/chains/evm/contracts/artifacts/VoteToken.json +895 -0
  98. package/src/chains/evm/dex/aerodrome/index.ts +34 -0
  99. package/src/chains/evm/dex/aerodrome/services/AerodromeLpService.ts +558 -0
  100. package/src/chains/evm/dex/aerodrome/types.ts +318 -0
  101. package/src/chains/evm/dex/pancakeswp/index.ts +35 -0
  102. package/src/chains/evm/dex/pancakeswp/services/PancakeSwapV3LpService.ts +743 -0
  103. package/src/chains/evm/dex/pancakeswp/types.ts +65 -0
  104. package/src/chains/evm/dex/uniswap/index.ts +35 -0
  105. package/src/chains/evm/dex/uniswap/services/UniswapV3LpService.ts +759 -0
  106. package/src/chains/evm/dex/uniswap/types.ts +390 -0
  107. package/src/chains/evm/generated/specs/spec-helpers.ts +73 -0
  108. package/src/chains/evm/generated/specs/specs.ts +151 -0
  109. package/src/chains/evm/gov-router.ts +250 -0
  110. package/src/chains/evm/index.browser.ts +16 -0
  111. package/src/chains/evm/index.ts +31 -0
  112. package/src/chains/evm/prompts.ts +193 -0
  113. package/src/chains/evm/providers/get-balance.ts +123 -0
  114. package/src/chains/evm/providers/wallet.ts +715 -0
  115. package/src/chains/evm/routes/sign.ts +333 -0
  116. package/src/chains/evm/rpc-providers.ts +410 -0
  117. package/src/chains/evm/service.ts +140 -0
  118. package/src/chains/evm/templates/index.ts +10 -0
  119. package/src/chains/evm/types/index.ts +432 -0
  120. package/src/chains/evm/vitest.config.ts +18 -0
  121. package/src/chains/registry.ts +668 -0
  122. package/src/chains/solana/README.md +367 -0
  123. package/src/chains/wallet-action.ts +533 -0
  124. package/src/chains/wallet-router.test.ts +296 -0
  125. package/src/contracts.ts +65 -0
  126. package/src/core-augmentation.ts +10 -0
  127. package/src/index.ts +71 -0
  128. package/src/lib/server-wallet-trade.ts +192 -0
  129. package/src/lib/wallet-export-guard.ts +330 -0
  130. package/src/lp/actions/liquidity.ts +827 -0
  131. package/src/lp/e2e/real-token-tests.ts +428 -0
  132. package/src/lp/e2e/scenarios.ts +470 -0
  133. package/src/lp/e2e/test-utils.ts +145 -0
  134. package/src/lp/lp-manager-entry.ts +303 -0
  135. package/src/lp/services/ConcentratedLiquidityService.ts +120 -0
  136. package/src/lp/services/DexInteractionService.ts +226 -0
  137. package/src/lp/services/LpManagementService.test.ts +148 -0
  138. package/src/lp/services/LpManagementService.ts +632 -0
  139. package/src/lp/services/UserLpProfileService.ts +163 -0
  140. package/src/lp/services/VaultService.ts +153 -0
  141. package/src/lp/services/YieldOptimizationService.ts +344 -0
  142. package/src/lp/services/__tests__/MockLpService.ts +146 -0
  143. package/src/lp/tasks/LpAutoRebalanceTask.ts +117 -0
  144. package/src/lp/tasks/__tests__/LpAutoRebalanceTask.test.ts +370 -0
  145. package/src/lp/types.ts +582 -0
  146. package/src/lp/utils/solanaClient.ts +143 -0
  147. package/src/plugin.ts +125 -0
  148. package/src/policy/policy.ts +19 -0
  149. package/src/providers/canonical-provider.ts +27 -0
  150. package/src/providers/unified-wallet-provider.ts +79 -0
  151. package/src/register-routes.ts +11 -0
  152. package/src/routes/plugin.ts +47 -0
  153. package/src/routes/wallet-market-overview-route.ts +869 -0
  154. package/src/sdk/abi.ts +258 -0
  155. package/src/sdk/bridge/abis.ts +126 -0
  156. package/src/sdk/bridge/client.ts +518 -0
  157. package/src/sdk/bridge/index.ts +56 -0
  158. package/src/sdk/bridge/solana.ts +604 -0
  159. package/src/sdk/bridge/types.ts +202 -0
  160. package/src/sdk/convenience.ts +347 -0
  161. package/src/sdk/escrow/MutualStakeEscrow.ts +480 -0
  162. package/src/sdk/escrow/types.ts +64 -0
  163. package/src/sdk/escrow/verifiers.ts +73 -0
  164. package/src/sdk/identity/erc8004.ts +692 -0
  165. package/src/sdk/identity/reputation.ts +449 -0
  166. package/src/sdk/identity/uaid.ts +497 -0
  167. package/src/sdk/identity/validation.ts +372 -0
  168. package/src/sdk/index.ts +763 -0
  169. package/src/sdk/policy/SpendingPolicy.ts +260 -0
  170. package/src/sdk/policy/UptoBillingPolicy.ts +320 -0
  171. package/src/sdk/router/PaymentRouter.ts +215 -0
  172. package/src/sdk/router/index.ts +8 -0
  173. package/src/sdk/swap/SwapModule.ts +310 -0
  174. package/src/sdk/swap/abi.ts +117 -0
  175. package/src/sdk/swap/index.ts +34 -0
  176. package/src/sdk/swap/types.ts +135 -0
  177. package/src/sdk/tokens/decimals.ts +140 -0
  178. package/src/sdk/tokens/registry.ts +911 -0
  179. package/src/sdk/tokens/solana.ts +419 -0
  180. package/src/sdk/tokens/transfers.ts +327 -0
  181. package/src/sdk/types.ts +158 -0
  182. package/src/sdk/wallet-core.ts +115 -0
  183. package/src/sdk/x402/budget.ts +168 -0
  184. package/src/sdk/x402/chains/abstract/index.ts +280 -0
  185. package/src/sdk/x402/client.ts +320 -0
  186. package/src/sdk/x402/index.ts +46 -0
  187. package/src/sdk/x402/middleware.ts +92 -0
  188. package/src/sdk/x402/multi-asset.ts +144 -0
  189. package/src/sdk/x402/types.ts +156 -0
  190. package/src/services/wallet-backend-service.ts +328 -0
  191. package/src/types/wallet-router.ts +227 -0
  192. package/src/utils/intent-trajectory.ts +106 -0
  193. package/src/wallet/backend.ts +62 -0
  194. package/src/wallet/errors.ts +49 -0
  195. package/src/wallet/index.ts +27 -0
  196. package/src/wallet/local-eoa-backend.ts +201 -0
  197. package/src/wallet/pending.ts +60 -0
  198. package/src/wallet/select-backend.ts +47 -0
  199. package/src/wallet/steward-backend.ts +161 -0
  200. package/src/wallet-action.ts +1 -0
@@ -0,0 +1,1707 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "OZGovernor",
4
+ "sourceName": "src/OZGovernor.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract IVotes",
10
+ "name": "_token",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "contract TimelockController",
15
+ "name": "_timelock",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "uint48",
20
+ "name": "_votingDelay",
21
+ "type": "uint48"
22
+ },
23
+ {
24
+ "internalType": "uint32",
25
+ "name": "_votingPeriod",
26
+ "type": "uint32"
27
+ },
28
+ {
29
+ "internalType": "uint256",
30
+ "name": "_proposalThreshold",
31
+ "type": "uint256"
32
+ },
33
+ {
34
+ "internalType": "uint256",
35
+ "name": "quorumPercent",
36
+ "type": "uint256"
37
+ }
38
+ ],
39
+ "stateMutability": "nonpayable",
40
+ "type": "constructor"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "CheckpointUnorderedInsertion",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [],
49
+ "name": "FailedCall",
50
+ "type": "error"
51
+ },
52
+ {
53
+ "inputs": [
54
+ {
55
+ "internalType": "address",
56
+ "name": "voter",
57
+ "type": "address"
58
+ }
59
+ ],
60
+ "name": "GovernorAlreadyCastVote",
61
+ "type": "error"
62
+ },
63
+ {
64
+ "inputs": [
65
+ {
66
+ "internalType": "uint256",
67
+ "name": "proposalId",
68
+ "type": "uint256"
69
+ }
70
+ ],
71
+ "name": "GovernorAlreadyQueuedProposal",
72
+ "type": "error"
73
+ },
74
+ {
75
+ "inputs": [],
76
+ "name": "GovernorDisabledDeposit",
77
+ "type": "error"
78
+ },
79
+ {
80
+ "inputs": [
81
+ {
82
+ "internalType": "address",
83
+ "name": "proposer",
84
+ "type": "address"
85
+ },
86
+ {
87
+ "internalType": "uint256",
88
+ "name": "votes",
89
+ "type": "uint256"
90
+ },
91
+ {
92
+ "internalType": "uint256",
93
+ "name": "threshold",
94
+ "type": "uint256"
95
+ }
96
+ ],
97
+ "name": "GovernorInsufficientProposerVotes",
98
+ "type": "error"
99
+ },
100
+ {
101
+ "inputs": [
102
+ {
103
+ "internalType": "uint256",
104
+ "name": "targets",
105
+ "type": "uint256"
106
+ },
107
+ {
108
+ "internalType": "uint256",
109
+ "name": "calldatas",
110
+ "type": "uint256"
111
+ },
112
+ {
113
+ "internalType": "uint256",
114
+ "name": "values",
115
+ "type": "uint256"
116
+ }
117
+ ],
118
+ "name": "GovernorInvalidProposalLength",
119
+ "type": "error"
120
+ },
121
+ {
122
+ "inputs": [
123
+ {
124
+ "internalType": "uint256",
125
+ "name": "quorumNumerator",
126
+ "type": "uint256"
127
+ },
128
+ {
129
+ "internalType": "uint256",
130
+ "name": "quorumDenominator",
131
+ "type": "uint256"
132
+ }
133
+ ],
134
+ "name": "GovernorInvalidQuorumFraction",
135
+ "type": "error"
136
+ },
137
+ {
138
+ "inputs": [
139
+ {
140
+ "internalType": "address",
141
+ "name": "voter",
142
+ "type": "address"
143
+ }
144
+ ],
145
+ "name": "GovernorInvalidSignature",
146
+ "type": "error"
147
+ },
148
+ {
149
+ "inputs": [],
150
+ "name": "GovernorInvalidVoteParams",
151
+ "type": "error"
152
+ },
153
+ {
154
+ "inputs": [],
155
+ "name": "GovernorInvalidVoteType",
156
+ "type": "error"
157
+ },
158
+ {
159
+ "inputs": [
160
+ {
161
+ "internalType": "uint256",
162
+ "name": "votingPeriod",
163
+ "type": "uint256"
164
+ }
165
+ ],
166
+ "name": "GovernorInvalidVotingPeriod",
167
+ "type": "error"
168
+ },
169
+ {
170
+ "inputs": [
171
+ {
172
+ "internalType": "uint256",
173
+ "name": "proposalId",
174
+ "type": "uint256"
175
+ }
176
+ ],
177
+ "name": "GovernorNonexistentProposal",
178
+ "type": "error"
179
+ },
180
+ {
181
+ "inputs": [
182
+ {
183
+ "internalType": "uint256",
184
+ "name": "proposalId",
185
+ "type": "uint256"
186
+ }
187
+ ],
188
+ "name": "GovernorNotQueuedProposal",
189
+ "type": "error"
190
+ },
191
+ {
192
+ "inputs": [
193
+ {
194
+ "internalType": "address",
195
+ "name": "account",
196
+ "type": "address"
197
+ }
198
+ ],
199
+ "name": "GovernorOnlyExecutor",
200
+ "type": "error"
201
+ },
202
+ {
203
+ "inputs": [
204
+ {
205
+ "internalType": "address",
206
+ "name": "account",
207
+ "type": "address"
208
+ }
209
+ ],
210
+ "name": "GovernorOnlyProposer",
211
+ "type": "error"
212
+ },
213
+ {
214
+ "inputs": [],
215
+ "name": "GovernorQueueNotImplemented",
216
+ "type": "error"
217
+ },
218
+ {
219
+ "inputs": [
220
+ {
221
+ "internalType": "address",
222
+ "name": "proposer",
223
+ "type": "address"
224
+ }
225
+ ],
226
+ "name": "GovernorRestrictedProposer",
227
+ "type": "error"
228
+ },
229
+ {
230
+ "inputs": [
231
+ {
232
+ "internalType": "uint256",
233
+ "name": "proposalId",
234
+ "type": "uint256"
235
+ },
236
+ {
237
+ "internalType": "enum IGovernor.ProposalState",
238
+ "name": "current",
239
+ "type": "uint8"
240
+ },
241
+ {
242
+ "internalType": "bytes32",
243
+ "name": "expectedStates",
244
+ "type": "bytes32"
245
+ }
246
+ ],
247
+ "name": "GovernorUnexpectedProposalState",
248
+ "type": "error"
249
+ },
250
+ {
251
+ "inputs": [
252
+ {
253
+ "internalType": "address",
254
+ "name": "account",
255
+ "type": "address"
256
+ },
257
+ {
258
+ "internalType": "uint256",
259
+ "name": "currentNonce",
260
+ "type": "uint256"
261
+ }
262
+ ],
263
+ "name": "InvalidAccountNonce",
264
+ "type": "error"
265
+ },
266
+ {
267
+ "inputs": [],
268
+ "name": "InvalidShortString",
269
+ "type": "error"
270
+ },
271
+ {
272
+ "inputs": [
273
+ {
274
+ "internalType": "uint8",
275
+ "name": "bits",
276
+ "type": "uint8"
277
+ },
278
+ {
279
+ "internalType": "uint256",
280
+ "name": "value",
281
+ "type": "uint256"
282
+ }
283
+ ],
284
+ "name": "SafeCastOverflowedUintDowncast",
285
+ "type": "error"
286
+ },
287
+ {
288
+ "inputs": [
289
+ {
290
+ "internalType": "string",
291
+ "name": "str",
292
+ "type": "string"
293
+ }
294
+ ],
295
+ "name": "StringTooLong",
296
+ "type": "error"
297
+ },
298
+ {
299
+ "anonymous": false,
300
+ "inputs": [],
301
+ "name": "EIP712DomainChanged",
302
+ "type": "event"
303
+ },
304
+ {
305
+ "anonymous": false,
306
+ "inputs": [
307
+ {
308
+ "indexed": false,
309
+ "internalType": "uint256",
310
+ "name": "proposalId",
311
+ "type": "uint256"
312
+ }
313
+ ],
314
+ "name": "ProposalCanceled",
315
+ "type": "event"
316
+ },
317
+ {
318
+ "anonymous": false,
319
+ "inputs": [
320
+ {
321
+ "indexed": false,
322
+ "internalType": "uint256",
323
+ "name": "proposalId",
324
+ "type": "uint256"
325
+ },
326
+ {
327
+ "indexed": false,
328
+ "internalType": "address",
329
+ "name": "proposer",
330
+ "type": "address"
331
+ },
332
+ {
333
+ "indexed": false,
334
+ "internalType": "address[]",
335
+ "name": "targets",
336
+ "type": "address[]"
337
+ },
338
+ {
339
+ "indexed": false,
340
+ "internalType": "uint256[]",
341
+ "name": "values",
342
+ "type": "uint256[]"
343
+ },
344
+ {
345
+ "indexed": false,
346
+ "internalType": "string[]",
347
+ "name": "signatures",
348
+ "type": "string[]"
349
+ },
350
+ {
351
+ "indexed": false,
352
+ "internalType": "bytes[]",
353
+ "name": "calldatas",
354
+ "type": "bytes[]"
355
+ },
356
+ {
357
+ "indexed": false,
358
+ "internalType": "uint256",
359
+ "name": "voteStart",
360
+ "type": "uint256"
361
+ },
362
+ {
363
+ "indexed": false,
364
+ "internalType": "uint256",
365
+ "name": "voteEnd",
366
+ "type": "uint256"
367
+ },
368
+ {
369
+ "indexed": false,
370
+ "internalType": "string",
371
+ "name": "description",
372
+ "type": "string"
373
+ }
374
+ ],
375
+ "name": "ProposalCreated",
376
+ "type": "event"
377
+ },
378
+ {
379
+ "anonymous": false,
380
+ "inputs": [
381
+ {
382
+ "indexed": false,
383
+ "internalType": "uint256",
384
+ "name": "proposalId",
385
+ "type": "uint256"
386
+ }
387
+ ],
388
+ "name": "ProposalExecuted",
389
+ "type": "event"
390
+ },
391
+ {
392
+ "anonymous": false,
393
+ "inputs": [
394
+ {
395
+ "indexed": false,
396
+ "internalType": "uint256",
397
+ "name": "proposalId",
398
+ "type": "uint256"
399
+ },
400
+ {
401
+ "indexed": false,
402
+ "internalType": "uint256",
403
+ "name": "etaSeconds",
404
+ "type": "uint256"
405
+ }
406
+ ],
407
+ "name": "ProposalQueued",
408
+ "type": "event"
409
+ },
410
+ {
411
+ "anonymous": false,
412
+ "inputs": [
413
+ {
414
+ "indexed": false,
415
+ "internalType": "uint256",
416
+ "name": "oldProposalThreshold",
417
+ "type": "uint256"
418
+ },
419
+ {
420
+ "indexed": false,
421
+ "internalType": "uint256",
422
+ "name": "newProposalThreshold",
423
+ "type": "uint256"
424
+ }
425
+ ],
426
+ "name": "ProposalThresholdSet",
427
+ "type": "event"
428
+ },
429
+ {
430
+ "anonymous": false,
431
+ "inputs": [
432
+ {
433
+ "indexed": false,
434
+ "internalType": "uint256",
435
+ "name": "oldQuorumNumerator",
436
+ "type": "uint256"
437
+ },
438
+ {
439
+ "indexed": false,
440
+ "internalType": "uint256",
441
+ "name": "newQuorumNumerator",
442
+ "type": "uint256"
443
+ }
444
+ ],
445
+ "name": "QuorumNumeratorUpdated",
446
+ "type": "event"
447
+ },
448
+ {
449
+ "anonymous": false,
450
+ "inputs": [
451
+ {
452
+ "indexed": false,
453
+ "internalType": "address",
454
+ "name": "oldTimelock",
455
+ "type": "address"
456
+ },
457
+ {
458
+ "indexed": false,
459
+ "internalType": "address",
460
+ "name": "newTimelock",
461
+ "type": "address"
462
+ }
463
+ ],
464
+ "name": "TimelockChange",
465
+ "type": "event"
466
+ },
467
+ {
468
+ "anonymous": false,
469
+ "inputs": [
470
+ {
471
+ "indexed": true,
472
+ "internalType": "address",
473
+ "name": "voter",
474
+ "type": "address"
475
+ },
476
+ {
477
+ "indexed": false,
478
+ "internalType": "uint256",
479
+ "name": "proposalId",
480
+ "type": "uint256"
481
+ },
482
+ {
483
+ "indexed": false,
484
+ "internalType": "uint8",
485
+ "name": "support",
486
+ "type": "uint8"
487
+ },
488
+ {
489
+ "indexed": false,
490
+ "internalType": "uint256",
491
+ "name": "weight",
492
+ "type": "uint256"
493
+ },
494
+ {
495
+ "indexed": false,
496
+ "internalType": "string",
497
+ "name": "reason",
498
+ "type": "string"
499
+ }
500
+ ],
501
+ "name": "VoteCast",
502
+ "type": "event"
503
+ },
504
+ {
505
+ "anonymous": false,
506
+ "inputs": [
507
+ {
508
+ "indexed": true,
509
+ "internalType": "address",
510
+ "name": "voter",
511
+ "type": "address"
512
+ },
513
+ {
514
+ "indexed": false,
515
+ "internalType": "uint256",
516
+ "name": "proposalId",
517
+ "type": "uint256"
518
+ },
519
+ {
520
+ "indexed": false,
521
+ "internalType": "uint8",
522
+ "name": "support",
523
+ "type": "uint8"
524
+ },
525
+ {
526
+ "indexed": false,
527
+ "internalType": "uint256",
528
+ "name": "weight",
529
+ "type": "uint256"
530
+ },
531
+ {
532
+ "indexed": false,
533
+ "internalType": "string",
534
+ "name": "reason",
535
+ "type": "string"
536
+ },
537
+ {
538
+ "indexed": false,
539
+ "internalType": "bytes",
540
+ "name": "params",
541
+ "type": "bytes"
542
+ }
543
+ ],
544
+ "name": "VoteCastWithParams",
545
+ "type": "event"
546
+ },
547
+ {
548
+ "anonymous": false,
549
+ "inputs": [
550
+ {
551
+ "indexed": false,
552
+ "internalType": "uint256",
553
+ "name": "oldVotingDelay",
554
+ "type": "uint256"
555
+ },
556
+ {
557
+ "indexed": false,
558
+ "internalType": "uint256",
559
+ "name": "newVotingDelay",
560
+ "type": "uint256"
561
+ }
562
+ ],
563
+ "name": "VotingDelaySet",
564
+ "type": "event"
565
+ },
566
+ {
567
+ "anonymous": false,
568
+ "inputs": [
569
+ {
570
+ "indexed": false,
571
+ "internalType": "uint256",
572
+ "name": "oldVotingPeriod",
573
+ "type": "uint256"
574
+ },
575
+ {
576
+ "indexed": false,
577
+ "internalType": "uint256",
578
+ "name": "newVotingPeriod",
579
+ "type": "uint256"
580
+ }
581
+ ],
582
+ "name": "VotingPeriodSet",
583
+ "type": "event"
584
+ },
585
+ {
586
+ "inputs": [],
587
+ "name": "BALLOT_TYPEHASH",
588
+ "outputs": [
589
+ {
590
+ "internalType": "bytes32",
591
+ "name": "",
592
+ "type": "bytes32"
593
+ }
594
+ ],
595
+ "stateMutability": "view",
596
+ "type": "function"
597
+ },
598
+ {
599
+ "inputs": [],
600
+ "name": "CLOCK_MODE",
601
+ "outputs": [
602
+ {
603
+ "internalType": "string",
604
+ "name": "",
605
+ "type": "string"
606
+ }
607
+ ],
608
+ "stateMutability": "view",
609
+ "type": "function"
610
+ },
611
+ {
612
+ "inputs": [],
613
+ "name": "COUNTING_MODE",
614
+ "outputs": [
615
+ {
616
+ "internalType": "string",
617
+ "name": "",
618
+ "type": "string"
619
+ }
620
+ ],
621
+ "stateMutability": "pure",
622
+ "type": "function"
623
+ },
624
+ {
625
+ "inputs": [],
626
+ "name": "EXTENDED_BALLOT_TYPEHASH",
627
+ "outputs": [
628
+ {
629
+ "internalType": "bytes32",
630
+ "name": "",
631
+ "type": "bytes32"
632
+ }
633
+ ],
634
+ "stateMutability": "view",
635
+ "type": "function"
636
+ },
637
+ {
638
+ "inputs": [
639
+ {
640
+ "internalType": "address[]",
641
+ "name": "targets",
642
+ "type": "address[]"
643
+ },
644
+ {
645
+ "internalType": "uint256[]",
646
+ "name": "values",
647
+ "type": "uint256[]"
648
+ },
649
+ {
650
+ "internalType": "bytes[]",
651
+ "name": "calldatas",
652
+ "type": "bytes[]"
653
+ },
654
+ {
655
+ "internalType": "bytes32",
656
+ "name": "descriptionHash",
657
+ "type": "bytes32"
658
+ }
659
+ ],
660
+ "name": "cancel",
661
+ "outputs": [
662
+ {
663
+ "internalType": "uint256",
664
+ "name": "",
665
+ "type": "uint256"
666
+ }
667
+ ],
668
+ "stateMutability": "nonpayable",
669
+ "type": "function"
670
+ },
671
+ {
672
+ "inputs": [
673
+ {
674
+ "internalType": "uint256",
675
+ "name": "proposalId",
676
+ "type": "uint256"
677
+ },
678
+ {
679
+ "internalType": "uint8",
680
+ "name": "support",
681
+ "type": "uint8"
682
+ }
683
+ ],
684
+ "name": "castVote",
685
+ "outputs": [
686
+ {
687
+ "internalType": "uint256",
688
+ "name": "",
689
+ "type": "uint256"
690
+ }
691
+ ],
692
+ "stateMutability": "nonpayable",
693
+ "type": "function"
694
+ },
695
+ {
696
+ "inputs": [
697
+ {
698
+ "internalType": "uint256",
699
+ "name": "proposalId",
700
+ "type": "uint256"
701
+ },
702
+ {
703
+ "internalType": "uint8",
704
+ "name": "support",
705
+ "type": "uint8"
706
+ },
707
+ {
708
+ "internalType": "address",
709
+ "name": "voter",
710
+ "type": "address"
711
+ },
712
+ {
713
+ "internalType": "bytes",
714
+ "name": "signature",
715
+ "type": "bytes"
716
+ }
717
+ ],
718
+ "name": "castVoteBySig",
719
+ "outputs": [
720
+ {
721
+ "internalType": "uint256",
722
+ "name": "",
723
+ "type": "uint256"
724
+ }
725
+ ],
726
+ "stateMutability": "nonpayable",
727
+ "type": "function"
728
+ },
729
+ {
730
+ "inputs": [
731
+ {
732
+ "internalType": "uint256",
733
+ "name": "proposalId",
734
+ "type": "uint256"
735
+ },
736
+ {
737
+ "internalType": "uint8",
738
+ "name": "support",
739
+ "type": "uint8"
740
+ },
741
+ {
742
+ "internalType": "string",
743
+ "name": "reason",
744
+ "type": "string"
745
+ }
746
+ ],
747
+ "name": "castVoteWithReason",
748
+ "outputs": [
749
+ {
750
+ "internalType": "uint256",
751
+ "name": "",
752
+ "type": "uint256"
753
+ }
754
+ ],
755
+ "stateMutability": "nonpayable",
756
+ "type": "function"
757
+ },
758
+ {
759
+ "inputs": [
760
+ {
761
+ "internalType": "uint256",
762
+ "name": "proposalId",
763
+ "type": "uint256"
764
+ },
765
+ {
766
+ "internalType": "uint8",
767
+ "name": "support",
768
+ "type": "uint8"
769
+ },
770
+ {
771
+ "internalType": "string",
772
+ "name": "reason",
773
+ "type": "string"
774
+ },
775
+ {
776
+ "internalType": "bytes",
777
+ "name": "params",
778
+ "type": "bytes"
779
+ }
780
+ ],
781
+ "name": "castVoteWithReasonAndParams",
782
+ "outputs": [
783
+ {
784
+ "internalType": "uint256",
785
+ "name": "",
786
+ "type": "uint256"
787
+ }
788
+ ],
789
+ "stateMutability": "nonpayable",
790
+ "type": "function"
791
+ },
792
+ {
793
+ "inputs": [
794
+ {
795
+ "internalType": "uint256",
796
+ "name": "proposalId",
797
+ "type": "uint256"
798
+ },
799
+ {
800
+ "internalType": "uint8",
801
+ "name": "support",
802
+ "type": "uint8"
803
+ },
804
+ {
805
+ "internalType": "address",
806
+ "name": "voter",
807
+ "type": "address"
808
+ },
809
+ {
810
+ "internalType": "string",
811
+ "name": "reason",
812
+ "type": "string"
813
+ },
814
+ {
815
+ "internalType": "bytes",
816
+ "name": "params",
817
+ "type": "bytes"
818
+ },
819
+ {
820
+ "internalType": "bytes",
821
+ "name": "signature",
822
+ "type": "bytes"
823
+ }
824
+ ],
825
+ "name": "castVoteWithReasonAndParamsBySig",
826
+ "outputs": [
827
+ {
828
+ "internalType": "uint256",
829
+ "name": "",
830
+ "type": "uint256"
831
+ }
832
+ ],
833
+ "stateMutability": "nonpayable",
834
+ "type": "function"
835
+ },
836
+ {
837
+ "inputs": [],
838
+ "name": "clock",
839
+ "outputs": [
840
+ {
841
+ "internalType": "uint48",
842
+ "name": "",
843
+ "type": "uint48"
844
+ }
845
+ ],
846
+ "stateMutability": "view",
847
+ "type": "function"
848
+ },
849
+ {
850
+ "inputs": [],
851
+ "name": "eip712Domain",
852
+ "outputs": [
853
+ {
854
+ "internalType": "bytes1",
855
+ "name": "fields",
856
+ "type": "bytes1"
857
+ },
858
+ {
859
+ "internalType": "string",
860
+ "name": "name",
861
+ "type": "string"
862
+ },
863
+ {
864
+ "internalType": "string",
865
+ "name": "version",
866
+ "type": "string"
867
+ },
868
+ {
869
+ "internalType": "uint256",
870
+ "name": "chainId",
871
+ "type": "uint256"
872
+ },
873
+ {
874
+ "internalType": "address",
875
+ "name": "verifyingContract",
876
+ "type": "address"
877
+ },
878
+ {
879
+ "internalType": "bytes32",
880
+ "name": "salt",
881
+ "type": "bytes32"
882
+ },
883
+ {
884
+ "internalType": "uint256[]",
885
+ "name": "extensions",
886
+ "type": "uint256[]"
887
+ }
888
+ ],
889
+ "stateMutability": "view",
890
+ "type": "function"
891
+ },
892
+ {
893
+ "inputs": [
894
+ {
895
+ "internalType": "address[]",
896
+ "name": "targets",
897
+ "type": "address[]"
898
+ },
899
+ {
900
+ "internalType": "uint256[]",
901
+ "name": "values",
902
+ "type": "uint256[]"
903
+ },
904
+ {
905
+ "internalType": "bytes[]",
906
+ "name": "calldatas",
907
+ "type": "bytes[]"
908
+ },
909
+ {
910
+ "internalType": "bytes32",
911
+ "name": "descriptionHash",
912
+ "type": "bytes32"
913
+ }
914
+ ],
915
+ "name": "execute",
916
+ "outputs": [
917
+ {
918
+ "internalType": "uint256",
919
+ "name": "",
920
+ "type": "uint256"
921
+ }
922
+ ],
923
+ "stateMutability": "payable",
924
+ "type": "function"
925
+ },
926
+ {
927
+ "inputs": [
928
+ {
929
+ "internalType": "address",
930
+ "name": "account",
931
+ "type": "address"
932
+ },
933
+ {
934
+ "internalType": "uint256",
935
+ "name": "timepoint",
936
+ "type": "uint256"
937
+ }
938
+ ],
939
+ "name": "getVotes",
940
+ "outputs": [
941
+ {
942
+ "internalType": "uint256",
943
+ "name": "",
944
+ "type": "uint256"
945
+ }
946
+ ],
947
+ "stateMutability": "view",
948
+ "type": "function"
949
+ },
950
+ {
951
+ "inputs": [
952
+ {
953
+ "internalType": "address",
954
+ "name": "account",
955
+ "type": "address"
956
+ },
957
+ {
958
+ "internalType": "uint256",
959
+ "name": "timepoint",
960
+ "type": "uint256"
961
+ },
962
+ {
963
+ "internalType": "bytes",
964
+ "name": "params",
965
+ "type": "bytes"
966
+ }
967
+ ],
968
+ "name": "getVotesWithParams",
969
+ "outputs": [
970
+ {
971
+ "internalType": "uint256",
972
+ "name": "",
973
+ "type": "uint256"
974
+ }
975
+ ],
976
+ "stateMutability": "view",
977
+ "type": "function"
978
+ },
979
+ {
980
+ "inputs": [
981
+ {
982
+ "internalType": "uint256",
983
+ "name": "proposalId",
984
+ "type": "uint256"
985
+ },
986
+ {
987
+ "internalType": "address",
988
+ "name": "account",
989
+ "type": "address"
990
+ }
991
+ ],
992
+ "name": "hasVoted",
993
+ "outputs": [
994
+ {
995
+ "internalType": "bool",
996
+ "name": "",
997
+ "type": "bool"
998
+ }
999
+ ],
1000
+ "stateMutability": "view",
1001
+ "type": "function"
1002
+ },
1003
+ {
1004
+ "inputs": [
1005
+ {
1006
+ "internalType": "address[]",
1007
+ "name": "targets",
1008
+ "type": "address[]"
1009
+ },
1010
+ {
1011
+ "internalType": "uint256[]",
1012
+ "name": "values",
1013
+ "type": "uint256[]"
1014
+ },
1015
+ {
1016
+ "internalType": "bytes[]",
1017
+ "name": "calldatas",
1018
+ "type": "bytes[]"
1019
+ },
1020
+ {
1021
+ "internalType": "bytes32",
1022
+ "name": "descriptionHash",
1023
+ "type": "bytes32"
1024
+ }
1025
+ ],
1026
+ "name": "hashProposal",
1027
+ "outputs": [
1028
+ {
1029
+ "internalType": "uint256",
1030
+ "name": "",
1031
+ "type": "uint256"
1032
+ }
1033
+ ],
1034
+ "stateMutability": "pure",
1035
+ "type": "function"
1036
+ },
1037
+ {
1038
+ "inputs": [],
1039
+ "name": "name",
1040
+ "outputs": [
1041
+ {
1042
+ "internalType": "string",
1043
+ "name": "",
1044
+ "type": "string"
1045
+ }
1046
+ ],
1047
+ "stateMutability": "view",
1048
+ "type": "function"
1049
+ },
1050
+ {
1051
+ "inputs": [
1052
+ {
1053
+ "internalType": "address",
1054
+ "name": "owner",
1055
+ "type": "address"
1056
+ }
1057
+ ],
1058
+ "name": "nonces",
1059
+ "outputs": [
1060
+ {
1061
+ "internalType": "uint256",
1062
+ "name": "",
1063
+ "type": "uint256"
1064
+ }
1065
+ ],
1066
+ "stateMutability": "view",
1067
+ "type": "function"
1068
+ },
1069
+ {
1070
+ "inputs": [
1071
+ {
1072
+ "internalType": "address",
1073
+ "name": "",
1074
+ "type": "address"
1075
+ },
1076
+ {
1077
+ "internalType": "address",
1078
+ "name": "",
1079
+ "type": "address"
1080
+ },
1081
+ {
1082
+ "internalType": "uint256[]",
1083
+ "name": "",
1084
+ "type": "uint256[]"
1085
+ },
1086
+ {
1087
+ "internalType": "uint256[]",
1088
+ "name": "",
1089
+ "type": "uint256[]"
1090
+ },
1091
+ {
1092
+ "internalType": "bytes",
1093
+ "name": "",
1094
+ "type": "bytes"
1095
+ }
1096
+ ],
1097
+ "name": "onERC1155BatchReceived",
1098
+ "outputs": [
1099
+ {
1100
+ "internalType": "bytes4",
1101
+ "name": "",
1102
+ "type": "bytes4"
1103
+ }
1104
+ ],
1105
+ "stateMutability": "nonpayable",
1106
+ "type": "function"
1107
+ },
1108
+ {
1109
+ "inputs": [
1110
+ {
1111
+ "internalType": "address",
1112
+ "name": "",
1113
+ "type": "address"
1114
+ },
1115
+ {
1116
+ "internalType": "address",
1117
+ "name": "",
1118
+ "type": "address"
1119
+ },
1120
+ {
1121
+ "internalType": "uint256",
1122
+ "name": "",
1123
+ "type": "uint256"
1124
+ },
1125
+ {
1126
+ "internalType": "uint256",
1127
+ "name": "",
1128
+ "type": "uint256"
1129
+ },
1130
+ {
1131
+ "internalType": "bytes",
1132
+ "name": "",
1133
+ "type": "bytes"
1134
+ }
1135
+ ],
1136
+ "name": "onERC1155Received",
1137
+ "outputs": [
1138
+ {
1139
+ "internalType": "bytes4",
1140
+ "name": "",
1141
+ "type": "bytes4"
1142
+ }
1143
+ ],
1144
+ "stateMutability": "nonpayable",
1145
+ "type": "function"
1146
+ },
1147
+ {
1148
+ "inputs": [
1149
+ {
1150
+ "internalType": "address",
1151
+ "name": "",
1152
+ "type": "address"
1153
+ },
1154
+ {
1155
+ "internalType": "address",
1156
+ "name": "",
1157
+ "type": "address"
1158
+ },
1159
+ {
1160
+ "internalType": "uint256",
1161
+ "name": "",
1162
+ "type": "uint256"
1163
+ },
1164
+ {
1165
+ "internalType": "bytes",
1166
+ "name": "",
1167
+ "type": "bytes"
1168
+ }
1169
+ ],
1170
+ "name": "onERC721Received",
1171
+ "outputs": [
1172
+ {
1173
+ "internalType": "bytes4",
1174
+ "name": "",
1175
+ "type": "bytes4"
1176
+ }
1177
+ ],
1178
+ "stateMutability": "nonpayable",
1179
+ "type": "function"
1180
+ },
1181
+ {
1182
+ "inputs": [
1183
+ {
1184
+ "internalType": "uint256",
1185
+ "name": "proposalId",
1186
+ "type": "uint256"
1187
+ }
1188
+ ],
1189
+ "name": "proposalDeadline",
1190
+ "outputs": [
1191
+ {
1192
+ "internalType": "uint256",
1193
+ "name": "",
1194
+ "type": "uint256"
1195
+ }
1196
+ ],
1197
+ "stateMutability": "view",
1198
+ "type": "function"
1199
+ },
1200
+ {
1201
+ "inputs": [
1202
+ {
1203
+ "internalType": "uint256",
1204
+ "name": "proposalId",
1205
+ "type": "uint256"
1206
+ }
1207
+ ],
1208
+ "name": "proposalEta",
1209
+ "outputs": [
1210
+ {
1211
+ "internalType": "uint256",
1212
+ "name": "",
1213
+ "type": "uint256"
1214
+ }
1215
+ ],
1216
+ "stateMutability": "view",
1217
+ "type": "function"
1218
+ },
1219
+ {
1220
+ "inputs": [
1221
+ {
1222
+ "internalType": "uint256",
1223
+ "name": "proposalId",
1224
+ "type": "uint256"
1225
+ }
1226
+ ],
1227
+ "name": "proposalNeedsQueuing",
1228
+ "outputs": [
1229
+ {
1230
+ "internalType": "bool",
1231
+ "name": "",
1232
+ "type": "bool"
1233
+ }
1234
+ ],
1235
+ "stateMutability": "view",
1236
+ "type": "function"
1237
+ },
1238
+ {
1239
+ "inputs": [
1240
+ {
1241
+ "internalType": "uint256",
1242
+ "name": "proposalId",
1243
+ "type": "uint256"
1244
+ }
1245
+ ],
1246
+ "name": "proposalProposer",
1247
+ "outputs": [
1248
+ {
1249
+ "internalType": "address",
1250
+ "name": "",
1251
+ "type": "address"
1252
+ }
1253
+ ],
1254
+ "stateMutability": "view",
1255
+ "type": "function"
1256
+ },
1257
+ {
1258
+ "inputs": [
1259
+ {
1260
+ "internalType": "uint256",
1261
+ "name": "proposalId",
1262
+ "type": "uint256"
1263
+ }
1264
+ ],
1265
+ "name": "proposalSnapshot",
1266
+ "outputs": [
1267
+ {
1268
+ "internalType": "uint256",
1269
+ "name": "",
1270
+ "type": "uint256"
1271
+ }
1272
+ ],
1273
+ "stateMutability": "view",
1274
+ "type": "function"
1275
+ },
1276
+ {
1277
+ "inputs": [],
1278
+ "name": "proposalThreshold",
1279
+ "outputs": [
1280
+ {
1281
+ "internalType": "uint256",
1282
+ "name": "",
1283
+ "type": "uint256"
1284
+ }
1285
+ ],
1286
+ "stateMutability": "view",
1287
+ "type": "function"
1288
+ },
1289
+ {
1290
+ "inputs": [
1291
+ {
1292
+ "internalType": "uint256",
1293
+ "name": "proposalId",
1294
+ "type": "uint256"
1295
+ }
1296
+ ],
1297
+ "name": "proposalVotes",
1298
+ "outputs": [
1299
+ {
1300
+ "internalType": "uint256",
1301
+ "name": "againstVotes",
1302
+ "type": "uint256"
1303
+ },
1304
+ {
1305
+ "internalType": "uint256",
1306
+ "name": "forVotes",
1307
+ "type": "uint256"
1308
+ },
1309
+ {
1310
+ "internalType": "uint256",
1311
+ "name": "abstainVotes",
1312
+ "type": "uint256"
1313
+ }
1314
+ ],
1315
+ "stateMutability": "view",
1316
+ "type": "function"
1317
+ },
1318
+ {
1319
+ "inputs": [
1320
+ {
1321
+ "internalType": "address[]",
1322
+ "name": "targets",
1323
+ "type": "address[]"
1324
+ },
1325
+ {
1326
+ "internalType": "uint256[]",
1327
+ "name": "values",
1328
+ "type": "uint256[]"
1329
+ },
1330
+ {
1331
+ "internalType": "bytes[]",
1332
+ "name": "calldatas",
1333
+ "type": "bytes[]"
1334
+ },
1335
+ {
1336
+ "internalType": "string",
1337
+ "name": "description",
1338
+ "type": "string"
1339
+ }
1340
+ ],
1341
+ "name": "propose",
1342
+ "outputs": [
1343
+ {
1344
+ "internalType": "uint256",
1345
+ "name": "",
1346
+ "type": "uint256"
1347
+ }
1348
+ ],
1349
+ "stateMutability": "nonpayable",
1350
+ "type": "function"
1351
+ },
1352
+ {
1353
+ "inputs": [
1354
+ {
1355
+ "internalType": "address[]",
1356
+ "name": "targets",
1357
+ "type": "address[]"
1358
+ },
1359
+ {
1360
+ "internalType": "uint256[]",
1361
+ "name": "values",
1362
+ "type": "uint256[]"
1363
+ },
1364
+ {
1365
+ "internalType": "bytes[]",
1366
+ "name": "calldatas",
1367
+ "type": "bytes[]"
1368
+ },
1369
+ {
1370
+ "internalType": "bytes32",
1371
+ "name": "descriptionHash",
1372
+ "type": "bytes32"
1373
+ }
1374
+ ],
1375
+ "name": "queue",
1376
+ "outputs": [
1377
+ {
1378
+ "internalType": "uint256",
1379
+ "name": "",
1380
+ "type": "uint256"
1381
+ }
1382
+ ],
1383
+ "stateMutability": "nonpayable",
1384
+ "type": "function"
1385
+ },
1386
+ {
1387
+ "inputs": [
1388
+ {
1389
+ "internalType": "uint256",
1390
+ "name": "blockNumber",
1391
+ "type": "uint256"
1392
+ }
1393
+ ],
1394
+ "name": "quorum",
1395
+ "outputs": [
1396
+ {
1397
+ "internalType": "uint256",
1398
+ "name": "",
1399
+ "type": "uint256"
1400
+ }
1401
+ ],
1402
+ "stateMutability": "view",
1403
+ "type": "function"
1404
+ },
1405
+ {
1406
+ "inputs": [],
1407
+ "name": "quorumDenominator",
1408
+ "outputs": [
1409
+ {
1410
+ "internalType": "uint256",
1411
+ "name": "",
1412
+ "type": "uint256"
1413
+ }
1414
+ ],
1415
+ "stateMutability": "view",
1416
+ "type": "function"
1417
+ },
1418
+ {
1419
+ "inputs": [
1420
+ {
1421
+ "internalType": "uint256",
1422
+ "name": "timepoint",
1423
+ "type": "uint256"
1424
+ }
1425
+ ],
1426
+ "name": "quorumNumerator",
1427
+ "outputs": [
1428
+ {
1429
+ "internalType": "uint256",
1430
+ "name": "",
1431
+ "type": "uint256"
1432
+ }
1433
+ ],
1434
+ "stateMutability": "view",
1435
+ "type": "function"
1436
+ },
1437
+ {
1438
+ "inputs": [],
1439
+ "name": "quorumNumerator",
1440
+ "outputs": [
1441
+ {
1442
+ "internalType": "uint256",
1443
+ "name": "",
1444
+ "type": "uint256"
1445
+ }
1446
+ ],
1447
+ "stateMutability": "view",
1448
+ "type": "function"
1449
+ },
1450
+ {
1451
+ "inputs": [
1452
+ {
1453
+ "internalType": "uint256",
1454
+ "name": "proposalId",
1455
+ "type": "uint256"
1456
+ }
1457
+ ],
1458
+ "name": "quorumReached",
1459
+ "outputs": [
1460
+ {
1461
+ "internalType": "bool",
1462
+ "name": "",
1463
+ "type": "bool"
1464
+ }
1465
+ ],
1466
+ "stateMutability": "view",
1467
+ "type": "function"
1468
+ },
1469
+ {
1470
+ "inputs": [
1471
+ {
1472
+ "internalType": "address",
1473
+ "name": "target",
1474
+ "type": "address"
1475
+ },
1476
+ {
1477
+ "internalType": "uint256",
1478
+ "name": "value",
1479
+ "type": "uint256"
1480
+ },
1481
+ {
1482
+ "internalType": "bytes",
1483
+ "name": "data",
1484
+ "type": "bytes"
1485
+ }
1486
+ ],
1487
+ "name": "relay",
1488
+ "outputs": [],
1489
+ "stateMutability": "payable",
1490
+ "type": "function"
1491
+ },
1492
+ {
1493
+ "inputs": [
1494
+ {
1495
+ "internalType": "uint256",
1496
+ "name": "newProposalThreshold",
1497
+ "type": "uint256"
1498
+ }
1499
+ ],
1500
+ "name": "setProposalThreshold",
1501
+ "outputs": [],
1502
+ "stateMutability": "nonpayable",
1503
+ "type": "function"
1504
+ },
1505
+ {
1506
+ "inputs": [
1507
+ {
1508
+ "internalType": "uint48",
1509
+ "name": "newVotingDelay",
1510
+ "type": "uint48"
1511
+ }
1512
+ ],
1513
+ "name": "setVotingDelay",
1514
+ "outputs": [],
1515
+ "stateMutability": "nonpayable",
1516
+ "type": "function"
1517
+ },
1518
+ {
1519
+ "inputs": [
1520
+ {
1521
+ "internalType": "uint32",
1522
+ "name": "newVotingPeriod",
1523
+ "type": "uint32"
1524
+ }
1525
+ ],
1526
+ "name": "setVotingPeriod",
1527
+ "outputs": [],
1528
+ "stateMutability": "nonpayable",
1529
+ "type": "function"
1530
+ },
1531
+ {
1532
+ "inputs": [
1533
+ {
1534
+ "internalType": "uint256",
1535
+ "name": "proposalId",
1536
+ "type": "uint256"
1537
+ }
1538
+ ],
1539
+ "name": "state",
1540
+ "outputs": [
1541
+ {
1542
+ "internalType": "enum IGovernor.ProposalState",
1543
+ "name": "",
1544
+ "type": "uint8"
1545
+ }
1546
+ ],
1547
+ "stateMutability": "view",
1548
+ "type": "function"
1549
+ },
1550
+ {
1551
+ "inputs": [
1552
+ {
1553
+ "internalType": "bytes4",
1554
+ "name": "interfaceId",
1555
+ "type": "bytes4"
1556
+ }
1557
+ ],
1558
+ "name": "supportsInterface",
1559
+ "outputs": [
1560
+ {
1561
+ "internalType": "bool",
1562
+ "name": "",
1563
+ "type": "bool"
1564
+ }
1565
+ ],
1566
+ "stateMutability": "view",
1567
+ "type": "function"
1568
+ },
1569
+ {
1570
+ "inputs": [],
1571
+ "name": "timelock",
1572
+ "outputs": [
1573
+ {
1574
+ "internalType": "address",
1575
+ "name": "",
1576
+ "type": "address"
1577
+ }
1578
+ ],
1579
+ "stateMutability": "view",
1580
+ "type": "function"
1581
+ },
1582
+ {
1583
+ "inputs": [
1584
+ {
1585
+ "internalType": "bytes32",
1586
+ "name": "descriptionHash",
1587
+ "type": "bytes32"
1588
+ }
1589
+ ],
1590
+ "name": "timelockSalt",
1591
+ "outputs": [
1592
+ {
1593
+ "internalType": "bytes32",
1594
+ "name": "",
1595
+ "type": "bytes32"
1596
+ }
1597
+ ],
1598
+ "stateMutability": "view",
1599
+ "type": "function"
1600
+ },
1601
+ {
1602
+ "inputs": [],
1603
+ "name": "token",
1604
+ "outputs": [
1605
+ {
1606
+ "internalType": "contract IERC5805",
1607
+ "name": "",
1608
+ "type": "address"
1609
+ }
1610
+ ],
1611
+ "stateMutability": "view",
1612
+ "type": "function"
1613
+ },
1614
+ {
1615
+ "inputs": [
1616
+ {
1617
+ "internalType": "uint256",
1618
+ "name": "newQuorumNumerator",
1619
+ "type": "uint256"
1620
+ }
1621
+ ],
1622
+ "name": "updateQuorumNumerator",
1623
+ "outputs": [],
1624
+ "stateMutability": "nonpayable",
1625
+ "type": "function"
1626
+ },
1627
+ {
1628
+ "inputs": [
1629
+ {
1630
+ "internalType": "contract TimelockController",
1631
+ "name": "newTimelock",
1632
+ "type": "address"
1633
+ }
1634
+ ],
1635
+ "name": "updateTimelock",
1636
+ "outputs": [],
1637
+ "stateMutability": "nonpayable",
1638
+ "type": "function"
1639
+ },
1640
+ {
1641
+ "inputs": [],
1642
+ "name": "version",
1643
+ "outputs": [
1644
+ {
1645
+ "internalType": "string",
1646
+ "name": "",
1647
+ "type": "string"
1648
+ }
1649
+ ],
1650
+ "stateMutability": "view",
1651
+ "type": "function"
1652
+ },
1653
+ {
1654
+ "inputs": [
1655
+ {
1656
+ "internalType": "uint256",
1657
+ "name": "proposalId",
1658
+ "type": "uint256"
1659
+ }
1660
+ ],
1661
+ "name": "voteSucceeded",
1662
+ "outputs": [
1663
+ {
1664
+ "internalType": "bool",
1665
+ "name": "",
1666
+ "type": "bool"
1667
+ }
1668
+ ],
1669
+ "stateMutability": "view",
1670
+ "type": "function"
1671
+ },
1672
+ {
1673
+ "inputs": [],
1674
+ "name": "votingDelay",
1675
+ "outputs": [
1676
+ {
1677
+ "internalType": "uint256",
1678
+ "name": "",
1679
+ "type": "uint256"
1680
+ }
1681
+ ],
1682
+ "stateMutability": "view",
1683
+ "type": "function"
1684
+ },
1685
+ {
1686
+ "inputs": [],
1687
+ "name": "votingPeriod",
1688
+ "outputs": [
1689
+ {
1690
+ "internalType": "uint256",
1691
+ "name": "",
1692
+ "type": "uint256"
1693
+ }
1694
+ ],
1695
+ "stateMutability": "view",
1696
+ "type": "function"
1697
+ },
1698
+ {
1699
+ "stateMutability": "payable",
1700
+ "type": "receive"
1701
+ }
1702
+ ],
1703
+ "bytecode": "0x6101806040523480156200001257600080fd5b5060405162004f5738038062004f57833981016040819052620000359162000799565b8481878686866040518060400160405280600b81526020016a27ad1023b7bb32b93737b960a91b81525080620000706200018b60201b60201c565b6200007d826000620001a6565b610120526200008e816001620001a6565b61014052815160208084019190912060e052815190820120610100524660a0526200011c60e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526003620001338282620008be565b5062000141905083620001df565b6200014c8262000245565b6200015781620002ec565b5050506001600160a01b03166101605262000172816200032d565b506200017e81620003cd565b5050505050505062000a3f565b6040805180820190915260018152603160f81b602082015290565b6000602083511015620001c657620001be8362000436565b9050620001d9565b81620001d38482620008be565b5060ff90505b92915050565b6008546040805165ffffffffffff928316815291831660208301527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a16008805465ffffffffffff191665ffffffffffff92909216919091179055565b8063ffffffff16600003620002755760405163f1cfbf0560e01b8152600060048201526024015b60405180910390fd5b6008546040805163ffffffff66010000000000009093048316815291831660208301527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a16008805463ffffffff90921666010000000000000263ffffffff60301b19909216919091179055565b60075460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600755565b6064808211156200035c5760405163243e544560e01b815260048101839052602481018290526044016200026c565b60006200036862000479565b90506200038d6200037862000495565b620003838562000517565b600a919062000551565b505060408051828152602081018590527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a1505050565b600b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600080829050601f8151111562000464578260405163305a27a960e01b81526004016200026c91906200098a565b80516200047182620009da565b179392505050565b600062000487600a6200056e565b6001600160d01b0316905090565b6000620004a26101605190565b6001600160a01b03166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620004fe575060408051601f3d908101601f19168201909252620004fb91810190620009ff565b60015b62000512576200050d620005be565b905090565b919050565b60006001600160d01b038211156200054d576040516306dfcc6560e41b815260d06004820152602481018390526044016200026c565b5090565b60008062000561858585620005cb565b915091505b935093915050565b80546000908015620005b4576200059a836200058c60018462000a1d565b600091825260209091200190565b54660100000000000090046001600160d01b0316620005b7565b60005b9392505050565b60006200050d4362000734565b825460009081908015620006d5576000620005ed876200058c60018562000a1d565b805490915065ffffffffffff80821691660100000000000090046001600160d01b03169088168211156200063457604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff16036200067257825465ffffffffffff1666010000000000006001600160d01b03891602178355620006c6565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f5560008f815291909120945191519092166601000000000000029216919091179101555b94508593506200056692505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316660100000000000002919093161792019190915590508162000566565b600065ffffffffffff8211156200054d576040516306dfcc6560e41b815260306004820152602481018390526044016200026c565b6001600160a01b03811681146200077f57600080fd5b50565b805165ffffffffffff811681146200051257600080fd5b60008060008060008060c08789031215620007b357600080fd5b8651620007c08162000769565b6020880151909650620007d38162000769565b9450620007e36040880162000782565b9350606087015163ffffffff81168114620007fd57600080fd5b809350506080870151915060a087015190509295509295509295565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200084457607f821691505b6020821081036200086557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620008b957600081815260208120601f850160051c81016020861015620008945750805b601f850160051c820191505b81811015620008b557828155600101620008a0565b5050505b505050565b81516001600160401b03811115620008da57620008da62000819565b620008f281620008eb84546200082f565b846200086b565b602080601f8311600181146200092a5760008415620009115750858301515b600019600386901b1c1916600185901b178555620008b5565b600085815260208120601f198616915b828110156200095b578886015182559484019460019091019084016200093a565b50858210156200097a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b81811015620009b9578581018301518582016040015282016200099b565b506000604082860101526040601f19601f8301168501019250505092915050565b80516020808301519190811015620008655760001960209190910360031b1b16919050565b60006020828403121562000a1257600080fd5b620005b78262000782565b81810381811115620001d957634e487b7160e01b600052601160045260246000fd5b60805160a05160c05160e0516101005161012051610140516101605161448f62000ac860003960008181610a9c01528181610f0e0152818161148101528181611562015281816121df0152612470015260006121aa0152600061217d01526000612aa901526000612a81015260006129dc01526000612a0601526000612a30015261448f6000f3fe6080604052600436106102e85760003560e01c80637ecebe0011610190578063c01f9e37116100dc578063deaaa7cc11610095578063ece40cc11161006f578063ece40cc114610a2d578063f23a6e6114610a4d578063f8ce560a14610a6d578063fc0c546a14610a8d57600080fd5b8063deaaa7cc146109b9578063e540d01d146109ed578063eb9019d414610a0d57600080fd5b8063c01f9e37146108e2578063c28bc2fa14610902578063c59057e414610915578063d33219b414610935578063d4a8dd9814610953578063dd4e2ba51461097357600080fd5b80639a802a6d11610149578063a9a9529411610123578063a9a9529414610855578063ab58fb8e14610875578063b58131b0146108ad578063bc197c81146108c257600080fd5b80639a802a6d14610800578063a7713a7014610820578063a890c9101461083557600080fd5b80637ecebe001461072257806384b0196e146107585780638d73b031146107805780638ff262e3146107a057806391ddadf4146107c057806397c3d334146107ec57600080fd5b8063438596321161024f5780635b8d0e0d1161020857806360c4247f116101e257806360c4247f146106a257806379051887146106c25780637b3c71d3146106e25780637d5e81e21461070257600080fd5b80635b8d0e0d146106355780635c573d44146106555780635f398a141461068257600080fd5b80634385963214610517578063452115d6146105615780634bf5d7e914610581578063544ffc9c1461059657806354fd4d50146105eb578063567813881461061557600080fd5b8063160cbed7116102a1578063160cbed71461044e5780632656227d1461046e5780632d63f693146104815780632fe3e261146104a15780633932abb1146104d55780633e4f49e6146104ea57600080fd5b806301ffc9a71461032457806302a251a31461035957806306f3f9e61461038557806306fdde03146103a5578063143489d0146103c7578063150b7a021461041557600080fd5b3661031f57306102f6610ac0565b6001600160a01b03161461031d57604051637485328f60e11b815260040160405180910390fd5b005b600080fd5b34801561033057600080fd5b5061034461033f3660046133cd565b610ad9565b60405190151581526020015b60405180910390f35b34801561036557600080fd5b50600854600160301b900463ffffffff165b604051908152602001610350565b34801561039157600080fd5b5061031d6103a03660046133f7565b610b2b565b3480156103b157600080fd5b506103ba610b3f565b6040516103509190613460565b3480156103d357600080fd5b506103fd6103e23660046133f7565b6000908152600460205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610350565b34801561042157600080fd5b50610435610430366004613553565b610bd1565b6040516001600160e01b03199091168152602001610350565b34801561045a57600080fd5b5061037761046936600461372a565b610c14565b61037761047c36600461372a565b610ce3565b34801561048d57600080fd5b5061037761049c3660046133f7565b610e57565b3480156104ad57600080fd5b506103777f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a81181565b3480156104e157600080fd5b50610377610e78565b3480156104f657600080fd5b5061050a6105053660046133f7565b610e8b565b60405161035091906137f1565b34801561052357600080fd5b506103446105323660046137ff565b60008281526009602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b34801561056d57600080fd5b5061037761057c36600461372a565b610e96565b34801561058d57600080fd5b506103ba610f0a565b3480156105a257600080fd5b506105d06105b13660046133f7565b6000908152600960205260409020805460018201546002909201549092565b60408051938452602084019290925290820152606001610350565b3480156105f757600080fd5b506040805180820190915260018152603160f81b60208201526103ba565b34801561062157600080fd5b50610377610630366004613840565b610fcc565b34801561064157600080fd5b506103776106503660046138b4565b610ff5565b34801561066157600080fd5b506103776106703660046133f7565b6001600160601b03193060601b161890565b34801561068e57600080fd5b5061037761069d36600461396e565b611154565b3480156106ae57600080fd5b506103776106bd3660046133f7565b6111a9565b3480156106ce57600080fd5b5061031d6106dd366004613a05565b611237565b3480156106ee57600080fd5b506103776106fd366004613a22565b611248565b34801561070e57600080fd5b5061037761071d366004613a7b565b611290565b34801561072e57600080fd5b5061037761073d366004613b2f565b6001600160a01b031660009081526002602052604090205490565b34801561076457600080fd5b5061076d611349565b6040516103509796959493929190613b87565b34801561078c57600080fd5b5061034461079b3660046133f7565b61138f565b3480156107ac57600080fd5b506103776107bb366004613bf7565b6113ab565b3480156107cc57600080fd5b506107d561147d565b60405165ffffffffffff9091168152602001610350565b3480156107f857600080fd5b506064610377565b34801561080c57600080fd5b5061037761081b366004613c48565b611505565b34801561082c57600080fd5b5061037761151c565b34801561084157600080fd5b5061031d610850366004613b2f565b611536565b34801561086157600080fd5b506103446108703660046133f7565b611547565b34801561088157600080fd5b506103776108903660046133f7565b60009081526004602052604090206001015465ffffffffffff1690565b3480156108b957600080fd5b50610377611550565b3480156108ce57600080fd5b506104356108dd366004613ca0565b611642565b3480156108ee57600080fd5b506103776108fd3660046133f7565b611686565b61031d610910366004613d33565b6116c9565b34801561092157600080fd5b5061037761093036600461372a565b611749565b34801561094157600080fd5b50600b546001600160a01b03166103fd565b34801561095f57600080fd5b5061034461096e3660046133f7565b611783565b34801561097f57600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e908201526103ba565b3480156109c557600080fd5b506103777ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d781565b3480156109f957600080fd5b5061031d610a08366004613d76565b61178e565b348015610a1957600080fd5b50610377610a28366004613d9c565b61179f565b348015610a3957600080fd5b5061031d610a483660046133f7565b6117c0565b348015610a5957600080fd5b50610435610a68366004613dc8565b6117d1565b348015610a7957600080fd5b50610377610a883660046133f7565b611815565b348015610a9957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103fd565b6000610ad4600b546001600160a01b031690565b905090565b60006001600160e01b031982166332a2ad4360e11b1480610b0a57506001600160e01b03198216630271189760e51b145b80610b2557506301ffc9a760e01b6001600160e01b03198316145b92915050565b610b33611820565b610b3c8161189a565b50565b606060038054610b4e90613e30565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7a90613e30565b8015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b820191906000526020600020905b815481529060010190602001808311610baa57829003601f168201915b5050505050905090565b600030610bdc610ac0565b6001600160a01b031614610c0357604051637485328f60e11b815260040160405180910390fd5b50630a85bd0160e11b949350505050565b600080610c2386868686611749565b9050610c3881610c336004611930565b611953565b506000610c488288888888611992565b905065ffffffffffff811615610cc057600082815260046020908152604091829020600101805465ffffffffffff191665ffffffffffff85169081179091558251858152918201527f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892910160405180910390a1610cd9565b604051634844252360e11b815260040160405180910390fd5b5095945050505050565b600080610cf286868686611749565b9050610d1281610d026005611930565b610d0c6004611930565b17611953565b506000818152600460205260409020805460ff60f01b1916600160f01b17905530610d3b610ac0565b6001600160a01b031614610dcd5760005b8651811015610dcb57306001600160a01b0316878281518110610d7157610d71613e6a565b60200260200101516001600160a01b031603610dbb57610dbb858281518110610d9c57610d9c613e6a565b60200260200101518051906020012060056119a190919063ffffffff16565b610dc481613e96565b9050610d4c565b505b610dda8187878787611a03565b30610de3610ac0565b6001600160a01b031614158015610e0f57506005546001600160801b03808216600160801b9092041614155b15610e1a5760006005555b6040518181527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906020015b60405180910390a195945050505050565b600090815260046020526040902054600160a01b900465ffffffffffff1690565b6000610ad460085465ffffffffffff1690565b6000610b2582611a17565b600080610ea586868686611749565b9050610eb581610c336000611930565b506000818152600460205260409020546001600160a01b03163314610ef45760405163233d98e360e01b81523360048201526024015b60405180910390fd5b610f0086868686611b56565b9695505050505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634bf5d7e96040518163ffffffff1660e01b8152600401600060405180830381865afa925050508015610f8b57506040513d6000823e601f3d908101601f19168201604052610f889190810190613eaf565b60015b610fc7575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b600080339050610fed84828560405180602001604052806000815250611b6d565b949350505050565b6000806110d8876110d27f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a8118c8c8c61104a8e6001600160a01b0316600090815260026020526040902080546001810190915590565b8d8d60405161105a929190613f1c565b60405180910390208c805190602001206040516020016110b79796959493929190968752602087019590955260ff9390931660408601526001600160a01b03919091166060850152608084015260a083015260c082015260e00190565b60405160208183030381529060405280519060200120611b90565b85611bbd565b905080611103576040516394ab6c0760e01b81526001600160a01b0388166004820152602401610eeb565b61114789888a89898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250611c31915050565b9998505050505050505050565b60008033905061119e87828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611c31915050565b979650505050505050565b600a805460009182906111bd600184613f2c565b815481106111cd576111cd613e6a565b6000918252602090912001805490915065ffffffffffff811690600160301b90046001600160d01b0316858211611210576001600160d01b031695945050505050565b61122461121c87611d13565b600a90611d4a565b6001600160d01b03169695505050505050565b61123f611820565b610b3c81611dff565b600080339050610f0086828787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b6d92505050565b60003361129d8184611e65565b6112c55760405163d9b3955760e01b81526001600160a01b0382166004820152602401610eeb565b60006112cf611550565b9050801561133c5760006112fe8360016112e761147d565b6112f19190613f3f565b65ffffffffffff1661179f565b90508181101561133a57604051636121770b60e11b81526001600160a01b03841660048201526024810182905260448101839052606401610eeb565b505b61119e8787878786611f56565b60006060806000806000606061135d612176565b6113656121a3565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000818152600960205260408120805460019091015411610b25565b600080611437846110d27ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d78989896114008b6001600160a01b0316600090815260026020526040902080546001810190915590565b60408051602081019690965285019390935260ff90911660608401526001600160a01b0316608083015260a082015260c0016110b7565b905080611462576040516394ab6c0760e01b81526001600160a01b0385166004820152602401610eeb565b610f0086858760405180602001604052806000815250611b6d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114f9575060408051601f3d908101601f191682019092526114f691810190613f65565b60015b610fc757610ad46121d0565b60006115128484846121db565b90505b9392505050565b6000611528600a612271565b6001600160d01b0316905090565b61153e611820565b610b3c816122aa565b60006001610b25565b60008061155c60075490565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638e539e8c600161159961147d565b6115a39190613f3f565b6040516001600160e01b031960e084901b16815265ffffffffffff9091166004820152602401602060405180830381865afa1580156115e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160a9190613f82565b9050670de0b6b3a764000061161f8284613f9b565b61163190670de0b6b3a763ffff613fb2565b61163b9190613fdb565b9250505090565b60003061164d610ac0565b6001600160a01b03161461167457604051637485328f60e11b815260040160405180910390fd5b5063bc197c8160e01b95945050505050565b6000818152600460205260408120546116bb90600160d01b810463ffffffff1690600160a01b900465ffffffffffff16613ffd565b65ffffffffffff1692915050565b6116d1611820565b600080856001600160a01b03168585856040516116ef929190613f1c565b60006040518083038185875af1925050503d806000811461172c576040519150601f19603f3d011682016040523d82523d6000602084013e611731565b606091505b50915091506117408282612313565b50505050505050565b60008484848460405160200161176294939291906140aa565b60408051601f19818403018152919052805160209091012095945050505050565b6000610b258261232f565b611796611820565b610b3c81612366565b600061151583836117bb60408051602081019091526000815290565b6121db565b6117c8611820565b610b3c81612404565b6000306117dc610ac0565b6001600160a01b03161461180357604051637485328f60e11b815260040160405180910390fd5b5063f23a6e6160e01b95945050505050565b6000610b2582612445565b33611829610ac0565b6001600160a01b031614611852576040516347096e4760e01b8152336004820152602401610eeb565b3061185b610ac0565b6001600160a01b031614611898576000803660405161187b929190613f1c565b604051809103902090505b8061189160056124ef565b0361188657505b565b6064808211156118c75760405163243e544560e01b81526004810183905260248101829052604401610eeb565b60006118d161151c565b90506118f06118de61147d565b6118e78561255e565b600a9190612592565b505060408051828152602081018590527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a1505050565b6000816007811115611944576119446137b9565b600160ff919091161b92915050565b60008061195f84610e8b565b905060008361196d83611930565b1603611515578381846040516331b75e4d60e01b8152600401610eeb939291906140f5565b6000610f0086868686866125ad565b81546001600160801b03600160801b8204811691811660018301909116036119cd576119cd6041612753565b6001600160801b03808216600090815260018086016020526040909120939093558354919092018216600160801b029116179055565b611a108585858585612765565b5050505050565b600080611a23836127f6565b90506005816007811115611a3957611a396137b9565b14611a445792915050565b6000838152600c60205260409081902054600b549151632c258a9f60e11b81526004810182905290916001600160a01b03169063584b153e90602401602060405180830381865afa158015611a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac19190614117565b15611ad0575060059392505050565b600b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa158015611b19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3d9190614117565b15611b4c575060079392505050565b5060029392505050565b6000611b6485858585612930565b95945050505050565b6000611b6485858585611b8b60408051602081019091526000815290565b611c31565b6000610b25611b9d6129cf565b8360405161190160f01b8152600281019290925260228201526042902090565b6000836001600160a01b03163b600003611c1f57600080611bde8585612afa565b5090925090506000816003811115611bf857611bf86137b9565b148015611c165750856001600160a01b0316826001600160a01b0316145b92505050611515565b611c2a848484612b47565b9050611515565b6000611c4186610c336001611930565b506000611c5786611c5189610e57565b856121db565b90506000611c688888888588612c22565b90508351600003611cbf57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda489888489604051611cb29493929190614139565b60405180910390a261119e565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87128988848989604051611d00959493929190614161565b60405180910390a2979650505050505050565b600065ffffffffffff821115611d46576040516306dfcc6560e41b81526030600482015260248101839052604401610eeb565b5090565b815460009081816005811115611da9576000611d6584612d25565b611d6f9085613f2c565b60008881526020902090915081015465ffffffffffff9081169087161015611d9957809150611da7565b611da4816001613fb2565b92505b505b6000611db787878585612e7e565b90508015611df257611ddc87611dce600184613f2c565b600091825260209091200190565b54600160301b90046001600160d01b031661119e565b6000979650505050505050565b6008546040805165ffffffffffff928316815291831660208301527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a16008805465ffffffffffff191665ffffffffffff92909216919091179055565b80516000906034811015611e7d576001915050610b25565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b14611eb057600192505050610b25565b600080611ebe602885613f2c565b90505b83811015611f3557600080611ef5888481518110611ee157611ee1613e6a565b01602001516001600160f81b031916612ee0565b9150915081611f0d5760019650505050505050610b25565b8060ff166004856001600160a01b0316901b179350505080611f2e90613e96565b9050611ec1565b50856001600160a01b0316816001600160a01b031614935050505092915050565b6000611f6b8686868680519060200120611749565b905084518651141580611f8057508351865114155b80611f8a57508551155b15611fbf57855184518651604051630447b05d60e41b8152600481019390935260248301919091526044820152606401610eeb565b600081815260046020526040902054600160a01b900465ffffffffffff161561200a5780611fec82610e8b565b6040516331b75e4d60e01b8152610eeb9291906000906004016140f5565b6000612014610e78565b61201c61147d565b65ffffffffffff1661202e9190613fb2565b9050600061204960085463ffffffff600160301b9091041690565b600084815260046020526040902080546001600160a01b0319166001600160a01b03871617815590915061207c83611d13565b815465ffffffffffff91909116600160a01b0265ffffffffffff60a01b199091161781556120a982612f72565b815463ffffffff91909116600160d01b0263ffffffff60d01b1990911617815588517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e090859087908c908c906001600160401b0381111561210c5761210c613488565b60405190808252806020026020018201604052801561213f57816020015b606081526020019060019003908161212a5790505b508c8961214c8a82613fb2565b8e6040516121629998979695949392919061419b565b60405180910390a150505095945050505050565b6060610ad47f00000000000000000000000000000000000000000000000000000000000000006000612fa3565b6060610ad47f00000000000000000000000000000000000000000000000000000000000000006001612fa3565b6000610ad443611d13565b60007f0000000000000000000000000000000000000000000000000000000000000000604051630748d63560e31b81526001600160a01b038681166004830152602482018690529190911690633a46b1a890604401602060405180830381865afa15801561224d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115129190613f82565b805460009080156122a15761228b83611dce600184613f2c565b54600160301b90046001600160d01b0316611515565b60009392505050565b600b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600b80546001600160a01b0319166001600160a01b0392909216919091179055565b606082612328576123238261304e565b610b25565b5080610b25565b6000818152600960205260408120600281015460018201546123519190613fb2565b61235d610a8885610e57565b11159392505050565b8063ffffffff166000036123905760405163f1cfbf0560e01b815260006004820152602401610eeb565b6008546040805163ffffffff600160301b9093048316815291831660208301527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a16008805463ffffffff909216600160301b0269ffffffff00000000000019909216919091179055565b60075460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600755565b60006064612452836111a9565b604051632394e7a360e21b8152600481018590526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638e539e8c90602401602060405180830381865afa1580156124b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124db9190613f82565b6124e59190613f9b565b610b259190613fdb565b80546000906001600160801b0380821691600160801b9004168103612518576125186031612753565b6001600160801b038181166000908152600185810160205260408220805492905585546fffffffffffffffffffffffffffffffff19169301909116919091179092555090565b60006001600160d01b03821115611d46576040516306dfcc6560e41b815260d0600482015260248101839052604401610eeb565b6000806125a0858585613077565b915091505b935093915050565b600080600b60009054906101000a90046001600160a01b03166001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015612603573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126279190613f82565b905060003060601b6001600160601b0319168418600b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790612675908a908a908a906000908890600401614272565b602060405180830381865afa158015612692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b69190613f82565b6000898152600c602052604080822092909255600b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091612701918b918b918b919088908a906004016142c0565b600060405180830381600087803b15801561271b57600080fd5b505af115801561272f573d6000803e3d6000fd5b5050505061274782426127429190613fb2565b611d13565b98975050505050505050565b634e487b71600052806020526024601cfd5b600b546001600160a01b031663e38335e53486868660003060601b6001600160601b03191688186040518763ffffffff1660e01b81526004016127ac959493929190614272565b6000604051808303818588803b1580156127c557600080fd5b505af11580156127d9573d6000803e3d6000fd5b50505060009687525050600c602052505060408320929092555050565b6000818152600460205260408120805460ff600160f01b8204811691600160f81b900416811561282b57506007949350505050565b801561283c57506002949350505050565b600061284786610e57565b90508060000361286d57604051636ad0607560e01b815260048101879052602401610eeb565b600061287761147d565b65ffffffffffff169050808210612895575060009695505050505050565b60006128a088611686565b90508181106128b757506001979650505050505050565b6128c08861232f565b15806128e057506000888152600960205260409020805460019091015411155b156128f357506003979650505050505050565b60008881526004602052604090206001015465ffffffffffff1660000361292257506004979650505050505050565b506005979650505050505050565b60008061293f868686866131cb565b6000818152600c60205260409020549091508015610cd957600b5460405163c4d252f560e01b8152600481018390526001600160a01b039091169063c4d252f590602401600060405180830381600087803b15801561299d57600080fd5b505af11580156129b1573d6000803e3d6000fd5b5050506000838152600c602052604081205550509050949350505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612a2857507f000000000000000000000000000000000000000000000000000000000000000046145b15612a5257507f000000000000000000000000000000000000000000000000000000000000000090565b610ad4604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60008060008351604103612b345760208401516040850151606086015160001a612b268882858561327c565b955095509550505050612b40565b50508151600091506002905b9250925092565b6000806000856001600160a01b03168585604051602401612b69929190614318565b60408051601f198184030181529181526020820180516001600160e01b0316630b135d3f60e11b17905251612b9e9190614331565b600060405180830381855afa9150503d8060008114612bd9576040519150601f19603f3d011682016040523d82523d6000602084013e612bde565b606091505b5091509150818015612bf257506020815110155b8015610f0057508051630b135d3f60e11b90612c179083016020908101908401613f82565b149695505050505050565b60008581526009602090815260408083206001600160a01b03881684526003810190925282205460ff1615612c75576040516371c6af4960e01b81526001600160a01b0387166004820152602401610eeb565b6001600160a01b03861660009081526003820160205260409020805460ff1916600117905560ff8516612cc15783816000016000828254612cb69190613fb2565b90915550612d1a9050565b60001960ff861601612ce15783816001016000828254612cb69190613fb2565b60011960ff861601612d015783816002016000828254612cb69190613fb2565b6040516303599be160e11b815260040160405180910390fd5b509195945050505050565b600060018211612d33575090565b816001600160801b8210612d4c5760809190911c9060401b5b680100000000000000008210612d675760409190911c9060201b5b6401000000008210612d7e5760209190911c9060101b5b620100008210612d935760109190911c9060081b5b6101008210612da75760089190911c9060041b5b60108210612dba5760049190911c9060021b5b60048210612dc65760011b5b600302600190811c90818581612dde57612dde613fc5565b048201901c90506001818581612df657612df6613fc5565b048201901c90506001818581612e0e57612e0e613fc5565b048201901c90506001818581612e2657612e26613fc5565b048201901c90506001818581612e3e57612e3e613fc5565b048201901c90506001818581612e5657612e56613fc5565b048201901c9050612e75818581612e6f57612e6f613fc5565b04821190565b90039392505050565b60005b81831015612ed8576000612e95848461334b565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff161115612ec457809250612ed2565b612ecf816001613fb2565b93505b50612e81565b509392505050565b60008060f883901c602f81118015612efb5750603a8160ff16105b15612f1057600194602f199091019350915050565b8060ff166040108015612f26575060478160ff16105b15612f3b576001946036199091019350915050565b8060ff166060108015612f51575060678160ff16105b15612f66576001946056199091019350915050565b50600093849350915050565b600063ffffffff821115611d46576040516306dfcc6560e41b81526020600482015260248101839052604401610eeb565b606060ff8314612fbd57612fb683613366565b9050610b25565b818054612fc990613e30565b80601f0160208091040260200160405190810160405280929190818152602001828054612ff590613e30565b80156130425780601f1061301757610100808354040283529160200191613042565b820191906000526020600020905b81548152906001019060200180831161302557829003601f168201915b50505050509050610b25565b80511561305e5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b82546000908190801561317057600061309587611dce600185613f2c565b805490915065ffffffffffff80821691600160301b90046001600160d01b03169088168211156130d857604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff160361311157825465ffffffffffff16600160301b6001600160d01b03891602178355613162565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f5560008f81529190912094519151909216600160301b029216919091179101555b94508593506125a592505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b0291909316179201919091559050816125a5565b6000806131da86868686611749565b9050613228816131ea6007611930565b6131f46006611930565b6131fe6002611930565b600161320b60078261434d565b61321690600261444a565b6132209190613f2c565b181818611953565b506000818152600460205260409081902080546001600160f81b0316600160f81b179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90610e469083815260200190565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156132b75750600091506003905082613341565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561330b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661333757506000925060019150829050613341565b9250600091508190505b9450945094915050565b600061335a6002848418613fdb565b61151590848416613fb2565b60606000613373836133a5565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600060ff8216601f811115610b2557604051632cd44ac360e21b815260040160405180910390fd5b6000602082840312156133df57600080fd5b81356001600160e01b03198116811461151557600080fd5b60006020828403121561340957600080fd5b5035919050565b60005b8381101561342b578181015183820152602001613413565b50506000910152565b6000815180845261344c816020860160208601613410565b601f01601f19169290920160200192915050565b6020815260006115156020830184613434565b6001600160a01b0381168114610b3c57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156134c6576134c6613488565b604052919050565b60006001600160401b038211156134e7576134e7613488565b50601f01601f191660200190565b6000613508613503846134ce565b61349e565b905082815283838301111561351c57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261354457600080fd5b611515838335602085016134f5565b6000806000806080858703121561356957600080fd5b843561357481613473565b9350602085013561358481613473565b92506040850135915060608501356001600160401b038111156135a657600080fd5b6135b287828801613533565b91505092959194509250565b60006001600160401b038211156135d7576135d7613488565b5060051b60200190565b600082601f8301126135f257600080fd5b81356020613602613503836135be565b82815260059290921b8401810191818101908684111561362157600080fd5b8286015b8481101561364557803561363881613473565b8352918301918301613625565b509695505050505050565b600082601f83011261366157600080fd5b81356020613671613503836135be565b82815260059290921b8401810191818101908684111561369057600080fd5b8286015b848110156136455780358352918301918301613694565b600082601f8301126136bc57600080fd5b813560206136cc613503836135be565b82815260059290921b840181019181810190868411156136eb57600080fd5b8286015b848110156136455780356001600160401b0381111561370e5760008081fd5b61371c8986838b0101613533565b8452509183019183016136ef565b6000806000806080858703121561374057600080fd5b84356001600160401b038082111561375757600080fd5b613763888389016135e1565b9550602087013591508082111561377957600080fd5b61378588838901613650565b9450604087013591508082111561379b57600080fd5b506137a8878288016136ab565b949793965093946060013593505050565b634e487b7160e01b600052602160045260246000fd5b600881106137ed57634e487b7160e01b600052602160045260246000fd5b9052565b60208101610b2582846137cf565b6000806040838503121561381257600080fd5b82359150602083013561382481613473565b809150509250929050565b803560ff81168114610fc757600080fd5b6000806040838503121561385357600080fd5b823591506138636020840161382f565b90509250929050565b60008083601f84011261387e57600080fd5b5081356001600160401b0381111561389557600080fd5b6020830191508360208285010111156138ad57600080fd5b9250929050565b600080600080600080600060c0888a0312156138cf57600080fd5b873596506138df6020890161382f565b955060408801356138ef81613473565b945060608801356001600160401b038082111561390b57600080fd5b6139178b838c0161386c565b909650945060808a013591508082111561393057600080fd5b61393c8b838c01613533565b935060a08a013591508082111561395257600080fd5b5061395f8a828b01613533565b91505092959891949750929550565b60008060008060006080868803121561398657600080fd5b853594506139966020870161382f565b935060408601356001600160401b03808211156139b257600080fd5b6139be89838a0161386c565b909550935060608801359150808211156139d757600080fd5b506139e488828901613533565b9150509295509295909350565b65ffffffffffff81168114610b3c57600080fd5b600060208284031215613a1757600080fd5b8135611515816139f1565b60008060008060608587031215613a3857600080fd5b84359350613a486020860161382f565b925060408501356001600160401b03811115613a6357600080fd5b613a6f8782880161386c565b95989497509550505050565b60008060008060808587031215613a9157600080fd5b84356001600160401b0380821115613aa857600080fd5b613ab4888389016135e1565b95506020870135915080821115613aca57600080fd5b613ad688838901613650565b94506040870135915080821115613aec57600080fd5b613af8888389016136ab565b93506060870135915080821115613b0e57600080fd5b508501601f81018713613b2057600080fd5b6135b2878235602084016134f5565b600060208284031215613b4157600080fd5b813561151581613473565b600081518084526020808501945080840160005b83811015613b7c57815187529582019590820190600101613b60565b509495945050505050565b60ff60f81b8816815260e060208201526000613ba660e0830189613434565b8281036040840152613bb88189613434565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501529050613be98185613b4c565b9a9950505050505050505050565b60008060008060808587031215613c0d57600080fd5b84359350613c1d6020860161382f565b92506040850135613c2d81613473565b915060608501356001600160401b038111156135a657600080fd5b600080600060608486031215613c5d57600080fd5b8335613c6881613473565b92506020840135915060408401356001600160401b03811115613c8a57600080fd5b613c9686828701613533565b9150509250925092565b600080600080600060a08688031215613cb857600080fd5b8535613cc381613473565b94506020860135613cd381613473565b935060408601356001600160401b0380821115613cef57600080fd5b613cfb89838a01613650565b94506060880135915080821115613d1157600080fd5b613d1d89838a01613650565b935060808801359150808211156139d757600080fd5b60008060008060608587031215613d4957600080fd5b8435613d5481613473565b93506020850135925060408501356001600160401b03811115613a6357600080fd5b600060208284031215613d8857600080fd5b813563ffffffff8116811461151557600080fd5b60008060408385031215613daf57600080fd5b8235613dba81613473565b946020939093013593505050565b600080600080600060a08688031215613de057600080fd5b8535613deb81613473565b94506020860135613dfb81613473565b9350604086013592506060860135915060808601356001600160401b03811115613e2457600080fd5b6139e488828901613533565b600181811c90821680613e4457607f821691505b602082108103613e6457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613ea857613ea8613e80565b5060010190565b600060208284031215613ec157600080fd5b81516001600160401b03811115613ed757600080fd5b8201601f81018413613ee857600080fd5b8051613ef6613503826134ce565b818152856020838501011115613f0b57600080fd5b611b64826020830160208601613410565b8183823760009101908152919050565b81810381811115610b2557610b25613e80565b65ffffffffffff828116828216039080821115613f5e57613f5e613e80565b5092915050565b600060208284031215613f7757600080fd5b8151611515816139f1565b600060208284031215613f9457600080fd5b5051919050565b8082028115828204841417610b2557610b25613e80565b80820180821115610b2557610b25613e80565b634e487b7160e01b600052601260045260246000fd5b600082613ff857634e487b7160e01b600052601260045260246000fd5b500490565b65ffffffffffff818116838216019080821115613f5e57613f5e613e80565b600081518084526020808501945080840160005b83811015613b7c5781516001600160a01b031687529582019590820190600101614030565b600081518084526020808501808196508360051b8101915082860160005b8581101561409d57828403895261408b848351613434565b98850198935090840190600101614073565b5091979650505050505050565b6080815260006140bd608083018761401c565b82810360208401526140cf8187613b4c565b905082810360408401526140e38186614055565b91505082606083015295945050505050565b8381526060810161410960208301856137cf565b826040830152949350505050565b60006020828403121561412957600080fd5b8151801515811461151557600080fd5b84815260ff84166020820152826040820152608060608201526000610f006080830184613434565b85815260ff8516602082015283604082015260a06060820152600061418960a0830185613434565b82810360808401526127478185613434565b60006101208b8352602060018060a01b038c16818501528160408501526141c48285018c61401c565b915083820360608501526141d8828b613b4c565b915083820360808501528189518084528284019150828160051b850101838c0160005b8381101561422957601f19878403018552614217838351613434565b948601949250908501906001016141fb565b505086810360a088015261423d818c614055565b9450505050508560c08401528460e08401528281036101008401526142628185613434565b9c9b505050505050505050505050565b60a08152600061428560a083018861401c565b82810360208401526142978188613b4c565b905082810360408401526142ab8187614055565b60608401959095525050608001529392505050565b60c0815260006142d360c083018961401c565b82810360208401526142e58189613b4c565b905082810360408401526142f98188614055565b60608401969096525050608081019290925260a0909101529392505050565b8281526040602082015260006115126040830184613434565b60008251614343818460208701613410565b9190910192915050565b60ff8181168382160190811115610b2557610b25613e80565b600181815b808511156143a157816000190482111561438757614387613e80565b8085161561439457918102915b93841c939080029061436b565b509250929050565b6000826143b857506001610b25565b816143c557506000610b25565b81600181146143db57600281146143e557614401565b6001915050610b25565b60ff8411156143f6576143f6613e80565b50506001821b610b25565b5060208310610133831016604e8410600b8410161715614424575081810a610b25565b61442e8383614366565b806000190482111561444257614442613e80565b029392505050565b600061151560ff8416836143a956fea2646970667358221220f57721fcd41c51ed29de5666546d315810a0f33cc5044218ed54441034104d6064736f6c63430008140033",
1704
+ "deployedBytecode": "0x6080604052600436106102e85760003560e01c80637ecebe0011610190578063c01f9e37116100dc578063deaaa7cc11610095578063ece40cc11161006f578063ece40cc114610a2d578063f23a6e6114610a4d578063f8ce560a14610a6d578063fc0c546a14610a8d57600080fd5b8063deaaa7cc146109b9578063e540d01d146109ed578063eb9019d414610a0d57600080fd5b8063c01f9e37146108e2578063c28bc2fa14610902578063c59057e414610915578063d33219b414610935578063d4a8dd9814610953578063dd4e2ba51461097357600080fd5b80639a802a6d11610149578063a9a9529411610123578063a9a9529414610855578063ab58fb8e14610875578063b58131b0146108ad578063bc197c81146108c257600080fd5b80639a802a6d14610800578063a7713a7014610820578063a890c9101461083557600080fd5b80637ecebe001461072257806384b0196e146107585780638d73b031146107805780638ff262e3146107a057806391ddadf4146107c057806397c3d334146107ec57600080fd5b8063438596321161024f5780635b8d0e0d1161020857806360c4247f116101e257806360c4247f146106a257806379051887146106c25780637b3c71d3146106e25780637d5e81e21461070257600080fd5b80635b8d0e0d146106355780635c573d44146106555780635f398a141461068257600080fd5b80634385963214610517578063452115d6146105615780634bf5d7e914610581578063544ffc9c1461059657806354fd4d50146105eb578063567813881461061557600080fd5b8063160cbed7116102a1578063160cbed71461044e5780632656227d1461046e5780632d63f693146104815780632fe3e261146104a15780633932abb1146104d55780633e4f49e6146104ea57600080fd5b806301ffc9a71461032457806302a251a31461035957806306f3f9e61461038557806306fdde03146103a5578063143489d0146103c7578063150b7a021461041557600080fd5b3661031f57306102f6610ac0565b6001600160a01b03161461031d57604051637485328f60e11b815260040160405180910390fd5b005b600080fd5b34801561033057600080fd5b5061034461033f3660046133cd565b610ad9565b60405190151581526020015b60405180910390f35b34801561036557600080fd5b50600854600160301b900463ffffffff165b604051908152602001610350565b34801561039157600080fd5b5061031d6103a03660046133f7565b610b2b565b3480156103b157600080fd5b506103ba610b3f565b6040516103509190613460565b3480156103d357600080fd5b506103fd6103e23660046133f7565b6000908152600460205260409020546001600160a01b031690565b6040516001600160a01b039091168152602001610350565b34801561042157600080fd5b50610435610430366004613553565b610bd1565b6040516001600160e01b03199091168152602001610350565b34801561045a57600080fd5b5061037761046936600461372a565b610c14565b61037761047c36600461372a565b610ce3565b34801561048d57600080fd5b5061037761049c3660046133f7565b610e57565b3480156104ad57600080fd5b506103777f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a81181565b3480156104e157600080fd5b50610377610e78565b3480156104f657600080fd5b5061050a6105053660046133f7565b610e8b565b60405161035091906137f1565b34801561052357600080fd5b506103446105323660046137ff565b60008281526009602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b34801561056d57600080fd5b5061037761057c36600461372a565b610e96565b34801561058d57600080fd5b506103ba610f0a565b3480156105a257600080fd5b506105d06105b13660046133f7565b6000908152600960205260409020805460018201546002909201549092565b60408051938452602084019290925290820152606001610350565b3480156105f757600080fd5b506040805180820190915260018152603160f81b60208201526103ba565b34801561062157600080fd5b50610377610630366004613840565b610fcc565b34801561064157600080fd5b506103776106503660046138b4565b610ff5565b34801561066157600080fd5b506103776106703660046133f7565b6001600160601b03193060601b161890565b34801561068e57600080fd5b5061037761069d36600461396e565b611154565b3480156106ae57600080fd5b506103776106bd3660046133f7565b6111a9565b3480156106ce57600080fd5b5061031d6106dd366004613a05565b611237565b3480156106ee57600080fd5b506103776106fd366004613a22565b611248565b34801561070e57600080fd5b5061037761071d366004613a7b565b611290565b34801561072e57600080fd5b5061037761073d366004613b2f565b6001600160a01b031660009081526002602052604090205490565b34801561076457600080fd5b5061076d611349565b6040516103509796959493929190613b87565b34801561078c57600080fd5b5061034461079b3660046133f7565b61138f565b3480156107ac57600080fd5b506103776107bb366004613bf7565b6113ab565b3480156107cc57600080fd5b506107d561147d565b60405165ffffffffffff9091168152602001610350565b3480156107f857600080fd5b506064610377565b34801561080c57600080fd5b5061037761081b366004613c48565b611505565b34801561082c57600080fd5b5061037761151c565b34801561084157600080fd5b5061031d610850366004613b2f565b611536565b34801561086157600080fd5b506103446108703660046133f7565b611547565b34801561088157600080fd5b506103776108903660046133f7565b60009081526004602052604090206001015465ffffffffffff1690565b3480156108b957600080fd5b50610377611550565b3480156108ce57600080fd5b506104356108dd366004613ca0565b611642565b3480156108ee57600080fd5b506103776108fd3660046133f7565b611686565b61031d610910366004613d33565b6116c9565b34801561092157600080fd5b5061037761093036600461372a565b611749565b34801561094157600080fd5b50600b546001600160a01b03166103fd565b34801561095f57600080fd5b5061034461096e3660046133f7565b611783565b34801561097f57600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e908201526103ba565b3480156109c557600080fd5b506103777ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d781565b3480156109f957600080fd5b5061031d610a08366004613d76565b61178e565b348015610a1957600080fd5b50610377610a28366004613d9c565b61179f565b348015610a3957600080fd5b5061031d610a483660046133f7565b6117c0565b348015610a5957600080fd5b50610435610a68366004613dc8565b6117d1565b348015610a7957600080fd5b50610377610a883660046133f7565b611815565b348015610a9957600080fd5b507f00000000000000000000000000000000000000000000000000000000000000006103fd565b6000610ad4600b546001600160a01b031690565b905090565b60006001600160e01b031982166332a2ad4360e11b1480610b0a57506001600160e01b03198216630271189760e51b145b80610b2557506301ffc9a760e01b6001600160e01b03198316145b92915050565b610b33611820565b610b3c8161189a565b50565b606060038054610b4e90613e30565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7a90613e30565b8015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b820191906000526020600020905b815481529060010190602001808311610baa57829003601f168201915b5050505050905090565b600030610bdc610ac0565b6001600160a01b031614610c0357604051637485328f60e11b815260040160405180910390fd5b50630a85bd0160e11b949350505050565b600080610c2386868686611749565b9050610c3881610c336004611930565b611953565b506000610c488288888888611992565b905065ffffffffffff811615610cc057600082815260046020908152604091829020600101805465ffffffffffff191665ffffffffffff85169081179091558251858152918201527f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892910160405180910390a1610cd9565b604051634844252360e11b815260040160405180910390fd5b5095945050505050565b600080610cf286868686611749565b9050610d1281610d026005611930565b610d0c6004611930565b17611953565b506000818152600460205260409020805460ff60f01b1916600160f01b17905530610d3b610ac0565b6001600160a01b031614610dcd5760005b8651811015610dcb57306001600160a01b0316878281518110610d7157610d71613e6a565b60200260200101516001600160a01b031603610dbb57610dbb858281518110610d9c57610d9c613e6a565b60200260200101518051906020012060056119a190919063ffffffff16565b610dc481613e96565b9050610d4c565b505b610dda8187878787611a03565b30610de3610ac0565b6001600160a01b031614158015610e0f57506005546001600160801b03808216600160801b9092041614155b15610e1a5760006005555b6040518181527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906020015b60405180910390a195945050505050565b600090815260046020526040902054600160a01b900465ffffffffffff1690565b6000610ad460085465ffffffffffff1690565b6000610b2582611a17565b600080610ea586868686611749565b9050610eb581610c336000611930565b506000818152600460205260409020546001600160a01b03163314610ef45760405163233d98e360e01b81523360048201526024015b60405180910390fd5b610f0086868686611b56565b9695505050505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634bf5d7e96040518163ffffffff1660e01b8152600401600060405180830381865afa925050508015610f8b57506040513d6000823e601f3d908101601f19168201604052610f889190810190613eaf565b60015b610fc7575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b600080339050610fed84828560405180602001604052806000815250611b6d565b949350505050565b6000806110d8876110d27f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a8118c8c8c61104a8e6001600160a01b0316600090815260026020526040902080546001810190915590565b8d8d60405161105a929190613f1c565b60405180910390208c805190602001206040516020016110b79796959493929190968752602087019590955260ff9390931660408601526001600160a01b03919091166060850152608084015260a083015260c082015260e00190565b60405160208183030381529060405280519060200120611b90565b85611bbd565b905080611103576040516394ab6c0760e01b81526001600160a01b0388166004820152602401610eeb565b61114789888a89898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250611c31915050565b9998505050505050505050565b60008033905061119e87828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611c31915050565b979650505050505050565b600a805460009182906111bd600184613f2c565b815481106111cd576111cd613e6a565b6000918252602090912001805490915065ffffffffffff811690600160301b90046001600160d01b0316858211611210576001600160d01b031695945050505050565b61122461121c87611d13565b600a90611d4a565b6001600160d01b03169695505050505050565b61123f611820565b610b3c81611dff565b600080339050610f0086828787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611b6d92505050565b60003361129d8184611e65565b6112c55760405163d9b3955760e01b81526001600160a01b0382166004820152602401610eeb565b60006112cf611550565b9050801561133c5760006112fe8360016112e761147d565b6112f19190613f3f565b65ffffffffffff1661179f565b90508181101561133a57604051636121770b60e11b81526001600160a01b03841660048201526024810182905260448101839052606401610eeb565b505b61119e8787878786611f56565b60006060806000806000606061135d612176565b6113656121a3565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000818152600960205260408120805460019091015411610b25565b600080611437846110d27ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d78989896114008b6001600160a01b0316600090815260026020526040902080546001810190915590565b60408051602081019690965285019390935260ff90911660608401526001600160a01b0316608083015260a082015260c0016110b7565b905080611462576040516394ab6c0760e01b81526001600160a01b0385166004820152602401610eeb565b610f0086858760405180602001604052806000815250611b6d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156114f9575060408051601f3d908101601f191682019092526114f691810190613f65565b60015b610fc757610ad46121d0565b60006115128484846121db565b90505b9392505050565b6000611528600a612271565b6001600160d01b0316905090565b61153e611820565b610b3c816122aa565b60006001610b25565b60008061155c60075490565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638e539e8c600161159961147d565b6115a39190613f3f565b6040516001600160e01b031960e084901b16815265ffffffffffff9091166004820152602401602060405180830381865afa1580156115e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160a9190613f82565b9050670de0b6b3a764000061161f8284613f9b565b61163190670de0b6b3a763ffff613fb2565b61163b9190613fdb565b9250505090565b60003061164d610ac0565b6001600160a01b03161461167457604051637485328f60e11b815260040160405180910390fd5b5063bc197c8160e01b95945050505050565b6000818152600460205260408120546116bb90600160d01b810463ffffffff1690600160a01b900465ffffffffffff16613ffd565b65ffffffffffff1692915050565b6116d1611820565b600080856001600160a01b03168585856040516116ef929190613f1c565b60006040518083038185875af1925050503d806000811461172c576040519150601f19603f3d011682016040523d82523d6000602084013e611731565b606091505b50915091506117408282612313565b50505050505050565b60008484848460405160200161176294939291906140aa565b60408051601f19818403018152919052805160209091012095945050505050565b6000610b258261232f565b611796611820565b610b3c81612366565b600061151583836117bb60408051602081019091526000815290565b6121db565b6117c8611820565b610b3c81612404565b6000306117dc610ac0565b6001600160a01b03161461180357604051637485328f60e11b815260040160405180910390fd5b5063f23a6e6160e01b95945050505050565b6000610b2582612445565b33611829610ac0565b6001600160a01b031614611852576040516347096e4760e01b8152336004820152602401610eeb565b3061185b610ac0565b6001600160a01b031614611898576000803660405161187b929190613f1c565b604051809103902090505b8061189160056124ef565b0361188657505b565b6064808211156118c75760405163243e544560e01b81526004810183905260248101829052604401610eeb565b60006118d161151c565b90506118f06118de61147d565b6118e78561255e565b600a9190612592565b505060408051828152602081018590527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a1505050565b6000816007811115611944576119446137b9565b600160ff919091161b92915050565b60008061195f84610e8b565b905060008361196d83611930565b1603611515578381846040516331b75e4d60e01b8152600401610eeb939291906140f5565b6000610f0086868686866125ad565b81546001600160801b03600160801b8204811691811660018301909116036119cd576119cd6041612753565b6001600160801b03808216600090815260018086016020526040909120939093558354919092018216600160801b029116179055565b611a108585858585612765565b5050505050565b600080611a23836127f6565b90506005816007811115611a3957611a396137b9565b14611a445792915050565b6000838152600c60205260409081902054600b549151632c258a9f60e11b81526004810182905290916001600160a01b03169063584b153e90602401602060405180830381865afa158015611a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac19190614117565b15611ad0575060059392505050565b600b54604051632ab0f52960e01b8152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa158015611b19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3d9190614117565b15611b4c575060079392505050565b5060029392505050565b6000611b6485858585612930565b95945050505050565b6000611b6485858585611b8b60408051602081019091526000815290565b611c31565b6000610b25611b9d6129cf565b8360405161190160f01b8152600281019290925260228201526042902090565b6000836001600160a01b03163b600003611c1f57600080611bde8585612afa565b5090925090506000816003811115611bf857611bf86137b9565b148015611c165750856001600160a01b0316826001600160a01b0316145b92505050611515565b611c2a848484612b47565b9050611515565b6000611c4186610c336001611930565b506000611c5786611c5189610e57565b856121db565b90506000611c688888888588612c22565b90508351600003611cbf57866001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda489888489604051611cb29493929190614139565b60405180910390a261119e565b866001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87128988848989604051611d00959493929190614161565b60405180910390a2979650505050505050565b600065ffffffffffff821115611d46576040516306dfcc6560e41b81526030600482015260248101839052604401610eeb565b5090565b815460009081816005811115611da9576000611d6584612d25565b611d6f9085613f2c565b60008881526020902090915081015465ffffffffffff9081169087161015611d9957809150611da7565b611da4816001613fb2565b92505b505b6000611db787878585612e7e565b90508015611df257611ddc87611dce600184613f2c565b600091825260209091200190565b54600160301b90046001600160d01b031661119e565b6000979650505050505050565b6008546040805165ffffffffffff928316815291831660208301527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a16008805465ffffffffffff191665ffffffffffff92909216919091179055565b80516000906034811015611e7d576001915050610b25565b82810160131901516001600160a01b031981166b046e0e4dee0dee6cae47a60f60a31b14611eb057600192505050610b25565b600080611ebe602885613f2c565b90505b83811015611f3557600080611ef5888481518110611ee157611ee1613e6a565b01602001516001600160f81b031916612ee0565b9150915081611f0d5760019650505050505050610b25565b8060ff166004856001600160a01b0316901b179350505080611f2e90613e96565b9050611ec1565b50856001600160a01b0316816001600160a01b031614935050505092915050565b6000611f6b8686868680519060200120611749565b905084518651141580611f8057508351865114155b80611f8a57508551155b15611fbf57855184518651604051630447b05d60e41b8152600481019390935260248301919091526044820152606401610eeb565b600081815260046020526040902054600160a01b900465ffffffffffff161561200a5780611fec82610e8b565b6040516331b75e4d60e01b8152610eeb9291906000906004016140f5565b6000612014610e78565b61201c61147d565b65ffffffffffff1661202e9190613fb2565b9050600061204960085463ffffffff600160301b9091041690565b600084815260046020526040902080546001600160a01b0319166001600160a01b03871617815590915061207c83611d13565b815465ffffffffffff91909116600160a01b0265ffffffffffff60a01b199091161781556120a982612f72565b815463ffffffff91909116600160d01b0263ffffffff60d01b1990911617815588517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e090859087908c908c906001600160401b0381111561210c5761210c613488565b60405190808252806020026020018201604052801561213f57816020015b606081526020019060019003908161212a5790505b508c8961214c8a82613fb2565b8e6040516121629998979695949392919061419b565b60405180910390a150505095945050505050565b6060610ad47f00000000000000000000000000000000000000000000000000000000000000006000612fa3565b6060610ad47f00000000000000000000000000000000000000000000000000000000000000006001612fa3565b6000610ad443611d13565b60007f0000000000000000000000000000000000000000000000000000000000000000604051630748d63560e31b81526001600160a01b038681166004830152602482018690529190911690633a46b1a890604401602060405180830381865afa15801561224d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115129190613f82565b805460009080156122a15761228b83611dce600184613f2c565b54600160301b90046001600160d01b0316611515565b60009392505050565b600b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600b80546001600160a01b0319166001600160a01b0392909216919091179055565b606082612328576123238261304e565b610b25565b5080610b25565b6000818152600960205260408120600281015460018201546123519190613fb2565b61235d610a8885610e57565b11159392505050565b8063ffffffff166000036123905760405163f1cfbf0560e01b815260006004820152602401610eeb565b6008546040805163ffffffff600160301b9093048316815291831660208301527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a16008805463ffffffff909216600160301b0269ffffffff00000000000019909216919091179055565b60075460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600755565b60006064612452836111a9565b604051632394e7a360e21b8152600481018590526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638e539e8c90602401602060405180830381865afa1580156124b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124db9190613f82565b6124e59190613f9b565b610b259190613fdb565b80546000906001600160801b0380821691600160801b9004168103612518576125186031612753565b6001600160801b038181166000908152600185810160205260408220805492905585546fffffffffffffffffffffffffffffffff19169301909116919091179092555090565b60006001600160d01b03821115611d46576040516306dfcc6560e41b815260d0600482015260248101839052604401610eeb565b6000806125a0858585613077565b915091505b935093915050565b600080600b60009054906101000a90046001600160a01b03166001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015612603573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126279190613f82565b905060003060601b6001600160601b0319168418600b5460405163b1c5f42760e01b81529192506001600160a01b03169063b1c5f42790612675908a908a908a906000908890600401614272565b602060405180830381865afa158015612692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126b69190613f82565b6000898152600c602052604080822092909255600b5491516308f2a0bb60e41b81526001600160a01b0390921691638f2a0bb091612701918b918b918b919088908a906004016142c0565b600060405180830381600087803b15801561271b57600080fd5b505af115801561272f573d6000803e3d6000fd5b5050505061274782426127429190613fb2565b611d13565b98975050505050505050565b634e487b71600052806020526024601cfd5b600b546001600160a01b031663e38335e53486868660003060601b6001600160601b03191688186040518763ffffffff1660e01b81526004016127ac959493929190614272565b6000604051808303818588803b1580156127c557600080fd5b505af11580156127d9573d6000803e3d6000fd5b50505060009687525050600c602052505060408320929092555050565b6000818152600460205260408120805460ff600160f01b8204811691600160f81b900416811561282b57506007949350505050565b801561283c57506002949350505050565b600061284786610e57565b90508060000361286d57604051636ad0607560e01b815260048101879052602401610eeb565b600061287761147d565b65ffffffffffff169050808210612895575060009695505050505050565b60006128a088611686565b90508181106128b757506001979650505050505050565b6128c08861232f565b15806128e057506000888152600960205260409020805460019091015411155b156128f357506003979650505050505050565b60008881526004602052604090206001015465ffffffffffff1660000361292257506004979650505050505050565b506005979650505050505050565b60008061293f868686866131cb565b6000818152600c60205260409020549091508015610cd957600b5460405163c4d252f560e01b8152600481018390526001600160a01b039091169063c4d252f590602401600060405180830381600087803b15801561299d57600080fd5b505af11580156129b1573d6000803e3d6000fd5b5050506000838152600c602052604081205550509050949350505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612a2857507f000000000000000000000000000000000000000000000000000000000000000046145b15612a5257507f000000000000000000000000000000000000000000000000000000000000000090565b610ad4604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60008060008351604103612b345760208401516040850151606086015160001a612b268882858561327c565b955095509550505050612b40565b50508151600091506002905b9250925092565b6000806000856001600160a01b03168585604051602401612b69929190614318565b60408051601f198184030181529181526020820180516001600160e01b0316630b135d3f60e11b17905251612b9e9190614331565b600060405180830381855afa9150503d8060008114612bd9576040519150601f19603f3d011682016040523d82523d6000602084013e612bde565b606091505b5091509150818015612bf257506020815110155b8015610f0057508051630b135d3f60e11b90612c179083016020908101908401613f82565b149695505050505050565b60008581526009602090815260408083206001600160a01b03881684526003810190925282205460ff1615612c75576040516371c6af4960e01b81526001600160a01b0387166004820152602401610eeb565b6001600160a01b03861660009081526003820160205260409020805460ff1916600117905560ff8516612cc15783816000016000828254612cb69190613fb2565b90915550612d1a9050565b60001960ff861601612ce15783816001016000828254612cb69190613fb2565b60011960ff861601612d015783816002016000828254612cb69190613fb2565b6040516303599be160e11b815260040160405180910390fd5b509195945050505050565b600060018211612d33575090565b816001600160801b8210612d4c5760809190911c9060401b5b680100000000000000008210612d675760409190911c9060201b5b6401000000008210612d7e5760209190911c9060101b5b620100008210612d935760109190911c9060081b5b6101008210612da75760089190911c9060041b5b60108210612dba5760049190911c9060021b5b60048210612dc65760011b5b600302600190811c90818581612dde57612dde613fc5565b048201901c90506001818581612df657612df6613fc5565b048201901c90506001818581612e0e57612e0e613fc5565b048201901c90506001818581612e2657612e26613fc5565b048201901c90506001818581612e3e57612e3e613fc5565b048201901c90506001818581612e5657612e56613fc5565b048201901c9050612e75818581612e6f57612e6f613fc5565b04821190565b90039392505050565b60005b81831015612ed8576000612e95848461334b565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff161115612ec457809250612ed2565b612ecf816001613fb2565b93505b50612e81565b509392505050565b60008060f883901c602f81118015612efb5750603a8160ff16105b15612f1057600194602f199091019350915050565b8060ff166040108015612f26575060478160ff16105b15612f3b576001946036199091019350915050565b8060ff166060108015612f51575060678160ff16105b15612f66576001946056199091019350915050565b50600093849350915050565b600063ffffffff821115611d46576040516306dfcc6560e41b81526020600482015260248101839052604401610eeb565b606060ff8314612fbd57612fb683613366565b9050610b25565b818054612fc990613e30565b80601f0160208091040260200160405190810160405280929190818152602001828054612ff590613e30565b80156130425780601f1061301757610100808354040283529160200191613042565b820191906000526020600020905b81548152906001019060200180831161302557829003601f168201915b50505050509050610b25565b80511561305e5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b82546000908190801561317057600061309587611dce600185613f2c565b805490915065ffffffffffff80821691600160301b90046001600160d01b03169088168211156130d857604051632520601d60e01b815260040160405180910390fd5b8765ffffffffffff168265ffffffffffff160361311157825465ffffffffffff16600160301b6001600160d01b03891602178355613162565b6040805180820190915265ffffffffffff808a1682526001600160d01b03808a1660208085019182528d54600181018f5560008f81529190912094519151909216600160301b029216919091179101555b94508593506125a592505050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b0291909316179201919091559050816125a5565b6000806131da86868686611749565b9050613228816131ea6007611930565b6131f46006611930565b6131fe6002611930565b600161320b60078261434d565b61321690600261444a565b6132209190613f2c565b181818611953565b506000818152600460205260409081902080546001600160f81b0316600160f81b179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90610e469083815260200190565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156132b75750600091506003905082613341565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561330b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661333757506000925060019150829050613341565b9250600091508190505b9450945094915050565b600061335a6002848418613fdb565b61151590848416613fb2565b60606000613373836133a5565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600060ff8216601f811115610b2557604051632cd44ac360e21b815260040160405180910390fd5b6000602082840312156133df57600080fd5b81356001600160e01b03198116811461151557600080fd5b60006020828403121561340957600080fd5b5035919050565b60005b8381101561342b578181015183820152602001613413565b50506000910152565b6000815180845261344c816020860160208601613410565b601f01601f19169290920160200192915050565b6020815260006115156020830184613434565b6001600160a01b0381168114610b3c57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156134c6576134c6613488565b604052919050565b60006001600160401b038211156134e7576134e7613488565b50601f01601f191660200190565b6000613508613503846134ce565b61349e565b905082815283838301111561351c57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261354457600080fd5b611515838335602085016134f5565b6000806000806080858703121561356957600080fd5b843561357481613473565b9350602085013561358481613473565b92506040850135915060608501356001600160401b038111156135a657600080fd5b6135b287828801613533565b91505092959194509250565b60006001600160401b038211156135d7576135d7613488565b5060051b60200190565b600082601f8301126135f257600080fd5b81356020613602613503836135be565b82815260059290921b8401810191818101908684111561362157600080fd5b8286015b8481101561364557803561363881613473565b8352918301918301613625565b509695505050505050565b600082601f83011261366157600080fd5b81356020613671613503836135be565b82815260059290921b8401810191818101908684111561369057600080fd5b8286015b848110156136455780358352918301918301613694565b600082601f8301126136bc57600080fd5b813560206136cc613503836135be565b82815260059290921b840181019181810190868411156136eb57600080fd5b8286015b848110156136455780356001600160401b0381111561370e5760008081fd5b61371c8986838b0101613533565b8452509183019183016136ef565b6000806000806080858703121561374057600080fd5b84356001600160401b038082111561375757600080fd5b613763888389016135e1565b9550602087013591508082111561377957600080fd5b61378588838901613650565b9450604087013591508082111561379b57600080fd5b506137a8878288016136ab565b949793965093946060013593505050565b634e487b7160e01b600052602160045260246000fd5b600881106137ed57634e487b7160e01b600052602160045260246000fd5b9052565b60208101610b2582846137cf565b6000806040838503121561381257600080fd5b82359150602083013561382481613473565b809150509250929050565b803560ff81168114610fc757600080fd5b6000806040838503121561385357600080fd5b823591506138636020840161382f565b90509250929050565b60008083601f84011261387e57600080fd5b5081356001600160401b0381111561389557600080fd5b6020830191508360208285010111156138ad57600080fd5b9250929050565b600080600080600080600060c0888a0312156138cf57600080fd5b873596506138df6020890161382f565b955060408801356138ef81613473565b945060608801356001600160401b038082111561390b57600080fd5b6139178b838c0161386c565b909650945060808a013591508082111561393057600080fd5b61393c8b838c01613533565b935060a08a013591508082111561395257600080fd5b5061395f8a828b01613533565b91505092959891949750929550565b60008060008060006080868803121561398657600080fd5b853594506139966020870161382f565b935060408601356001600160401b03808211156139b257600080fd5b6139be89838a0161386c565b909550935060608801359150808211156139d757600080fd5b506139e488828901613533565b9150509295509295909350565b65ffffffffffff81168114610b3c57600080fd5b600060208284031215613a1757600080fd5b8135611515816139f1565b60008060008060608587031215613a3857600080fd5b84359350613a486020860161382f565b925060408501356001600160401b03811115613a6357600080fd5b613a6f8782880161386c565b95989497509550505050565b60008060008060808587031215613a9157600080fd5b84356001600160401b0380821115613aa857600080fd5b613ab4888389016135e1565b95506020870135915080821115613aca57600080fd5b613ad688838901613650565b94506040870135915080821115613aec57600080fd5b613af8888389016136ab565b93506060870135915080821115613b0e57600080fd5b508501601f81018713613b2057600080fd5b6135b2878235602084016134f5565b600060208284031215613b4157600080fd5b813561151581613473565b600081518084526020808501945080840160005b83811015613b7c57815187529582019590820190600101613b60565b509495945050505050565b60ff60f81b8816815260e060208201526000613ba660e0830189613434565b8281036040840152613bb88189613434565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501529050613be98185613b4c565b9a9950505050505050505050565b60008060008060808587031215613c0d57600080fd5b84359350613c1d6020860161382f565b92506040850135613c2d81613473565b915060608501356001600160401b038111156135a657600080fd5b600080600060608486031215613c5d57600080fd5b8335613c6881613473565b92506020840135915060408401356001600160401b03811115613c8a57600080fd5b613c9686828701613533565b9150509250925092565b600080600080600060a08688031215613cb857600080fd5b8535613cc381613473565b94506020860135613cd381613473565b935060408601356001600160401b0380821115613cef57600080fd5b613cfb89838a01613650565b94506060880135915080821115613d1157600080fd5b613d1d89838a01613650565b935060808801359150808211156139d757600080fd5b60008060008060608587031215613d4957600080fd5b8435613d5481613473565b93506020850135925060408501356001600160401b03811115613a6357600080fd5b600060208284031215613d8857600080fd5b813563ffffffff8116811461151557600080fd5b60008060408385031215613daf57600080fd5b8235613dba81613473565b946020939093013593505050565b600080600080600060a08688031215613de057600080fd5b8535613deb81613473565b94506020860135613dfb81613473565b9350604086013592506060860135915060808601356001600160401b03811115613e2457600080fd5b6139e488828901613533565b600181811c90821680613e4457607f821691505b602082108103613e6457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613ea857613ea8613e80565b5060010190565b600060208284031215613ec157600080fd5b81516001600160401b03811115613ed757600080fd5b8201601f81018413613ee857600080fd5b8051613ef6613503826134ce565b818152856020838501011115613f0b57600080fd5b611b64826020830160208601613410565b8183823760009101908152919050565b81810381811115610b2557610b25613e80565b65ffffffffffff828116828216039080821115613f5e57613f5e613e80565b5092915050565b600060208284031215613f7757600080fd5b8151611515816139f1565b600060208284031215613f9457600080fd5b5051919050565b8082028115828204841417610b2557610b25613e80565b80820180821115610b2557610b25613e80565b634e487b7160e01b600052601260045260246000fd5b600082613ff857634e487b7160e01b600052601260045260246000fd5b500490565b65ffffffffffff818116838216019080821115613f5e57613f5e613e80565b600081518084526020808501945080840160005b83811015613b7c5781516001600160a01b031687529582019590820190600101614030565b600081518084526020808501808196508360051b8101915082860160005b8581101561409d57828403895261408b848351613434565b98850198935090840190600101614073565b5091979650505050505050565b6080815260006140bd608083018761401c565b82810360208401526140cf8187613b4c565b905082810360408401526140e38186614055565b91505082606083015295945050505050565b8381526060810161410960208301856137cf565b826040830152949350505050565b60006020828403121561412957600080fd5b8151801515811461151557600080fd5b84815260ff84166020820152826040820152608060608201526000610f006080830184613434565b85815260ff8516602082015283604082015260a06060820152600061418960a0830185613434565b82810360808401526127478185613434565b60006101208b8352602060018060a01b038c16818501528160408501526141c48285018c61401c565b915083820360608501526141d8828b613b4c565b915083820360808501528189518084528284019150828160051b850101838c0160005b8381101561422957601f19878403018552614217838351613434565b948601949250908501906001016141fb565b505086810360a088015261423d818c614055565b9450505050508560c08401528460e08401528281036101008401526142628185613434565b9c9b505050505050505050505050565b60a08152600061428560a083018861401c565b82810360208401526142978188613b4c565b905082810360408401526142ab8187614055565b60608401959095525050608001529392505050565b60c0815260006142d360c083018961401c565b82810360208401526142e58189613b4c565b905082810360408401526142f98188614055565b60608401969096525050608081019290925260a0909101529392505050565b8281526040602082015260006115126040830184613434565b60008251614343818460208701613410565b9190910192915050565b60ff8181168382160190811115610b2557610b25613e80565b600181815b808511156143a157816000190482111561438757614387613e80565b8085161561439457918102915b93841c939080029061436b565b509250929050565b6000826143b857506001610b25565b816143c557506000610b25565b81600181146143db57600281146143e557614401565b6001915050610b25565b60ff8411156143f6576143f6613e80565b50506001821b610b25565b5060208310610133831016604e8410600b8410161715614424575081810a610b25565b61442e8383614366565b806000190482111561444257614442613e80565b029392505050565b600061151560ff8416836143a956fea2646970667358221220f57721fcd41c51ed29de5666546d315810a0f33cc5044218ed54441034104d6064736f6c63430008140033",
1705
+ "linkReferences": {},
1706
+ "deployedLinkReferences": {}
1707
+ }