@gooddollar/goodcollective-contracts 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/artifacts/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.dbg.json +4 -0
  2. package/artifacts/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.json +995 -0
  3. package/artifacts/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.dbg.json +4 -0
  4. package/artifacts/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.json +113 -0
  5. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.dbg.json +4 -0
  6. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.json +2210 -0
  7. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.dbg.json +4 -0
  8. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.json +30 -0
  9. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.dbg.json +4 -0
  10. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.json +45 -0
  11. package/artifacts/contracts/DirectPayments/ProvableNFT.sol/ProvableNFT.dbg.json +4 -0
  12. package/artifacts/contracts/DirectPayments/ProvableNFT.sol/ProvableNFT.json +1187 -0
  13. package/artifacts/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.dbg.json +4 -0
  14. package/artifacts/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.json +831 -0
  15. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.dbg.json +4 -0
  16. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.json +42 -0
  17. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.dbg.json +4 -0
  18. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.json +61 -0
  19. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.dbg.json +4 -0
  20. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.json +47 -0
  21. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.dbg.json +4 -0
  22. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.json +320 -0
  23. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
  24. package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +30 -0
  25. package/artifacts/contracts/Interfaces.sol/IMembersValidator.dbg.json +4 -0
  26. package/artifacts/contracts/Interfaces.sol/IMembersValidator.json +45 -0
  27. package/artifacts/contracts/UBI/UBIPool.sol/UBIPool.dbg.json +4 -0
  28. package/artifacts/contracts/UBI/UBIPool.sol/UBIPool.json +2078 -0
  29. package/artifacts/contracts/UBI/UBIPoolFactory.sol/UBIPoolFactory.dbg.json +4 -0
  30. package/artifacts/contracts/UBI/UBIPoolFactory.sol/UBIPoolFactory.json +1011 -0
  31. package/artifacts/contracts/test/HelperLibraryTest.sol/HelperLibraryTest.dbg.json +4 -0
  32. package/artifacts/contracts/test/HelperLibraryTest.sol/HelperLibraryTest.json +90 -0
  33. package/artifacts/contracts/utils/HelperLibrary.sol/HelperLibrary.dbg.json +4 -0
  34. package/artifacts/contracts/utils/HelperLibrary.sol/HelperLibrary.json +117 -0
  35. package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.dbg.json +4 -0
  36. package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.json +119 -0
  37. package/contracts/DirectPayments/DirectPaymentsFactory.sol +32 -6
  38. package/contracts/DirectPayments/DirectPaymentsLibrary.sol +168 -14
  39. package/contracts/DirectPayments/DirectPaymentsPool.sol +31 -116
  40. package/contracts/GoodCollective/GoodCollectiveSuperApp.sol +7 -6
  41. package/contracts/GoodCollective/IGoodCollectiveSuperApp.sol +4 -0
  42. package/contracts/GoodCollective/SuperAppBaseFlow.sol +6 -0
  43. package/contracts/UBI/UBIPool.sol +62 -18
  44. package/contracts/UBI/UBIPoolFactory.sol +32 -4
  45. package/contracts/utils/HelperLibrary.sol +10 -0
  46. package/contracts/utils/Recover.sol +16 -0
  47. package/package.json +4 -4
  48. package/releases/deployment.json +7417 -30724
  49. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +54 -0
  50. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary.ts +77 -0
  51. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.ts +77 -0
  52. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
  53. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.ts +146 -0
  54. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +90 -11
  55. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.ts +6 -8
  56. package/typechain-types/contracts/DirectPayments/index.ts +1 -0
  57. package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.ts +40 -0
  58. package/typechain-types/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.ts +22 -1
  59. package/typechain-types/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.ts +38 -1
  60. package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.ts +152 -0
  61. package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.ts +523 -0
  62. package/typechain-types/contracts/GoodCollective/SuperAppBaseFlow.sol/index.ts +5 -0
  63. package/typechain-types/contracts/GoodCollective/index.ts +2 -1
  64. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IClaimable.ts +92 -0
  65. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IModule.ts +196 -0
  66. package/typechain-types/contracts/UBI/MultiClaimModule.sol/MultiClaimModule.ts +242 -0
  67. package/typechain-types/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
  68. package/typechain-types/contracts/UBI/UBIPool.ts +77 -0
  69. package/typechain-types/contracts/UBI/UBIPoolFactory.ts +54 -0
  70. package/typechain-types/contracts/utils/Recover.ts +263 -0
  71. package/typechain-types/contracts/utils/index.ts +1 -0
  72. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +38 -1
  73. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary__factory.ts +96 -0
  74. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary__factory.ts +96 -0
  75. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
  76. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary__factory.ts +169 -0
  77. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +53 -2
  78. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator__factory.ts +1 -1
  79. package/typechain-types/factories/contracts/DirectPayments/index.ts +1 -0
  80. package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts +18 -0
  81. package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp__factory.ts +13 -0
  82. package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry__factory.ts +24 -0
  83. package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp__factory.ts +62 -0
  84. package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow__factory.ts +335 -0
  85. package/typechain-types/factories/contracts/GoodCollective/SuperAppBaseFlow.sol/index.ts +5 -0
  86. package/typechain-types/factories/contracts/GoodCollective/index.ts +1 -1
  87. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IClaimable__factory.ts +33 -0
  88. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IModule__factory.ts +84 -0
  89. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/MultiClaimModule__factory.ts +150 -0
  90. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
  91. package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +38 -1
  92. package/typechain-types/factories/contracts/UBI/UBIPool__factory.ts +42 -1
  93. package/typechain-types/factories/contracts/test/HelperLibraryTest__factory.ts +1 -1
  94. package/typechain-types/factories/contracts/utils/HelperLibrary__factory.ts +11 -1
  95. package/typechain-types/factories/contracts/utils/Recover__factory.ts +172 -0
  96. package/typechain-types/factories/contracts/utils/index.ts +1 -0
  97. package/typechain-types/hardhat.d.ts +27 -0
  98. package/typechain-types/index.ts +8 -2
@@ -0,0 +1,995 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "DirectPaymentsFactory",
4
+ "sourceName": "contracts/DirectPayments/DirectPaymentsFactory.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "NOT_POOL",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "NOT_PROJECT_MANAGER",
14
+ "type": "error"
15
+ },
16
+ {
17
+ "inputs": [],
18
+ "name": "NOT_PROJECT_OWNER",
19
+ "type": "error"
20
+ },
21
+ {
22
+ "anonymous": false,
23
+ "inputs": [
24
+ {
25
+ "indexed": false,
26
+ "internalType": "address",
27
+ "name": "previousAdmin",
28
+ "type": "address"
29
+ },
30
+ {
31
+ "indexed": false,
32
+ "internalType": "address",
33
+ "name": "newAdmin",
34
+ "type": "address"
35
+ }
36
+ ],
37
+ "name": "AdminChanged",
38
+ "type": "event"
39
+ },
40
+ {
41
+ "anonymous": false,
42
+ "inputs": [
43
+ {
44
+ "indexed": true,
45
+ "internalType": "address",
46
+ "name": "beacon",
47
+ "type": "address"
48
+ }
49
+ ],
50
+ "name": "BeaconUpgraded",
51
+ "type": "event"
52
+ },
53
+ {
54
+ "anonymous": false,
55
+ "inputs": [
56
+ {
57
+ "indexed": false,
58
+ "internalType": "uint8",
59
+ "name": "version",
60
+ "type": "uint8"
61
+ }
62
+ ],
63
+ "name": "Initialized",
64
+ "type": "event"
65
+ },
66
+ {
67
+ "anonymous": false,
68
+ "inputs": [
69
+ {
70
+ "indexed": true,
71
+ "internalType": "address",
72
+ "name": "member",
73
+ "type": "address"
74
+ },
75
+ {
76
+ "indexed": true,
77
+ "internalType": "address",
78
+ "name": "pool",
79
+ "type": "address"
80
+ }
81
+ ],
82
+ "name": "MemberAdded",
83
+ "type": "event"
84
+ },
85
+ {
86
+ "anonymous": false,
87
+ "inputs": [
88
+ {
89
+ "indexed": true,
90
+ "internalType": "address",
91
+ "name": "pool",
92
+ "type": "address"
93
+ },
94
+ {
95
+ "indexed": true,
96
+ "internalType": "string",
97
+ "name": "projectId",
98
+ "type": "string"
99
+ },
100
+ {
101
+ "indexed": false,
102
+ "internalType": "string",
103
+ "name": "ipfs",
104
+ "type": "string"
105
+ },
106
+ {
107
+ "indexed": true,
108
+ "internalType": "uint32",
109
+ "name": "nftType",
110
+ "type": "uint32"
111
+ },
112
+ {
113
+ "components": [
114
+ {
115
+ "internalType": "uint32",
116
+ "name": "nftType",
117
+ "type": "uint32"
118
+ },
119
+ {
120
+ "internalType": "uint16[]",
121
+ "name": "validEvents",
122
+ "type": "uint16[]"
123
+ },
124
+ {
125
+ "internalType": "uint128[]",
126
+ "name": "rewardPerEvent",
127
+ "type": "uint128[]"
128
+ },
129
+ {
130
+ "internalType": "address",
131
+ "name": "manager",
132
+ "type": "address"
133
+ },
134
+ {
135
+ "internalType": "contract IMembersValidator",
136
+ "name": "membersValidator",
137
+ "type": "address"
138
+ },
139
+ {
140
+ "internalType": "contract IIdentityV2",
141
+ "name": "uniquenessValidator",
142
+ "type": "address"
143
+ },
144
+ {
145
+ "internalType": "contract IERC20Upgradeable",
146
+ "name": "rewardToken",
147
+ "type": "address"
148
+ },
149
+ {
150
+ "internalType": "bool",
151
+ "name": "allowRewardOverride",
152
+ "type": "bool"
153
+ }
154
+ ],
155
+ "indexed": false,
156
+ "internalType": "struct DirectPaymentsPool.PoolSettings",
157
+ "name": "poolSettings",
158
+ "type": "tuple"
159
+ },
160
+ {
161
+ "components": [
162
+ {
163
+ "internalType": "uint256",
164
+ "name": "maxTotalPerMonth",
165
+ "type": "uint256"
166
+ },
167
+ {
168
+ "internalType": "uint256",
169
+ "name": "maxMemberPerMonth",
170
+ "type": "uint256"
171
+ },
172
+ {
173
+ "internalType": "uint256",
174
+ "name": "maxMemberPerDay",
175
+ "type": "uint256"
176
+ }
177
+ ],
178
+ "indexed": false,
179
+ "internalType": "struct DirectPaymentsPool.SafetyLimits",
180
+ "name": "poolLimits",
181
+ "type": "tuple"
182
+ }
183
+ ],
184
+ "name": "PoolCreated",
185
+ "type": "event"
186
+ },
187
+ {
188
+ "anonymous": false,
189
+ "inputs": [
190
+ {
191
+ "indexed": true,
192
+ "internalType": "address",
193
+ "name": "pool",
194
+ "type": "address"
195
+ },
196
+ {
197
+ "indexed": false,
198
+ "internalType": "string",
199
+ "name": "ipfs",
200
+ "type": "string"
201
+ }
202
+ ],
203
+ "name": "PoolDetailsChanged",
204
+ "type": "event"
205
+ },
206
+ {
207
+ "anonymous": false,
208
+ "inputs": [
209
+ {
210
+ "indexed": true,
211
+ "internalType": "address",
212
+ "name": "pool",
213
+ "type": "address"
214
+ },
215
+ {
216
+ "indexed": false,
217
+ "internalType": "bool",
218
+ "name": "isVerified",
219
+ "type": "bool"
220
+ }
221
+ ],
222
+ "name": "PoolVerifiedChanged",
223
+ "type": "event"
224
+ },
225
+ {
226
+ "anonymous": false,
227
+ "inputs": [
228
+ {
229
+ "indexed": true,
230
+ "internalType": "bytes32",
231
+ "name": "role",
232
+ "type": "bytes32"
233
+ },
234
+ {
235
+ "indexed": true,
236
+ "internalType": "bytes32",
237
+ "name": "previousAdminRole",
238
+ "type": "bytes32"
239
+ },
240
+ {
241
+ "indexed": true,
242
+ "internalType": "bytes32",
243
+ "name": "newAdminRole",
244
+ "type": "bytes32"
245
+ }
246
+ ],
247
+ "name": "RoleAdminChanged",
248
+ "type": "event"
249
+ },
250
+ {
251
+ "anonymous": false,
252
+ "inputs": [
253
+ {
254
+ "indexed": true,
255
+ "internalType": "bytes32",
256
+ "name": "role",
257
+ "type": "bytes32"
258
+ },
259
+ {
260
+ "indexed": true,
261
+ "internalType": "address",
262
+ "name": "account",
263
+ "type": "address"
264
+ },
265
+ {
266
+ "indexed": true,
267
+ "internalType": "address",
268
+ "name": "sender",
269
+ "type": "address"
270
+ }
271
+ ],
272
+ "name": "RoleGranted",
273
+ "type": "event"
274
+ },
275
+ {
276
+ "anonymous": false,
277
+ "inputs": [
278
+ {
279
+ "indexed": true,
280
+ "internalType": "bytes32",
281
+ "name": "role",
282
+ "type": "bytes32"
283
+ },
284
+ {
285
+ "indexed": true,
286
+ "internalType": "address",
287
+ "name": "account",
288
+ "type": "address"
289
+ },
290
+ {
291
+ "indexed": true,
292
+ "internalType": "address",
293
+ "name": "sender",
294
+ "type": "address"
295
+ }
296
+ ],
297
+ "name": "RoleRevoked",
298
+ "type": "event"
299
+ },
300
+ {
301
+ "anonymous": false,
302
+ "inputs": [
303
+ {
304
+ "indexed": true,
305
+ "internalType": "address",
306
+ "name": "impl",
307
+ "type": "address"
308
+ }
309
+ ],
310
+ "name": "UpdatedImpl",
311
+ "type": "event"
312
+ },
313
+ {
314
+ "anonymous": false,
315
+ "inputs": [
316
+ {
317
+ "indexed": true,
318
+ "internalType": "address",
319
+ "name": "implementation",
320
+ "type": "address"
321
+ }
322
+ ],
323
+ "name": "Upgraded",
324
+ "type": "event"
325
+ },
326
+ {
327
+ "inputs": [],
328
+ "name": "DEFAULT_ADMIN_ROLE",
329
+ "outputs": [
330
+ {
331
+ "internalType": "bytes32",
332
+ "name": "",
333
+ "type": "bytes32"
334
+ }
335
+ ],
336
+ "stateMutability": "view",
337
+ "type": "function"
338
+ },
339
+ {
340
+ "inputs": [
341
+ {
342
+ "internalType": "address",
343
+ "name": "member",
344
+ "type": "address"
345
+ }
346
+ ],
347
+ "name": "addMember",
348
+ "outputs": [],
349
+ "stateMutability": "nonpayable",
350
+ "type": "function"
351
+ },
352
+ {
353
+ "inputs": [
354
+ {
355
+ "internalType": "address[]",
356
+ "name": "members",
357
+ "type": "address[]"
358
+ }
359
+ ],
360
+ "name": "addMembers",
361
+ "outputs": [],
362
+ "stateMutability": "nonpayable",
363
+ "type": "function"
364
+ },
365
+ {
366
+ "inputs": [
367
+ {
368
+ "internalType": "contract DirectPaymentsPool",
369
+ "name": "_pool",
370
+ "type": "address"
371
+ },
372
+ {
373
+ "internalType": "string",
374
+ "name": "_ipfs",
375
+ "type": "string"
376
+ }
377
+ ],
378
+ "name": "changePoolDetails",
379
+ "outputs": [],
380
+ "stateMutability": "nonpayable",
381
+ "type": "function"
382
+ },
383
+ {
384
+ "inputs": [
385
+ {
386
+ "internalType": "string",
387
+ "name": "_projectId",
388
+ "type": "string"
389
+ },
390
+ {
391
+ "internalType": "string",
392
+ "name": "_ipfs",
393
+ "type": "string"
394
+ },
395
+ {
396
+ "components": [
397
+ {
398
+ "internalType": "uint32",
399
+ "name": "nftType",
400
+ "type": "uint32"
401
+ },
402
+ {
403
+ "internalType": "uint16[]",
404
+ "name": "validEvents",
405
+ "type": "uint16[]"
406
+ },
407
+ {
408
+ "internalType": "uint128[]",
409
+ "name": "rewardPerEvent",
410
+ "type": "uint128[]"
411
+ },
412
+ {
413
+ "internalType": "address",
414
+ "name": "manager",
415
+ "type": "address"
416
+ },
417
+ {
418
+ "internalType": "contract IMembersValidator",
419
+ "name": "membersValidator",
420
+ "type": "address"
421
+ },
422
+ {
423
+ "internalType": "contract IIdentityV2",
424
+ "name": "uniquenessValidator",
425
+ "type": "address"
426
+ },
427
+ {
428
+ "internalType": "contract IERC20Upgradeable",
429
+ "name": "rewardToken",
430
+ "type": "address"
431
+ },
432
+ {
433
+ "internalType": "bool",
434
+ "name": "allowRewardOverride",
435
+ "type": "bool"
436
+ }
437
+ ],
438
+ "internalType": "struct DirectPaymentsPool.PoolSettings",
439
+ "name": "_settings",
440
+ "type": "tuple"
441
+ },
442
+ {
443
+ "components": [
444
+ {
445
+ "internalType": "uint256",
446
+ "name": "maxTotalPerMonth",
447
+ "type": "uint256"
448
+ },
449
+ {
450
+ "internalType": "uint256",
451
+ "name": "maxMemberPerMonth",
452
+ "type": "uint256"
453
+ },
454
+ {
455
+ "internalType": "uint256",
456
+ "name": "maxMemberPerDay",
457
+ "type": "uint256"
458
+ }
459
+ ],
460
+ "internalType": "struct DirectPaymentsPool.SafetyLimits",
461
+ "name": "_limits",
462
+ "type": "tuple"
463
+ },
464
+ {
465
+ "internalType": "uint32",
466
+ "name": "_managerFeeBps",
467
+ "type": "uint32"
468
+ }
469
+ ],
470
+ "name": "createBeaconPool",
471
+ "outputs": [
472
+ {
473
+ "internalType": "contract DirectPaymentsPool",
474
+ "name": "pool",
475
+ "type": "address"
476
+ }
477
+ ],
478
+ "stateMutability": "nonpayable",
479
+ "type": "function"
480
+ },
481
+ {
482
+ "inputs": [
483
+ {
484
+ "internalType": "string",
485
+ "name": "_projectId",
486
+ "type": "string"
487
+ },
488
+ {
489
+ "internalType": "string",
490
+ "name": "_ipfs",
491
+ "type": "string"
492
+ },
493
+ {
494
+ "components": [
495
+ {
496
+ "internalType": "uint32",
497
+ "name": "nftType",
498
+ "type": "uint32"
499
+ },
500
+ {
501
+ "internalType": "uint16[]",
502
+ "name": "validEvents",
503
+ "type": "uint16[]"
504
+ },
505
+ {
506
+ "internalType": "uint128[]",
507
+ "name": "rewardPerEvent",
508
+ "type": "uint128[]"
509
+ },
510
+ {
511
+ "internalType": "address",
512
+ "name": "manager",
513
+ "type": "address"
514
+ },
515
+ {
516
+ "internalType": "contract IMembersValidator",
517
+ "name": "membersValidator",
518
+ "type": "address"
519
+ },
520
+ {
521
+ "internalType": "contract IIdentityV2",
522
+ "name": "uniquenessValidator",
523
+ "type": "address"
524
+ },
525
+ {
526
+ "internalType": "contract IERC20Upgradeable",
527
+ "name": "rewardToken",
528
+ "type": "address"
529
+ },
530
+ {
531
+ "internalType": "bool",
532
+ "name": "allowRewardOverride",
533
+ "type": "bool"
534
+ }
535
+ ],
536
+ "internalType": "struct DirectPaymentsPool.PoolSettings",
537
+ "name": "_settings",
538
+ "type": "tuple"
539
+ },
540
+ {
541
+ "components": [
542
+ {
543
+ "internalType": "uint256",
544
+ "name": "maxTotalPerMonth",
545
+ "type": "uint256"
546
+ },
547
+ {
548
+ "internalType": "uint256",
549
+ "name": "maxMemberPerMonth",
550
+ "type": "uint256"
551
+ },
552
+ {
553
+ "internalType": "uint256",
554
+ "name": "maxMemberPerDay",
555
+ "type": "uint256"
556
+ }
557
+ ],
558
+ "internalType": "struct DirectPaymentsPool.SafetyLimits",
559
+ "name": "_limits",
560
+ "type": "tuple"
561
+ },
562
+ {
563
+ "internalType": "uint32",
564
+ "name": "_managerFeeBps",
565
+ "type": "uint32"
566
+ }
567
+ ],
568
+ "name": "createPool",
569
+ "outputs": [
570
+ {
571
+ "internalType": "contract DirectPaymentsPool",
572
+ "name": "pool",
573
+ "type": "address"
574
+ }
575
+ ],
576
+ "stateMutability": "nonpayable",
577
+ "type": "function"
578
+ },
579
+ {
580
+ "inputs": [],
581
+ "name": "feeBps",
582
+ "outputs": [
583
+ {
584
+ "internalType": "uint32",
585
+ "name": "",
586
+ "type": "uint32"
587
+ }
588
+ ],
589
+ "stateMutability": "view",
590
+ "type": "function"
591
+ },
592
+ {
593
+ "inputs": [],
594
+ "name": "feeRecipient",
595
+ "outputs": [
596
+ {
597
+ "internalType": "address",
598
+ "name": "",
599
+ "type": "address"
600
+ }
601
+ ],
602
+ "stateMutability": "view",
603
+ "type": "function"
604
+ },
605
+ {
606
+ "inputs": [
607
+ {
608
+ "internalType": "bytes32",
609
+ "name": "role",
610
+ "type": "bytes32"
611
+ }
612
+ ],
613
+ "name": "getRoleAdmin",
614
+ "outputs": [
615
+ {
616
+ "internalType": "bytes32",
617
+ "name": "",
618
+ "type": "bytes32"
619
+ }
620
+ ],
621
+ "stateMutability": "view",
622
+ "type": "function"
623
+ },
624
+ {
625
+ "inputs": [
626
+ {
627
+ "internalType": "bytes32",
628
+ "name": "role",
629
+ "type": "bytes32"
630
+ },
631
+ {
632
+ "internalType": "address",
633
+ "name": "account",
634
+ "type": "address"
635
+ }
636
+ ],
637
+ "name": "grantRole",
638
+ "outputs": [],
639
+ "stateMutability": "nonpayable",
640
+ "type": "function"
641
+ },
642
+ {
643
+ "inputs": [
644
+ {
645
+ "internalType": "bytes32",
646
+ "name": "role",
647
+ "type": "bytes32"
648
+ },
649
+ {
650
+ "internalType": "address",
651
+ "name": "account",
652
+ "type": "address"
653
+ }
654
+ ],
655
+ "name": "hasRole",
656
+ "outputs": [
657
+ {
658
+ "internalType": "bool",
659
+ "name": "",
660
+ "type": "bool"
661
+ }
662
+ ],
663
+ "stateMutability": "view",
664
+ "type": "function"
665
+ },
666
+ {
667
+ "inputs": [],
668
+ "name": "impl",
669
+ "outputs": [
670
+ {
671
+ "internalType": "contract UpgradeableBeacon",
672
+ "name": "",
673
+ "type": "address"
674
+ }
675
+ ],
676
+ "stateMutability": "view",
677
+ "type": "function"
678
+ },
679
+ {
680
+ "inputs": [
681
+ {
682
+ "internalType": "address",
683
+ "name": "_owner",
684
+ "type": "address"
685
+ },
686
+ {
687
+ "internalType": "address",
688
+ "name": "_dpimpl",
689
+ "type": "address"
690
+ },
691
+ {
692
+ "internalType": "contract ProvableNFT",
693
+ "name": "_nft",
694
+ "type": "address"
695
+ },
696
+ {
697
+ "internalType": "address",
698
+ "name": "_feeRecipient",
699
+ "type": "address"
700
+ },
701
+ {
702
+ "internalType": "uint32",
703
+ "name": "_feeBps",
704
+ "type": "uint32"
705
+ }
706
+ ],
707
+ "name": "initialize",
708
+ "outputs": [],
709
+ "stateMutability": "nonpayable",
710
+ "type": "function"
711
+ },
712
+ {
713
+ "inputs": [
714
+ {
715
+ "internalType": "address",
716
+ "name": "",
717
+ "type": "address"
718
+ },
719
+ {
720
+ "internalType": "uint256",
721
+ "name": "",
722
+ "type": "uint256"
723
+ }
724
+ ],
725
+ "name": "memberPools",
726
+ "outputs": [
727
+ {
728
+ "internalType": "address",
729
+ "name": "",
730
+ "type": "address"
731
+ }
732
+ ],
733
+ "stateMutability": "view",
734
+ "type": "function"
735
+ },
736
+ {
737
+ "inputs": [],
738
+ "name": "nextNftType",
739
+ "outputs": [
740
+ {
741
+ "internalType": "uint32",
742
+ "name": "",
743
+ "type": "uint32"
744
+ }
745
+ ],
746
+ "stateMutability": "view",
747
+ "type": "function"
748
+ },
749
+ {
750
+ "inputs": [],
751
+ "name": "nft",
752
+ "outputs": [
753
+ {
754
+ "internalType": "contract ProvableNFT",
755
+ "name": "",
756
+ "type": "address"
757
+ }
758
+ ],
759
+ "stateMutability": "view",
760
+ "type": "function"
761
+ },
762
+ {
763
+ "inputs": [
764
+ {
765
+ "internalType": "uint256",
766
+ "name": "",
767
+ "type": "uint256"
768
+ }
769
+ ],
770
+ "name": "pools",
771
+ "outputs": [
772
+ {
773
+ "internalType": "address",
774
+ "name": "",
775
+ "type": "address"
776
+ }
777
+ ],
778
+ "stateMutability": "view",
779
+ "type": "function"
780
+ },
781
+ {
782
+ "inputs": [
783
+ {
784
+ "internalType": "bytes32",
785
+ "name": "",
786
+ "type": "bytes32"
787
+ }
788
+ ],
789
+ "name": "projectIdToControlPool",
790
+ "outputs": [
791
+ {
792
+ "internalType": "contract DirectPaymentsPool",
793
+ "name": "",
794
+ "type": "address"
795
+ }
796
+ ],
797
+ "stateMutability": "view",
798
+ "type": "function"
799
+ },
800
+ {
801
+ "inputs": [],
802
+ "name": "proxiableUUID",
803
+ "outputs": [
804
+ {
805
+ "internalType": "bytes32",
806
+ "name": "",
807
+ "type": "bytes32"
808
+ }
809
+ ],
810
+ "stateMutability": "view",
811
+ "type": "function"
812
+ },
813
+ {
814
+ "inputs": [
815
+ {
816
+ "internalType": "address",
817
+ "name": "",
818
+ "type": "address"
819
+ }
820
+ ],
821
+ "name": "registry",
822
+ "outputs": [
823
+ {
824
+ "internalType": "string",
825
+ "name": "ipfs",
826
+ "type": "string"
827
+ },
828
+ {
829
+ "internalType": "bool",
830
+ "name": "isVerified",
831
+ "type": "bool"
832
+ },
833
+ {
834
+ "internalType": "string",
835
+ "name": "projectId",
836
+ "type": "string"
837
+ }
838
+ ],
839
+ "stateMutability": "view",
840
+ "type": "function"
841
+ },
842
+ {
843
+ "inputs": [
844
+ {
845
+ "internalType": "address",
846
+ "name": "member",
847
+ "type": "address"
848
+ }
849
+ ],
850
+ "name": "removeMember",
851
+ "outputs": [],
852
+ "stateMutability": "nonpayable",
853
+ "type": "function"
854
+ },
855
+ {
856
+ "inputs": [
857
+ {
858
+ "internalType": "bytes32",
859
+ "name": "role",
860
+ "type": "bytes32"
861
+ },
862
+ {
863
+ "internalType": "address",
864
+ "name": "account",
865
+ "type": "address"
866
+ }
867
+ ],
868
+ "name": "renounceRole",
869
+ "outputs": [],
870
+ "stateMutability": "nonpayable",
871
+ "type": "function"
872
+ },
873
+ {
874
+ "inputs": [
875
+ {
876
+ "internalType": "bytes32",
877
+ "name": "role",
878
+ "type": "bytes32"
879
+ },
880
+ {
881
+ "internalType": "address",
882
+ "name": "account",
883
+ "type": "address"
884
+ }
885
+ ],
886
+ "name": "revokeRole",
887
+ "outputs": [],
888
+ "stateMutability": "nonpayable",
889
+ "type": "function"
890
+ },
891
+ {
892
+ "inputs": [
893
+ {
894
+ "internalType": "address",
895
+ "name": "_feeRecipient",
896
+ "type": "address"
897
+ },
898
+ {
899
+ "internalType": "uint32",
900
+ "name": "_feeBps",
901
+ "type": "uint32"
902
+ }
903
+ ],
904
+ "name": "setFeeInfo",
905
+ "outputs": [],
906
+ "stateMutability": "nonpayable",
907
+ "type": "function"
908
+ },
909
+ {
910
+ "inputs": [
911
+ {
912
+ "internalType": "contract DirectPaymentsPool",
913
+ "name": "_pool",
914
+ "type": "address"
915
+ },
916
+ {
917
+ "internalType": "bool",
918
+ "name": "_isVerified",
919
+ "type": "bool"
920
+ }
921
+ ],
922
+ "name": "setVerified",
923
+ "outputs": [],
924
+ "stateMutability": "nonpayable",
925
+ "type": "function"
926
+ },
927
+ {
928
+ "inputs": [
929
+ {
930
+ "internalType": "bytes4",
931
+ "name": "interfaceId",
932
+ "type": "bytes4"
933
+ }
934
+ ],
935
+ "name": "supportsInterface",
936
+ "outputs": [
937
+ {
938
+ "internalType": "bool",
939
+ "name": "",
940
+ "type": "bool"
941
+ }
942
+ ],
943
+ "stateMutability": "view",
944
+ "type": "function"
945
+ },
946
+ {
947
+ "inputs": [
948
+ {
949
+ "internalType": "address",
950
+ "name": "_impl",
951
+ "type": "address"
952
+ }
953
+ ],
954
+ "name": "updateImpl",
955
+ "outputs": [],
956
+ "stateMutability": "nonpayable",
957
+ "type": "function"
958
+ },
959
+ {
960
+ "inputs": [
961
+ {
962
+ "internalType": "address",
963
+ "name": "newImplementation",
964
+ "type": "address"
965
+ }
966
+ ],
967
+ "name": "upgradeTo",
968
+ "outputs": [],
969
+ "stateMutability": "nonpayable",
970
+ "type": "function"
971
+ },
972
+ {
973
+ "inputs": [
974
+ {
975
+ "internalType": "address",
976
+ "name": "newImplementation",
977
+ "type": "address"
978
+ },
979
+ {
980
+ "internalType": "bytes",
981
+ "name": "data",
982
+ "type": "bytes"
983
+ }
984
+ ],
985
+ "name": "upgradeToAndCall",
986
+ "outputs": [],
987
+ "stateMutability": "payable",
988
+ "type": "function"
989
+ }
990
+ ],
991
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b506080516142b761004c600039600081816109e701528181610a2a01528181610abb01528181610afe0152610ce801526142b76000f3fe608060405260043610620001705760003560e01c806301ffc9a71462000175578063038defd714620001af5780630b1ca49a14620001e5578063248a9ca3146200020c57806324a9d85314620002405780632f2ff15d146200027c57806336568abe14620002a15780633659cfe614620002c65780634690484014620002eb57806347ccca02146200031c5780634f1ef286146200033e5780634f962c8c146200035557806352d1902d146200037a57806357b707671462000392578063592f7b0514620003b75780636f4d469b14620003dd57806376967ae014620004025780638abf6077146200042757806391d1485414620004495780639cedd89b146200046e5780639cf5c61314620004a8578063a217fddf14620004cd578063ac4afa3814620004e4578063ae6ec8011462000509578063ca6d56dc146200052e578063d547741f1462000553578063e9e50b041462000578578063f8a2334c146200059d578063fcf1e00914620005c2575b600080fd5b3480156200018257600080fd5b506200019a62000194366004620023e4565b620005e7565b60405190151581526020015b60405180910390f35b348015620001bc57600080fd5b50620001d4620001ce36600462002438565b6200061f565b604051620001a693929190620024ac565b348015620001f257600080fd5b506200020a6200020436600462002438565b6200076a565b005b3480156200021957600080fd5b50620002316200022b366004620024e7565b6200091f565b604051908152602001620001a6565b3480156200024d57600080fd5b5060ff546200026690600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001620001a6565b3480156200028957600080fd5b506200020a6200029b36600462002501565b62000934565b348015620002ae57600080fd5b506200020a620002c036600462002501565b6200095b565b348015620002d357600080fd5b506200020a620002e536600462002438565b620009dd565b348015620002f857600080fd5b5060ff546200030d906001600160a01b031681565b604051620001a6919062002541565b3480156200032957600080fd5b5060fc546200030d906001600160a01b031681565b6200020a6200034f36600462002627565b62000ab1565b3480156200036257600080fd5b506200020a62000374366004620026b4565b62000b72565b3480156200038757600080fd5b506200023162000cdb565b3480156200039f57600080fd5b506200030d620003b1366004620026ff565b62000d8c565b348015620003c457600080fd5b5060fc546200026690600160a01b900463ffffffff1681565b348015620003ea57600080fd5b506200020a620003fc3660046200272e565b62000dc6565b3480156200040f57600080fd5b506200030d620004213660046200295b565b62000e5f565b3480156200043457600080fd5b5060fb546200030d906001600160a01b031681565b3480156200045657600080fd5b506200019a6200046836600462002501565b62000fa3565b3480156200047b57600080fd5b506200030d6200048d366004620024e7565b60fe602052600090815260409020546001600160a01b031681565b348015620004b557600080fd5b506200020a620004c736600462002ae1565b62000fce565b348015620004da57600080fd5b5062000231600081565b348015620004f157600080fd5b506200030d62000503366004620024e7565b62001037565b3480156200051657600080fd5b506200030d620005283660046200295b565b62001063565b3480156200053b57600080fd5b506200020a6200054d36600462002438565b6200119b565b3480156200056057600080fd5b506200020a6200057236600462002501565b620011e8565b3480156200058557600080fd5b506200020a6200059736600462002b14565b6200120a565b348015620005aa57600080fd5b506200020a620005bc36600462002b4e565b62001257565b348015620005cf57600080fd5b506200020a620005e136600462002438565b62001425565b60006001600160e01b03198216637965db0b60e01b14806200061957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60fd602052600090815260409020805481906200063c9062002bba565b80601f01602080910402602001604051908101604052809291908181526020018280546200066a9062002bba565b8015620006bb5780601f106200068f57610100808354040283529160200191620006bb565b820191906000526020600020905b8154815290600101906020018083116200069d57829003601f168201915b5050506001840154600285018054949560ff909216949193509150620006e19062002bba565b80601f01602080910402602001604051908101604052809291908181526020018280546200070f9062002bba565b8015620007605780601f10620007345761010080835404028352916020019162000760565b820191906000526020600020905b8154815290600101906020018083116200074257829003601f168201915b5050505050905083565b33600090815260fd602052604090206002018054620007899062002bba565b9050600003620007ac57604051630cc15fbb60e11b815260040160405180910390fd5b60005b6001600160a01b038216600090815261010060205260409020548110156200091b576001600160a01b03821660009081526101006020526040902080543391908390811062000802576200080262002bf6565b6000918252602090912001546001600160a01b03160362000906576001600160a01b0382166000908152610100602052604090208054620008469060019062002c22565b8154811062000859576200085962002bf6565b60009182526020808320909101546001600160a01b03858116845261010090925260409092208054919092169190839081106200089a576200089a62002bf6565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918416815261010090915260409020805480620008e357620008e362002c38565b600082815260209020810160001990810180546001600160a01b03191690550190555b80620009128162002c4e565b915050620007af565b5050565b60009081526065602052604090206001015490565b6200093f826200091f565b6200094a81620014d0565b620009568383620014dc565b505050565b6001600160a01b0381163314620009d15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6200091b828262001566565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000a285760405162461bcd60e51b8152600401620009c89062002c6a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000a5c620015d0565b6001600160a01b03161462000a855760405162461bcd60e51b8152600401620009c89062002ca5565b62000a9081620015ed565b6040805160008082526020820190925262000aae91839190620015fa565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000afc5760405162461bcd60e51b8152600401620009c89062002c6a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000b30620015d0565b6001600160a01b03161462000b595760405162461bcd60e51b8152600401620009c89062002ca5565b62000b6482620015ed565b6200091b82826001620015fa565b81806001600160a01b03166391d14854826001600160a01b031663ec87621c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bc1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000be7919062002ce0565b336040518363ffffffff1660e01b815260040162000c0792919062002cfa565b602060405180830381865afa15801562000c25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c4b919062002d11565b151560000362000c6e5760405163188c1dd560e01b815260040160405180910390fd5b6001600160a01b038316600090815260fd6020526040902062000c92838262002d7b565b50826001600160a01b03167f941ad6ac0538b96f9e89b9b52ec11031b50591baa2f16c0cdf1f94c69f389d6d8360405162000cce919062002e47565b60405180910390a2505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000d785760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401620009c8565b506000805160206200423b83398151915290565b610100602052816000526040600020818154811062000daa57600080fd5b6000918252602090912001546001600160a01b03169150829050565b33600090815260fd60205260409020600201805462000de59062002bba565b905060000362000e0857604051630cc15fbb60e11b815260040160405180910390fd5b60005b81811015620009565762000e4a83838381811062000e2d5762000e2d62002bf6565b905060200201602081019062000e44919062002438565b62001772565b8062000e568162002c4e565b91505062000e0b565b8451602080870191909120600090815260fe909152604081205486906001600160a01b0316801562000f8657806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ed9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000eff919062002ce0565b336040518363ffffffff1660e01b815260040162000f1f92919062002cfa565b602060405180830381865afa15801562000f3d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f63919062002d11565b151560000362000f8657604051631d799a6d60e21b815260040160405180910390fd5b62000f9788888888886000620017dd565b98975050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600062000fdb81620014d0565b6001600160a01b038316600081815260fd6020908152604091829020600101805460ff191686151590811790915591519182527fafdc942e2e075abc791516f168aed9293862095eb31c0dab19c8d0d061018a93910162000cce565b61010181815481106200104957600080fd5b6000918252602090912001546001600160a01b0316905081565b8451602080870191909120600090815260fe909152604081205486906001600160a01b031680156200118a57806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620010dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001103919062002ce0565b336040518363ffffffff1660e01b81526004016200112392919062002cfa565b602060405180830381865afa15801562001141573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001167919062002d11565b15156000036200118a57604051631d799a6d60e21b815260040160405180910390fd5b62000f9788888888886001620017dd565b33600090815260fd602052604090206002018054620011ba9062002bba565b9050600003620011dd57604051630cc15fbb60e11b815260040160405180910390fd5b62000aae8162001772565b620011f3826200091f565b620011fe81620014d0565b62000956838362001566565b60006200121781620014d0565b5060ff80546001600160a01b039093166001600160a01b031963ffffffff909316600160a01b02929092166001600160c01b031990931692909217179055565b600054610100900460ff1615808015620012785750600054600160ff909116105b806200129d57506200128a3062001f15565b1580156200129d575060005460ff166001145b620013025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620009c8565b6000805460ff19166001179055801562001326576000805461ff0019166101001790555b60fc805463ffffffff60a01b1916600160a01b17905560405185906200134c90620023ba565b62001358919062002541565b604051809103906000f08015801562001375573d6000803e3d6000fd5b5060fb80546001600160a01b03199081166001600160a01b039384161790915560fc805490911686831617905560ff80549185166001600160c01b031990921691909117600160a01b63ffffffff851602179055620013d660008762001f24565b80156200141d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60006200143281620014d0565b60fb54604051631b2ce7f360e11b81526001600160a01b0390911690633659cfe6906200146490859060040162002541565b600060405180830381600087803b1580156200147f57600080fd5b505af115801562001494573d6000803e3d6000fd5b50506040516001600160a01b03851692507f71ce7583e9b7e543de8a69a6af369c0b3528b287064f9dce26a38025e36dc2c79150600090a25050565b62000aae813362001f30565b620014e8828262000fa3565b6200091b5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015223390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b62001572828262000fa3565b156200091b5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805160206200423b833981519152546001600160a01b031690565b60006200091b81620014d0565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156200163057620009568362001f94565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200168d575060408051601f3d908101601f191682019092526200168a9181019062002ce0565b60015b620016f25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401620009c8565b6000805160206200423b8339815191528114620017645760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401620009c8565b506200095683838362002033565b6001600160a01b038116600081815261010060209081526040808320805460018101825590845291832090910180546001600160a01b0319163390811790915590519092917f6a2af11b2d73f347f9d5840aea46899e17609730b5cd91bd9c312098038acba691a350565b60fc5463ffffffff600160a01b8204168552604051600091829162001817916001600160a01b031690889088908890309060240162002fa1565b60408051601f198184030181529190526020810180516001600160e01b0316634b1e337f60e01b179052905082156200189c5760fb546040516001600160a01b039091169082906200186990620023c8565b6200187692919062002ff5565b604051809103906000f08015801562001893573d6000803e3d6000fd5b50915062001953565b60fb60009054906101000a90046001600160a01b03166001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620018f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001916919062003023565b816040516200192590620023d6565b6200193292919062002ff5565b604051809103906000f0801580156200194f573d6000803e3d6000fd5b5091505b816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001992573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b8919062003023565b6001600160a01b0316633ca3ad4e836040518263ffffffff1660e01b8152600401620019e5919062002541565b602060405180830381865afa15801562001a03573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a29919062002d11565b151560000362001bc457816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001a72573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a98919062003023565b6001600160a01b031663c60944a68360016040518363ffffffff1660e01b815260040162001ac892919062003043565b600060405180830381600087803b15801562001ae357600080fd5b505af192505050801562001af5575060015b62001bc457816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001b39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b5f919062003023565b6001600160a01b031663f37330528360016040518363ffffffff1660e01b815260040162001b8f92919062003043565b600060405180830381600087803b15801562001baa57600080fd5b505af115801562001bbf573d6000803e3d6000fd5b505050505b60fc54604051634e93f47b60e01b815263ffffffff600160a01b83041660048201526001600160a01b0390911690632f2ff15d908290634e93f47b90602401602060405180830381865afa15801562001c21573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c47919062002ce0565b846040518363ffffffff1660e01b815260040162001c6792919062002cfa565b600060405180830381600087803b15801562001c8257600080fd5b505af115801562001c97573d6000803e3d6000fd5b505089516020808c0191909120600090815260fe90915260409020546001600160a01b0316915062001cf890505787516020808a0191909120600090815260fe9091526040902080546001600160a01b0319166001600160a01b0384161790555b6001600160a01b038216600090815260fd6020526040902062001d1c888262002d7b565b506001600160a01b038216600090815260fd6020526040902060020162001d44898262002d7b565b50604051632f2ff15d60e01b81526001600160a01b03831690632f2ff15d9062001d7690600090339060040162002cfa565b600060405180830381600087803b15801562001d9157600080fd5b505af115801562001da6573d6000803e3d6000fd5b5050604051631b2b455f60e11b81526001600160a01b03851692506336568abe915062001ddb90600090309060040162002cfa565b600060405180830381600087803b15801562001df657600080fd5b505af115801562001e0b573d6000803e3d6000fd5b505061010180546001810182556000919091527f109ea3cebb188b9c1b9fc5bb3920be60dfdc8699098dff92f3d80daaca7476890180546001600160a01b0319166001600160a01b038616179055505060fc54604051600160a01b90910463ffffffff169062001e7d908a906200305c565b6040518091039020836001600160a01b03167fabf24e13dd04b5233e0ccecc88963e42e9d8b5ceae25458b61109fcbc0201bfe8a8a8a60405162001ec4939291906200307a565b60405180910390a460fc8054600160a01b900463ffffffff1690601462001eeb83620030b5565b91906101000a81548163ffffffff021916908363ffffffff16021790555050509695505050505050565b6001600160a01b03163b151590565b6200091b8282620014dc565b62001f3c828262000fa3565b6200091b5762001f4c8162002064565b62001f5983602062002077565b60405160200162001f6c929190620030db565b60408051601f198184030181529082905262461bcd60e51b8252620009c89160040162002e47565b62001f9f8162001f15565b620020035760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620009c8565b6000805160206200423b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6200203e8362002237565b6000825111806200204c5750805b1562000956576200205e838362002279565b50505050565b6060620006196001600160a01b03831660145b60606000620020888360026200314e565b6200209590600262003168565b6001600160401b03811115620020af57620020af62002555565b6040519080825280601f01601f191660200182016040528015620020da576020820181803683370190505b509050600360fc1b81600081518110620020f857620020f862002bf6565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106200212a576200212a62002bf6565b60200101906001600160f81b031916908160001a9053506000620021508460026200314e565b6200215d90600162003168565b90505b6001811115620021df576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062002195576200219562002bf6565b1a60f81b828281518110620021ae57620021ae62002bf6565b60200101906001600160f81b031916908160001a90535060049490941c93620021d7816200317e565b905062002160565b508315620022305760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009c8565b9392505050565b620022428162001f94565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620022868362001f15565b620022e35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620009c8565b600080846001600160a01b0316846040516200230091906200305c565b600060405180830381855af49150503d80600081146200233d576040519150601f19603f3d011682016040523d82523d6000602084013e62002342565b606091505b50915091506200236d82826040518060600160405280602781526020016200425b6027913962002376565b95945050505050565b606083156200238757508162002230565b6200223083838151156200239e5781518083602001fd5b8060405162461bcd60e51b8152600401620009c8919062002e47565b6104c9806200319983390190565b6106cd806200366283390190565b6104ec8062003d2f83390190565b600060208284031215620023f757600080fd5b81356001600160e01b0319811681146200223057600080fd5b6001600160a01b038116811462000aae57600080fd5b8035620024338162002410565b919050565b6000602082840312156200244b57600080fd5b8135620022308162002410565b60005b83811015620024755781810151838201526020016200245b565b50506000910152565b600081518084526200249881602086016020860162002458565b601f01601f19169290920160200192915050565b606081526000620024c160608301866200247e565b84151560208401528281036040840152620024dd81856200247e565b9695505050505050565b600060208284031215620024fa57600080fd5b5035919050565b600080604083850312156200251557600080fd5b823591506020830135620025298162002410565b809150509250929050565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b038111828210171562002591576200259162002555565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620025c257620025c262002555565b604052919050565b60006001600160401b03831115620025e657620025e662002555565b620025fb601f8401601f191660200162002597565b90508281528383830111156200261057600080fd5b828260208301376000602084830101529392505050565b600080604083850312156200263b57600080fd5b8235620026488162002410565b915060208301356001600160401b038111156200266457600080fd5b8301601f810185136200267657600080fd5b6200268785823560208401620025ca565b9150509250929050565b600082601f830112620026a357600080fd5b6200223083833560208501620025ca565b60008060408385031215620026c857600080fd5b8235620026d58162002410565b915060208301356001600160401b03811115620026f157600080fd5b620026878582860162002691565b600080604083850312156200271357600080fd5b8235620027208162002410565b946020939093013593505050565b600080602083850312156200274257600080fd5b82356001600160401b03808211156200275a57600080fd5b818501915085601f8301126200276f57600080fd5b8135818111156200277f57600080fd5b8660208260051b85010111156200279557600080fd5b60209290920196919550909350505050565b803563ffffffff811681146200243357600080fd5b60006001600160401b03821115620027d857620027d862002555565b5060051b60200190565b600082601f830112620027f457600080fd5b813560206200280d6200280783620027bc565b62002597565b82815260059290921b840181019181810190868411156200282d57600080fd5b8286015b848110156200285c57803561ffff811681146200284e5760008081fd5b835291830191830162002831565b509695505050505050565b600082601f8301126200287957600080fd5b813560206200288c6200280783620027bc565b82815260059290921b84018101918181019086841115620028ac57600080fd5b8286015b848110156200285c5780356001600160801b0381168114620028d25760008081fd5b8352918301918301620028b0565b801515811462000aae57600080fd5b80356200243381620028e0565b6000606082840312156200290f57600080fd5b604051606081016001600160401b038111828210171562002934576200293462002555565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600080600060e086880312156200297457600080fd5b85356001600160401b03808211156200298c57600080fd5b6200299a89838a0162002691565b96506020880135915080821115620029b157600080fd5b620029bf89838a0162002691565b95506040880135915080821115620029d657600080fd5b90870190610100828a031215620029ec57600080fd5b620029f66200256b565b62002a0183620027a7565b815260208301358281111562002a1657600080fd5b62002a248b828601620027e2565b60208301525060408301358281111562002a3d57600080fd5b62002a4b8b82860162002867565b60408301525062002a5f6060840162002426565b606082015262002a726080840162002426565b608082015262002a8560a0840162002426565b60a082015262002a9860c0840162002426565b60c082015262002aab60e08401620028ef565b60e082015280955050505062002ac58760608801620028fc565b915062002ad560c08701620027a7565b90509295509295909350565b6000806040838503121562002af557600080fd5b823562002b028162002410565b915060208301356200252981620028e0565b6000806040838503121562002b2857600080fd5b823562002b358162002410565b915062002b4560208401620027a7565b90509250929050565b600080600080600060a0868803121562002b6757600080fd5b853562002b748162002410565b9450602086013562002b868162002410565b9350604086013562002b988162002410565b9250606086013562002baa8162002410565b915062002ad560808701620027a7565b600181811c9082168062002bcf57607f821691505b60208210810362002bf057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111562000619576200061962002c0c565b634e487b7160e01b600052603160045260246000fd5b60006001820162002c635762002c6362002c0c565b5060010190565b6020808252602c908201526000805160206200421b83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206200421b83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121562002cf357600080fd5b5051919050565b9182526001600160a01b0316602082015260400190565b60006020828403121562002d2457600080fd5b81516200223081620028e0565b601f8211156200095657600081815260208120601f850160051c8101602086101562002d5a5750805b601f850160051c820191505b818110156200141d5782815560010162002d66565b81516001600160401b0381111562002d975762002d9762002555565b62002daf8162002da8845462002bba565b8462002d31565b602080601f83116001811462002de7576000841562002dce5750858301515b600019600386901b1c1916600185901b1785556200141d565b600085815260208120601f198616915b8281101562002e185788860151825594840194600190910190840162002df7565b508582101562002e375787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020815260006200223060208301846200247e565b600081518084526020808501945080840160005b8381101562002e975781516001600160801b03168752958201959082019060010162002e70565b509495945050505050565b805163ffffffff168252602080820151610100828501819052815190850181905260009261012086019281019184905b8082101562002ef857835161ffff16855293820193928201926001919091019062002ed2565b505050506040830151848203604086015262002f15828262002e5c565b915050606083015162002f2c606086018262002534565b50608083015162002f41608086018262002534565b5060a083015162002f5660a086018262002534565b5060c083015162002f6b60c086018262002534565b5060e083015162002f8060e086018215159052565b509392505050565b8051825260208082015190830152604090810151910152565b600060018060a01b03808816835260e0602084015262002fc560e084018862002ea2565b915062002fd6604084018762002f88565b63ffffffff851660a084015280841660c0840152509695505050505050565b6001600160a01b03831681526040602082018190526000906200301b908301846200247e565b949350505050565b6000602082840312156200303657600080fd5b8151620022308162002410565b6001600160a01b03929092168252602082015260400190565b600082516200307081846020870162002458565b9190910192915050565b60a0815260006200308f60a08301866200247e565b8281036020840152620030a3818662002ea2565b9150506200301b604083018462002f88565b600063ffffffff808316818103620030d157620030d162002c0c565b6001019392505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516200310f81601785016020880162002458565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516200314281602884016020880162002458565b01602801949350505050565b808202811582820484141762000619576200061962002c0c565b8082018082111562000619576200061962002c0c565b60008162003190576200319062002c0c565b50600019019056fe608060405234801561001057600080fd5b506040516104c93803806104c983398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610350806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100aa575b600080fd5b61006f61006a3660046102ea565b6100bd565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f610105565b61007e610119565b61006f6100b83660046102ea565b610128565b6100c56101a6565b6100ce81610205565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61010d6101a6565b610117600061029a565b565b6000546001600160a01b031690565b6101306101a6565b6001600160a01b03811661019a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6101a38161029a565b50565b336101af610119565b6001600160a01b0316146101175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610191565b6001600160a01b0381163b6102785760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b6064820152608401610191565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102fc57600080fd5b81356001600160a01b038116811461031357600080fd5b939250505056fea264697066735822122038970e7cf09dc887c70d5260fa612ed542a4b7fc825586d54bcad83fc1ebdd9164736f6c6343000813003360806040526040516106cd3803806106cd83398101604081905261002291610421565b61002e82826000610035565b505061054b565b61003e836100f6565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100f1576100ef836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e991906104e1565b8361026e565b505b505050565b6100ff8161029a565b61015e5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101c8816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c391906104e1565b61029a565b61022d5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610155565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029383836040518060600160405280602781526020016106a6602791396102a9565b9392505050565b6001600160a01b03163b151590565b6060600080856001600160a01b0316856040516102c691906104fc565b600060405180830381855af49150503d8060008114610301576040519150601f19603f3d011682016040523d82523d6000602084013e610306565b606091505b50909250905061031886838387610322565b9695505050505050565b6060831561038f5782516000036103885761033c8561029a565b6103885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610155565b5081610399565b61039983836103a1565b949350505050565b8151156103b15781518083602001fd5b8060405162461bcd60e51b81526004016101559190610518565b80516001600160a01b03811681146103e257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610418578181015183820152602001610400565b50506000910152565b6000806040838503121561043457600080fd5b61043d836103cb565b60208401519092506001600160401b038082111561045a57600080fd5b818501915085601f83011261046e57600080fd5b815181811115610480576104806103e7565b604051601f8201601f19908116603f011681019083821181831017156104a8576104a86103e7565b816040528281528860208487010111156104c157600080fd5b6104d28360208301602088016103fd565b80955050505050509250929050565b6000602082840312156104f357600080fd5b610293826103cb565b6000825161050e8184602087016103fd565b9190910192915050565b60208152600082518060208401526105378160408501602087016103fd565b601f01601f19169190910160400192915050565b61014c8061055a6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610029565b6100c2565b565b600061005c7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906100e6565b905090565b3660008037600080366000845af43d6000803e8080156100e1573d6000f35b3d6000fd5b6000602082840312156100f857600080fd5b81516001600160a01b038116811461010f57600080fd5b939250505056fea26469706673582212207b4f4f4bd905b812712d76801c617b8aa3f4c3f8d6d9e59a18563606189dd4e564736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656460806040526040516104ec3803806104ec833981016040819052610022916102e9565b61002e82826000610035565b5050610406565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c56027913961017e565b9392505050565b6100d6816101f7565b61013d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019b91906103b7565b600060405180830381855af49150503d80600081146101d6576040519150601f19603f3d011682016040523d82523d6000602084013e6101db565b606091505b5090925090506101ed86838387610206565b9695505050505050565b6001600160a01b03163b151590565b6060831561027357825160000361026c57610220856101f7565b61026c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610134565b508161027d565b61027d8383610285565b949350505050565b8151156102955781518083602001fd5b8060405162461bcd60e51b815260040161013491906103d3565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102e05781810151838201526020016102c8565b50506000910152565b600080604083850312156102fc57600080fd5b82516001600160a01b038116811461031357600080fd5b60208401519092506001600160401b038082111561033057600080fd5b818501915085601f83011261034457600080fd5b815181811115610356576103566102af565b604051601f8201601f19908116603f0116810190838211818310171561037e5761037e6102af565b8160405282815288602084870101111561039757600080fd5b6103a88360208301602088016102c5565b80955050505050509250929050565b600082516103c98184602087016102c5565b9190910192915050565b60208152600082518060208401526103f28160408501602087016102c5565b601f01601f19169190910160400192915050565b60b1806104146000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea2646970667358221220a4cda07e5b291f61d81b4ee016ef5ca6a806aa56384b08ff8d52828dbed4d68d64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656446756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209f95647c40bf4acf1b69342e5f985abea23390d2fb6c6e808d274cc4265b0b1a64736f6c63430008130033",
992
+ "deployedBytecode": "0x608060405260043610620001705760003560e01c806301ffc9a71462000175578063038defd714620001af5780630b1ca49a14620001e5578063248a9ca3146200020c57806324a9d85314620002405780632f2ff15d146200027c57806336568abe14620002a15780633659cfe614620002c65780634690484014620002eb57806347ccca02146200031c5780634f1ef286146200033e5780634f962c8c146200035557806352d1902d146200037a57806357b707671462000392578063592f7b0514620003b75780636f4d469b14620003dd57806376967ae014620004025780638abf6077146200042757806391d1485414620004495780639cedd89b146200046e5780639cf5c61314620004a8578063a217fddf14620004cd578063ac4afa3814620004e4578063ae6ec8011462000509578063ca6d56dc146200052e578063d547741f1462000553578063e9e50b041462000578578063f8a2334c146200059d578063fcf1e00914620005c2575b600080fd5b3480156200018257600080fd5b506200019a62000194366004620023e4565b620005e7565b60405190151581526020015b60405180910390f35b348015620001bc57600080fd5b50620001d4620001ce36600462002438565b6200061f565b604051620001a693929190620024ac565b348015620001f257600080fd5b506200020a6200020436600462002438565b6200076a565b005b3480156200021957600080fd5b50620002316200022b366004620024e7565b6200091f565b604051908152602001620001a6565b3480156200024d57600080fd5b5060ff546200026690600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001620001a6565b3480156200028957600080fd5b506200020a6200029b36600462002501565b62000934565b348015620002ae57600080fd5b506200020a620002c036600462002501565b6200095b565b348015620002d357600080fd5b506200020a620002e536600462002438565b620009dd565b348015620002f857600080fd5b5060ff546200030d906001600160a01b031681565b604051620001a6919062002541565b3480156200032957600080fd5b5060fc546200030d906001600160a01b031681565b6200020a6200034f36600462002627565b62000ab1565b3480156200036257600080fd5b506200020a62000374366004620026b4565b62000b72565b3480156200038757600080fd5b506200023162000cdb565b3480156200039f57600080fd5b506200030d620003b1366004620026ff565b62000d8c565b348015620003c457600080fd5b5060fc546200026690600160a01b900463ffffffff1681565b348015620003ea57600080fd5b506200020a620003fc3660046200272e565b62000dc6565b3480156200040f57600080fd5b506200030d620004213660046200295b565b62000e5f565b3480156200043457600080fd5b5060fb546200030d906001600160a01b031681565b3480156200045657600080fd5b506200019a6200046836600462002501565b62000fa3565b3480156200047b57600080fd5b506200030d6200048d366004620024e7565b60fe602052600090815260409020546001600160a01b031681565b348015620004b557600080fd5b506200020a620004c736600462002ae1565b62000fce565b348015620004da57600080fd5b5062000231600081565b348015620004f157600080fd5b506200030d62000503366004620024e7565b62001037565b3480156200051657600080fd5b506200030d620005283660046200295b565b62001063565b3480156200053b57600080fd5b506200020a6200054d36600462002438565b6200119b565b3480156200056057600080fd5b506200020a6200057236600462002501565b620011e8565b3480156200058557600080fd5b506200020a6200059736600462002b14565b6200120a565b348015620005aa57600080fd5b506200020a620005bc36600462002b4e565b62001257565b348015620005cf57600080fd5b506200020a620005e136600462002438565b62001425565b60006001600160e01b03198216637965db0b60e01b14806200061957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60fd602052600090815260409020805481906200063c9062002bba565b80601f01602080910402602001604051908101604052809291908181526020018280546200066a9062002bba565b8015620006bb5780601f106200068f57610100808354040283529160200191620006bb565b820191906000526020600020905b8154815290600101906020018083116200069d57829003601f168201915b5050506001840154600285018054949560ff909216949193509150620006e19062002bba565b80601f01602080910402602001604051908101604052809291908181526020018280546200070f9062002bba565b8015620007605780601f10620007345761010080835404028352916020019162000760565b820191906000526020600020905b8154815290600101906020018083116200074257829003601f168201915b5050505050905083565b33600090815260fd602052604090206002018054620007899062002bba565b9050600003620007ac57604051630cc15fbb60e11b815260040160405180910390fd5b60005b6001600160a01b038216600090815261010060205260409020548110156200091b576001600160a01b03821660009081526101006020526040902080543391908390811062000802576200080262002bf6565b6000918252602090912001546001600160a01b03160362000906576001600160a01b0382166000908152610100602052604090208054620008469060019062002c22565b8154811062000859576200085962002bf6565b60009182526020808320909101546001600160a01b03858116845261010090925260409092208054919092169190839081106200089a576200089a62002bf6565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918416815261010090915260409020805480620008e357620008e362002c38565b600082815260209020810160001990810180546001600160a01b03191690550190555b80620009128162002c4e565b915050620007af565b5050565b60009081526065602052604090206001015490565b6200093f826200091f565b6200094a81620014d0565b620009568383620014dc565b505050565b6001600160a01b0381163314620009d15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6200091b828262001566565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000a285760405162461bcd60e51b8152600401620009c89062002c6a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000a5c620015d0565b6001600160a01b03161462000a855760405162461bcd60e51b8152600401620009c89062002ca5565b62000a9081620015ed565b6040805160008082526020820190925262000aae91839190620015fa565b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000afc5760405162461bcd60e51b8152600401620009c89062002c6a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000b30620015d0565b6001600160a01b03161462000b595760405162461bcd60e51b8152600401620009c89062002ca5565b62000b6482620015ed565b6200091b82826001620015fa565b81806001600160a01b03166391d14854826001600160a01b031663ec87621c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bc1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000be7919062002ce0565b336040518363ffffffff1660e01b815260040162000c0792919062002cfa565b602060405180830381865afa15801562000c25573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c4b919062002d11565b151560000362000c6e5760405163188c1dd560e01b815260040160405180910390fd5b6001600160a01b038316600090815260fd6020526040902062000c92838262002d7b565b50826001600160a01b03167f941ad6ac0538b96f9e89b9b52ec11031b50591baa2f16c0cdf1f94c69f389d6d8360405162000cce919062002e47565b60405180910390a2505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000d785760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401620009c8565b506000805160206200423b83398151915290565b610100602052816000526040600020818154811062000daa57600080fd5b6000918252602090912001546001600160a01b03169150829050565b33600090815260fd60205260409020600201805462000de59062002bba565b905060000362000e0857604051630cc15fbb60e11b815260040160405180910390fd5b60005b81811015620009565762000e4a83838381811062000e2d5762000e2d62002bf6565b905060200201602081019062000e44919062002438565b62001772565b8062000e568162002c4e565b91505062000e0b565b8451602080870191909120600090815260fe909152604081205486906001600160a01b0316801562000f8657806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ed9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000eff919062002ce0565b336040518363ffffffff1660e01b815260040162000f1f92919062002cfa565b602060405180830381865afa15801562000f3d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f63919062002d11565b151560000362000f8657604051631d799a6d60e21b815260040160405180910390fd5b62000f9788888888886000620017dd565b98975050505050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600062000fdb81620014d0565b6001600160a01b038316600081815260fd6020908152604091829020600101805460ff191686151590811790915591519182527fafdc942e2e075abc791516f168aed9293862095eb31c0dab19c8d0d061018a93910162000cce565b61010181815481106200104957600080fd5b6000918252602090912001546001600160a01b0316905081565b8451602080870191909120600090815260fe909152604081205486906001600160a01b031680156200118a57806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620010dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001103919062002ce0565b336040518363ffffffff1660e01b81526004016200112392919062002cfa565b602060405180830381865afa15801562001141573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001167919062002d11565b15156000036200118a57604051631d799a6d60e21b815260040160405180910390fd5b62000f9788888888886001620017dd565b33600090815260fd602052604090206002018054620011ba9062002bba565b9050600003620011dd57604051630cc15fbb60e11b815260040160405180910390fd5b62000aae8162001772565b620011f3826200091f565b620011fe81620014d0565b62000956838362001566565b60006200121781620014d0565b5060ff80546001600160a01b039093166001600160a01b031963ffffffff909316600160a01b02929092166001600160c01b031990931692909217179055565b600054610100900460ff1615808015620012785750600054600160ff909116105b806200129d57506200128a3062001f15565b1580156200129d575060005460ff166001145b620013025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620009c8565b6000805460ff19166001179055801562001326576000805461ff0019166101001790555b60fc805463ffffffff60a01b1916600160a01b17905560405185906200134c90620023ba565b62001358919062002541565b604051809103906000f08015801562001375573d6000803e3d6000fd5b5060fb80546001600160a01b03199081166001600160a01b039384161790915560fc805490911686831617905560ff80549185166001600160c01b031990921691909117600160a01b63ffffffff851602179055620013d660008762001f24565b80156200141d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60006200143281620014d0565b60fb54604051631b2ce7f360e11b81526001600160a01b0390911690633659cfe6906200146490859060040162002541565b600060405180830381600087803b1580156200147f57600080fd5b505af115801562001494573d6000803e3d6000fd5b50506040516001600160a01b03851692507f71ce7583e9b7e543de8a69a6af369c0b3528b287064f9dce26a38025e36dc2c79150600090a25050565b62000aae813362001f30565b620014e8828262000fa3565b6200091b5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015223390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b62001572828262000fa3565b156200091b5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805160206200423b833981519152546001600160a01b031690565b60006200091b81620014d0565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156200163057620009568362001f94565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200168d575060408051601f3d908101601f191682019092526200168a9181019062002ce0565b60015b620016f25760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401620009c8565b6000805160206200423b8339815191528114620017645760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401620009c8565b506200095683838362002033565b6001600160a01b038116600081815261010060209081526040808320805460018101825590845291832090910180546001600160a01b0319163390811790915590519092917f6a2af11b2d73f347f9d5840aea46899e17609730b5cd91bd9c312098038acba691a350565b60fc5463ffffffff600160a01b8204168552604051600091829162001817916001600160a01b031690889088908890309060240162002fa1565b60408051601f198184030181529190526020810180516001600160e01b0316634b1e337f60e01b179052905082156200189c5760fb546040516001600160a01b039091169082906200186990620023c8565b6200187692919062002ff5565b604051809103906000f08015801562001893573d6000803e3d6000fd5b50915062001953565b60fb60009054906101000a90046001600160a01b03166001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620018f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001916919062003023565b816040516200192590620023d6565b6200193292919062002ff5565b604051809103906000f0801580156200194f573d6000803e3d6000fd5b5091505b816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001992573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019b8919062003023565b6001600160a01b0316633ca3ad4e836040518263ffffffff1660e01b8152600401620019e5919062002541565b602060405180830381865afa15801562001a03573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a29919062002d11565b151560000362001bc457816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001a72573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a98919062003023565b6001600160a01b031663c60944a68360016040518363ffffffff1660e01b815260040162001ac892919062003043565b600060405180830381600087803b15801562001ae357600080fd5b505af192505050801562001af5575060015b62001bc457816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001b39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b5f919062003023565b6001600160a01b031663f37330528360016040518363ffffffff1660e01b815260040162001b8f92919062003043565b600060405180830381600087803b15801562001baa57600080fd5b505af115801562001bbf573d6000803e3d6000fd5b505050505b60fc54604051634e93f47b60e01b815263ffffffff600160a01b83041660048201526001600160a01b0390911690632f2ff15d908290634e93f47b90602401602060405180830381865afa15801562001c21573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c47919062002ce0565b846040518363ffffffff1660e01b815260040162001c6792919062002cfa565b600060405180830381600087803b15801562001c8257600080fd5b505af115801562001c97573d6000803e3d6000fd5b505089516020808c0191909120600090815260fe90915260409020546001600160a01b0316915062001cf890505787516020808a0191909120600090815260fe9091526040902080546001600160a01b0319166001600160a01b0384161790555b6001600160a01b038216600090815260fd6020526040902062001d1c888262002d7b565b506001600160a01b038216600090815260fd6020526040902060020162001d44898262002d7b565b50604051632f2ff15d60e01b81526001600160a01b03831690632f2ff15d9062001d7690600090339060040162002cfa565b600060405180830381600087803b15801562001d9157600080fd5b505af115801562001da6573d6000803e3d6000fd5b5050604051631b2b455f60e11b81526001600160a01b03851692506336568abe915062001ddb90600090309060040162002cfa565b600060405180830381600087803b15801562001df657600080fd5b505af115801562001e0b573d6000803e3d6000fd5b505061010180546001810182556000919091527f109ea3cebb188b9c1b9fc5bb3920be60dfdc8699098dff92f3d80daaca7476890180546001600160a01b0319166001600160a01b038616179055505060fc54604051600160a01b90910463ffffffff169062001e7d908a906200305c565b6040518091039020836001600160a01b03167fabf24e13dd04b5233e0ccecc88963e42e9d8b5ceae25458b61109fcbc0201bfe8a8a8a60405162001ec4939291906200307a565b60405180910390a460fc8054600160a01b900463ffffffff1690601462001eeb83620030b5565b91906101000a81548163ffffffff021916908363ffffffff16021790555050509695505050505050565b6001600160a01b03163b151590565b6200091b8282620014dc565b62001f3c828262000fa3565b6200091b5762001f4c8162002064565b62001f5983602062002077565b60405160200162001f6c929190620030db565b60408051601f198184030181529082905262461bcd60e51b8252620009c89160040162002e47565b62001f9f8162001f15565b620020035760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620009c8565b6000805160206200423b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6200203e8362002237565b6000825111806200204c5750805b1562000956576200205e838362002279565b50505050565b6060620006196001600160a01b03831660145b60606000620020888360026200314e565b6200209590600262003168565b6001600160401b03811115620020af57620020af62002555565b6040519080825280601f01601f191660200182016040528015620020da576020820181803683370190505b509050600360fc1b81600081518110620020f857620020f862002bf6565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106200212a576200212a62002bf6565b60200101906001600160f81b031916908160001a9053506000620021508460026200314e565b6200215d90600162003168565b90505b6001811115620021df576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062002195576200219562002bf6565b1a60f81b828281518110620021ae57620021ae62002bf6565b60200101906001600160f81b031916908160001a90535060049490941c93620021d7816200317e565b905062002160565b508315620022305760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009c8565b9392505050565b620022428162001f94565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620022868362001f15565b620022e35760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620009c8565b600080846001600160a01b0316846040516200230091906200305c565b600060405180830381855af49150503d80600081146200233d576040519150601f19603f3d011682016040523d82523d6000602084013e62002342565b606091505b50915091506200236d82826040518060600160405280602781526020016200425b6027913962002376565b95945050505050565b606083156200238757508162002230565b6200223083838151156200239e5781518083602001fd5b8060405162461bcd60e51b8152600401620009c8919062002e47565b6104c9806200319983390190565b6106cd806200366283390190565b6104ec8062003d2f83390190565b600060208284031215620023f757600080fd5b81356001600160e01b0319811681146200223057600080fd5b6001600160a01b038116811462000aae57600080fd5b8035620024338162002410565b919050565b6000602082840312156200244b57600080fd5b8135620022308162002410565b60005b83811015620024755781810151838201526020016200245b565b50506000910152565b600081518084526200249881602086016020860162002458565b601f01601f19169290920160200192915050565b606081526000620024c160608301866200247e565b84151560208401528281036040840152620024dd81856200247e565b9695505050505050565b600060208284031215620024fa57600080fd5b5035919050565b600080604083850312156200251557600080fd5b823591506020830135620025298162002410565b809150509250929050565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b60405161010081016001600160401b038111828210171562002591576200259162002555565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620025c257620025c262002555565b604052919050565b60006001600160401b03831115620025e657620025e662002555565b620025fb601f8401601f191660200162002597565b90508281528383830111156200261057600080fd5b828260208301376000602084830101529392505050565b600080604083850312156200263b57600080fd5b8235620026488162002410565b915060208301356001600160401b038111156200266457600080fd5b8301601f810185136200267657600080fd5b6200268785823560208401620025ca565b9150509250929050565b600082601f830112620026a357600080fd5b6200223083833560208501620025ca565b60008060408385031215620026c857600080fd5b8235620026d58162002410565b915060208301356001600160401b03811115620026f157600080fd5b620026878582860162002691565b600080604083850312156200271357600080fd5b8235620027208162002410565b946020939093013593505050565b600080602083850312156200274257600080fd5b82356001600160401b03808211156200275a57600080fd5b818501915085601f8301126200276f57600080fd5b8135818111156200277f57600080fd5b8660208260051b85010111156200279557600080fd5b60209290920196919550909350505050565b803563ffffffff811681146200243357600080fd5b60006001600160401b03821115620027d857620027d862002555565b5060051b60200190565b600082601f830112620027f457600080fd5b813560206200280d6200280783620027bc565b62002597565b82815260059290921b840181019181810190868411156200282d57600080fd5b8286015b848110156200285c57803561ffff811681146200284e5760008081fd5b835291830191830162002831565b509695505050505050565b600082601f8301126200287957600080fd5b813560206200288c6200280783620027bc565b82815260059290921b84018101918181019086841115620028ac57600080fd5b8286015b848110156200285c5780356001600160801b0381168114620028d25760008081fd5b8352918301918301620028b0565b801515811462000aae57600080fd5b80356200243381620028e0565b6000606082840312156200290f57600080fd5b604051606081016001600160401b038111828210171562002934576200293462002555565b80604052508091508235815260208301356020820152604083013560408201525092915050565b600080600080600060e086880312156200297457600080fd5b85356001600160401b03808211156200298c57600080fd5b6200299a89838a0162002691565b96506020880135915080821115620029b157600080fd5b620029bf89838a0162002691565b95506040880135915080821115620029d657600080fd5b90870190610100828a031215620029ec57600080fd5b620029f66200256b565b62002a0183620027a7565b815260208301358281111562002a1657600080fd5b62002a248b828601620027e2565b60208301525060408301358281111562002a3d57600080fd5b62002a4b8b82860162002867565b60408301525062002a5f6060840162002426565b606082015262002a726080840162002426565b608082015262002a8560a0840162002426565b60a082015262002a9860c0840162002426565b60c082015262002aab60e08401620028ef565b60e082015280955050505062002ac58760608801620028fc565b915062002ad560c08701620027a7565b90509295509295909350565b6000806040838503121562002af557600080fd5b823562002b028162002410565b915060208301356200252981620028e0565b6000806040838503121562002b2857600080fd5b823562002b358162002410565b915062002b4560208401620027a7565b90509250929050565b600080600080600060a0868803121562002b6757600080fd5b853562002b748162002410565b9450602086013562002b868162002410565b9350604086013562002b988162002410565b9250606086013562002baa8162002410565b915062002ad560808701620027a7565b600181811c9082168062002bcf57607f821691505b60208210810362002bf057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111562000619576200061962002c0c565b634e487b7160e01b600052603160045260246000fd5b60006001820162002c635762002c6362002c0c565b5060010190565b6020808252602c908201526000805160206200421b83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206200421b83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121562002cf357600080fd5b5051919050565b9182526001600160a01b0316602082015260400190565b60006020828403121562002d2457600080fd5b81516200223081620028e0565b601f8211156200095657600081815260208120601f850160051c8101602086101562002d5a5750805b601f850160051c820191505b818110156200141d5782815560010162002d66565b81516001600160401b0381111562002d975762002d9762002555565b62002daf8162002da8845462002bba565b8462002d31565b602080601f83116001811462002de7576000841562002dce5750858301515b600019600386901b1c1916600185901b1785556200141d565b600085815260208120601f198616915b8281101562002e185788860151825594840194600190910190840162002df7565b508582101562002e375787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020815260006200223060208301846200247e565b600081518084526020808501945080840160005b8381101562002e975781516001600160801b03168752958201959082019060010162002e70565b509495945050505050565b805163ffffffff168252602080820151610100828501819052815190850181905260009261012086019281019184905b8082101562002ef857835161ffff16855293820193928201926001919091019062002ed2565b505050506040830151848203604086015262002f15828262002e5c565b915050606083015162002f2c606086018262002534565b50608083015162002f41608086018262002534565b5060a083015162002f5660a086018262002534565b5060c083015162002f6b60c086018262002534565b5060e083015162002f8060e086018215159052565b509392505050565b8051825260208082015190830152604090810151910152565b600060018060a01b03808816835260e0602084015262002fc560e084018862002ea2565b915062002fd6604084018762002f88565b63ffffffff851660a084015280841660c0840152509695505050505050565b6001600160a01b03831681526040602082018190526000906200301b908301846200247e565b949350505050565b6000602082840312156200303657600080fd5b8151620022308162002410565b6001600160a01b03929092168252602082015260400190565b600082516200307081846020870162002458565b9190910192915050565b60a0815260006200308f60a08301866200247e565b8281036020840152620030a3818662002ea2565b9150506200301b604083018462002f88565b600063ffffffff808316818103620030d157620030d162002c0c565b6001019392505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516200310f81601785016020880162002458565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516200314281602884016020880162002458565b01602801949350505050565b808202811582820484141762000619576200061962002c0c565b8082018082111562000619576200061962002c0c565b60008162003190576200319062002c0c565b50600019019056fe608060405234801561001057600080fd5b506040516104c93803806104c983398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610350806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100aa575b600080fd5b61006f61006a3660046102ea565b6100bd565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f610105565b61007e610119565b61006f6100b83660046102ea565b610128565b6100c56101a6565b6100ce81610205565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61010d6101a6565b610117600061029a565b565b6000546001600160a01b031690565b6101306101a6565b6001600160a01b03811661019a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6101a38161029a565b50565b336101af610119565b6001600160a01b0316146101175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610191565b6001600160a01b0381163b6102785760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b6064820152608401610191565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102fc57600080fd5b81356001600160a01b038116811461031357600080fd5b939250505056fea264697066735822122038970e7cf09dc887c70d5260fa612ed542a4b7fc825586d54bcad83fc1ebdd9164736f6c6343000813003360806040526040516106cd3803806106cd83398101604081905261002291610421565b61002e82826000610035565b505061054b565b61003e836100f6565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100f1576100ef836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e991906104e1565b8361026e565b505b505050565b6100ff8161029a565b61015e5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101c8816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c391906104e1565b61029a565b61022d5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610155565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029383836040518060600160405280602781526020016106a6602791396102a9565b9392505050565b6001600160a01b03163b151590565b6060600080856001600160a01b0316856040516102c691906104fc565b600060405180830381855af49150503d8060008114610301576040519150601f19603f3d011682016040523d82523d6000602084013e610306565b606091505b50909250905061031886838387610322565b9695505050505050565b6060831561038f5782516000036103885761033c8561029a565b6103885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610155565b5081610399565b61039983836103a1565b949350505050565b8151156103b15781518083602001fd5b8060405162461bcd60e51b81526004016101559190610518565b80516001600160a01b03811681146103e257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610418578181015183820152602001610400565b50506000910152565b6000806040838503121561043457600080fd5b61043d836103cb565b60208401519092506001600160401b038082111561045a57600080fd5b818501915085601f83011261046e57600080fd5b815181811115610480576104806103e7565b604051601f8201601f19908116603f011681019083821181831017156104a8576104a86103e7565b816040528281528860208487010111156104c157600080fd5b6104d28360208301602088016103fd565b80955050505050509250929050565b6000602082840312156104f357600080fd5b610293826103cb565b6000825161050e8184602087016103fd565b9190910192915050565b60208152600082518060208401526105378160408501602087016103fd565b601f01601f19169190910160400192915050565b61014c8061055a6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610029565b6100c2565b565b600061005c7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906100e6565b905090565b3660008037600080366000845af43d6000803e8080156100e1573d6000f35b3d6000fd5b6000602082840312156100f857600080fd5b81516001600160a01b038116811461010f57600080fd5b939250505056fea26469706673582212207b4f4f4bd905b812712d76801c617b8aa3f4c3f8d6d9e59a18563606189dd4e564736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656460806040526040516104ec3803806104ec833981016040819052610022916102e9565b61002e82826000610035565b5050610406565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c56027913961017e565b9392505050565b6100d6816101f7565b61013d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019b91906103b7565b600060405180830381855af49150503d80600081146101d6576040519150601f19603f3d011682016040523d82523d6000602084013e6101db565b606091505b5090925090506101ed86838387610206565b9695505050505050565b6001600160a01b03163b151590565b6060831561027357825160000361026c57610220856101f7565b61026c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610134565b508161027d565b61027d8383610285565b949350505050565b8151156102955781518083602001fd5b8060405162461bcd60e51b815260040161013491906103d3565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102e05781810151838201526020016102c8565b50506000910152565b600080604083850312156102fc57600080fd5b82516001600160a01b038116811461031357600080fd5b60208401519092506001600160401b038082111561033057600080fd5b818501915085601f83011261034457600080fd5b815181811115610356576103566102af565b604051601f8201601f19908116603f0116810190838211818310171561037e5761037e6102af565b8160405282815288602084870101111561039757600080fd5b6103a88360208301602088016102c5565b80955050505050509250929050565b600082516103c98184602087016102c5565b9190910192915050565b60208152600082518060208401526103f28160408501602087016102c5565b601f01601f19169190910160400192915050565b60b1806104146000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea2646970667358221220a4cda07e5b291f61d81b4ee016ef5ca6a806aa56384b08ff8d52828dbed4d68d64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656446756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209f95647c40bf4acf1b69342e5f985abea23390d2fb6c6e808d274cc4265b0b1a64736f6c63430008130033",
993
+ "linkReferences": {},
994
+ "deployedLinkReferences": {}
995
+ }