@gooddollar/goodcollective-contracts 1.3.1 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) 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/Recover.sol/Recover.dbg.json +4 -0
  36. package/artifacts/contracts/utils/Recover.sol/Recover.json +120 -0
  37. package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.dbg.json +4 -0
  38. package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.json +119 -0
  39. package/contracts/DirectPayments/DirectPaymentsFactory.sol +13 -1
  40. package/contracts/DirectPayments/DirectPaymentsPool.sol +22 -0
  41. package/contracts/UBI/UBIPool.sol +62 -18
  42. package/contracts/UBI/UBIPoolFactory.sol +13 -1
  43. package/contracts/utils/Recover.sol +16 -0
  44. package/package.json +3 -5
  45. package/releases/deployment.json +308 -134
  46. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +54 -0
  47. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary.ts +77 -0
  48. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.ts +77 -0
  49. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
  50. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +37 -0
  51. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IClaimable.ts +92 -0
  52. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IModule.ts +196 -0
  53. package/typechain-types/contracts/UBI/MultiClaimModule.sol/MultiClaimModule.ts +242 -0
  54. package/typechain-types/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
  55. package/typechain-types/contracts/UBI/UBIPool.ts +37 -0
  56. package/typechain-types/contracts/UBI/UBIPoolFactory.ts +54 -0
  57. package/typechain-types/contracts/utils/Recover.ts +263 -0
  58. package/typechain-types/contracts/utils/index.ts +1 -0
  59. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +33 -1
  60. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary__factory.ts +96 -0
  61. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary__factory.ts +96 -0
  62. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
  63. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary__factory.ts +1 -1
  64. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +24 -1
  65. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IClaimable__factory.ts +33 -0
  66. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IModule__factory.ts +84 -0
  67. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/MultiClaimModule__factory.ts +150 -0
  68. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
  69. package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +33 -1
  70. package/typechain-types/factories/contracts/UBI/UBIPool__factory.ts +24 -1
  71. package/typechain-types/factories/contracts/utils/Recover__factory.ts +172 -0
  72. package/typechain-types/factories/contracts/utils/index.ts +1 -0
  73. package/typechain-types/hardhat.d.ts +9 -0
  74. package/typechain-types/index.ts +2 -0
@@ -0,0 +1,1187 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ProvableNFT",
4
+ "sourceName": "contracts/DirectPayments/ProvableNFT.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "bytes32",
10
+ "name": "dataHash",
11
+ "type": "bytes32"
12
+ },
13
+ {
14
+ "internalType": "bytes32",
15
+ "name": "tokenId",
16
+ "type": "bytes32"
17
+ }
18
+ ],
19
+ "name": "BAD_DATAHASH",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "BAD_NFTTYPE",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "uint32",
31
+ "name": "",
32
+ "type": "uint32"
33
+ }
34
+ ],
35
+ "name": "NOT_MANAGER",
36
+ "type": "error"
37
+ },
38
+ {
39
+ "inputs": [],
40
+ "name": "NOT_MINTER",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "anonymous": false,
45
+ "inputs": [
46
+ {
47
+ "indexed": false,
48
+ "internalType": "address",
49
+ "name": "previousAdmin",
50
+ "type": "address"
51
+ },
52
+ {
53
+ "indexed": false,
54
+ "internalType": "address",
55
+ "name": "newAdmin",
56
+ "type": "address"
57
+ }
58
+ ],
59
+ "name": "AdminChanged",
60
+ "type": "event"
61
+ },
62
+ {
63
+ "anonymous": false,
64
+ "inputs": [
65
+ {
66
+ "indexed": true,
67
+ "internalType": "address",
68
+ "name": "owner",
69
+ "type": "address"
70
+ },
71
+ {
72
+ "indexed": true,
73
+ "internalType": "address",
74
+ "name": "approved",
75
+ "type": "address"
76
+ },
77
+ {
78
+ "indexed": true,
79
+ "internalType": "uint256",
80
+ "name": "tokenId",
81
+ "type": "uint256"
82
+ }
83
+ ],
84
+ "name": "Approval",
85
+ "type": "event"
86
+ },
87
+ {
88
+ "anonymous": false,
89
+ "inputs": [
90
+ {
91
+ "indexed": true,
92
+ "internalType": "address",
93
+ "name": "owner",
94
+ "type": "address"
95
+ },
96
+ {
97
+ "indexed": true,
98
+ "internalType": "address",
99
+ "name": "operator",
100
+ "type": "address"
101
+ },
102
+ {
103
+ "indexed": false,
104
+ "internalType": "bool",
105
+ "name": "approved",
106
+ "type": "bool"
107
+ }
108
+ ],
109
+ "name": "ApprovalForAll",
110
+ "type": "event"
111
+ },
112
+ {
113
+ "anonymous": false,
114
+ "inputs": [
115
+ {
116
+ "indexed": true,
117
+ "internalType": "address",
118
+ "name": "beacon",
119
+ "type": "address"
120
+ }
121
+ ],
122
+ "name": "BeaconUpgraded",
123
+ "type": "event"
124
+ },
125
+ {
126
+ "anonymous": false,
127
+ "inputs": [
128
+ {
129
+ "indexed": false,
130
+ "internalType": "uint8",
131
+ "name": "version",
132
+ "type": "uint8"
133
+ }
134
+ ],
135
+ "name": "Initialized",
136
+ "type": "event"
137
+ },
138
+ {
139
+ "anonymous": false,
140
+ "inputs": [
141
+ {
142
+ "indexed": false,
143
+ "internalType": "uint256",
144
+ "name": "tokenId",
145
+ "type": "uint256"
146
+ },
147
+ {
148
+ "indexed": false,
149
+ "internalType": "address",
150
+ "name": "to",
151
+ "type": "address"
152
+ },
153
+ {
154
+ "indexed": false,
155
+ "internalType": "bytes32",
156
+ "name": "nftDataHash",
157
+ "type": "bytes32"
158
+ }
159
+ ],
160
+ "name": "ProvableNftMinted",
161
+ "type": "event"
162
+ },
163
+ {
164
+ "anonymous": false,
165
+ "inputs": [
166
+ {
167
+ "indexed": true,
168
+ "internalType": "bytes32",
169
+ "name": "role",
170
+ "type": "bytes32"
171
+ },
172
+ {
173
+ "indexed": true,
174
+ "internalType": "bytes32",
175
+ "name": "previousAdminRole",
176
+ "type": "bytes32"
177
+ },
178
+ {
179
+ "indexed": true,
180
+ "internalType": "bytes32",
181
+ "name": "newAdminRole",
182
+ "type": "bytes32"
183
+ }
184
+ ],
185
+ "name": "RoleAdminChanged",
186
+ "type": "event"
187
+ },
188
+ {
189
+ "anonymous": false,
190
+ "inputs": [
191
+ {
192
+ "indexed": true,
193
+ "internalType": "bytes32",
194
+ "name": "role",
195
+ "type": "bytes32"
196
+ },
197
+ {
198
+ "indexed": true,
199
+ "internalType": "address",
200
+ "name": "account",
201
+ "type": "address"
202
+ },
203
+ {
204
+ "indexed": true,
205
+ "internalType": "address",
206
+ "name": "sender",
207
+ "type": "address"
208
+ }
209
+ ],
210
+ "name": "RoleGranted",
211
+ "type": "event"
212
+ },
213
+ {
214
+ "anonymous": false,
215
+ "inputs": [
216
+ {
217
+ "indexed": true,
218
+ "internalType": "bytes32",
219
+ "name": "role",
220
+ "type": "bytes32"
221
+ },
222
+ {
223
+ "indexed": true,
224
+ "internalType": "address",
225
+ "name": "account",
226
+ "type": "address"
227
+ },
228
+ {
229
+ "indexed": true,
230
+ "internalType": "address",
231
+ "name": "sender",
232
+ "type": "address"
233
+ }
234
+ ],
235
+ "name": "RoleRevoked",
236
+ "type": "event"
237
+ },
238
+ {
239
+ "anonymous": false,
240
+ "inputs": [
241
+ {
242
+ "indexed": true,
243
+ "internalType": "address",
244
+ "name": "from",
245
+ "type": "address"
246
+ },
247
+ {
248
+ "indexed": true,
249
+ "internalType": "address",
250
+ "name": "to",
251
+ "type": "address"
252
+ },
253
+ {
254
+ "indexed": true,
255
+ "internalType": "uint256",
256
+ "name": "tokenId",
257
+ "type": "uint256"
258
+ }
259
+ ],
260
+ "name": "Transfer",
261
+ "type": "event"
262
+ },
263
+ {
264
+ "anonymous": false,
265
+ "inputs": [
266
+ {
267
+ "indexed": true,
268
+ "internalType": "address",
269
+ "name": "implementation",
270
+ "type": "address"
271
+ }
272
+ ],
273
+ "name": "Upgraded",
274
+ "type": "event"
275
+ },
276
+ {
277
+ "inputs": [],
278
+ "name": "DEFAULT_ADMIN_ROLE",
279
+ "outputs": [
280
+ {
281
+ "internalType": "bytes32",
282
+ "name": "",
283
+ "type": "bytes32"
284
+ }
285
+ ],
286
+ "stateMutability": "view",
287
+ "type": "function"
288
+ },
289
+ {
290
+ "inputs": [],
291
+ "name": "MINTER_ROLE",
292
+ "outputs": [
293
+ {
294
+ "internalType": "bytes32",
295
+ "name": "",
296
+ "type": "bytes32"
297
+ }
298
+ ],
299
+ "stateMutability": "view",
300
+ "type": "function"
301
+ },
302
+ {
303
+ "inputs": [
304
+ {
305
+ "internalType": "address",
306
+ "name": "_manager",
307
+ "type": "address"
308
+ },
309
+ {
310
+ "internalType": "uint32",
311
+ "name": "_nftType",
312
+ "type": "uint32"
313
+ }
314
+ ],
315
+ "name": "addManager",
316
+ "outputs": [],
317
+ "stateMutability": "nonpayable",
318
+ "type": "function"
319
+ },
320
+ {
321
+ "inputs": [
322
+ {
323
+ "internalType": "address",
324
+ "name": "to",
325
+ "type": "address"
326
+ },
327
+ {
328
+ "internalType": "uint256",
329
+ "name": "tokenId",
330
+ "type": "uint256"
331
+ }
332
+ ],
333
+ "name": "approve",
334
+ "outputs": [],
335
+ "stateMutability": "nonpayable",
336
+ "type": "function"
337
+ },
338
+ {
339
+ "inputs": [
340
+ {
341
+ "internalType": "address",
342
+ "name": "owner",
343
+ "type": "address"
344
+ }
345
+ ],
346
+ "name": "balanceOf",
347
+ "outputs": [
348
+ {
349
+ "internalType": "uint256",
350
+ "name": "",
351
+ "type": "uint256"
352
+ }
353
+ ],
354
+ "stateMutability": "view",
355
+ "type": "function"
356
+ },
357
+ {
358
+ "inputs": [
359
+ {
360
+ "internalType": "uint256",
361
+ "name": "tokenId",
362
+ "type": "uint256"
363
+ }
364
+ ],
365
+ "name": "getApproved",
366
+ "outputs": [
367
+ {
368
+ "internalType": "address",
369
+ "name": "",
370
+ "type": "address"
371
+ }
372
+ ],
373
+ "stateMutability": "view",
374
+ "type": "function"
375
+ },
376
+ {
377
+ "inputs": [
378
+ {
379
+ "internalType": "uint32",
380
+ "name": "_nftType",
381
+ "type": "uint32"
382
+ }
383
+ ],
384
+ "name": "getManagerRole",
385
+ "outputs": [
386
+ {
387
+ "internalType": "bytes32",
388
+ "name": "roleHash",
389
+ "type": "bytes32"
390
+ }
391
+ ],
392
+ "stateMutability": "pure",
393
+ "type": "function"
394
+ },
395
+ {
396
+ "inputs": [
397
+ {
398
+ "internalType": "uint256",
399
+ "name": "_tokenId",
400
+ "type": "uint256"
401
+ }
402
+ ],
403
+ "name": "getNFTData",
404
+ "outputs": [
405
+ {
406
+ "components": [
407
+ {
408
+ "internalType": "uint32",
409
+ "name": "nftType",
410
+ "type": "uint32"
411
+ },
412
+ {
413
+ "internalType": "uint16",
414
+ "name": "version",
415
+ "type": "uint16"
416
+ },
417
+ {
418
+ "internalType": "string",
419
+ "name": "nftUri",
420
+ "type": "string"
421
+ },
422
+ {
423
+ "components": [
424
+ {
425
+ "internalType": "uint16",
426
+ "name": "subtype",
427
+ "type": "uint16"
428
+ },
429
+ {
430
+ "internalType": "uint32",
431
+ "name": "timestamp",
432
+ "type": "uint32"
433
+ },
434
+ {
435
+ "internalType": "uint256",
436
+ "name": "quantity",
437
+ "type": "uint256"
438
+ },
439
+ {
440
+ "internalType": "string",
441
+ "name": "eventUri",
442
+ "type": "string"
443
+ },
444
+ {
445
+ "internalType": "address[]",
446
+ "name": "contributers",
447
+ "type": "address[]"
448
+ },
449
+ {
450
+ "internalType": "uint128",
451
+ "name": "rewardOverride",
452
+ "type": "uint128"
453
+ }
454
+ ],
455
+ "internalType": "struct ProvableNFT.EventData[]",
456
+ "name": "events",
457
+ "type": "tuple[]"
458
+ }
459
+ ],
460
+ "internalType": "struct ProvableNFT.NFTData",
461
+ "name": "",
462
+ "type": "tuple"
463
+ }
464
+ ],
465
+ "stateMutability": "view",
466
+ "type": "function"
467
+ },
468
+ {
469
+ "inputs": [
470
+ {
471
+ "internalType": "uint256",
472
+ "name": "_tokenId",
473
+ "type": "uint256"
474
+ },
475
+ {
476
+ "internalType": "uint256",
477
+ "name": "_index",
478
+ "type": "uint256"
479
+ }
480
+ ],
481
+ "name": "getNFTEvent",
482
+ "outputs": [
483
+ {
484
+ "components": [
485
+ {
486
+ "internalType": "uint16",
487
+ "name": "subtype",
488
+ "type": "uint16"
489
+ },
490
+ {
491
+ "internalType": "uint32",
492
+ "name": "timestamp",
493
+ "type": "uint32"
494
+ },
495
+ {
496
+ "internalType": "uint256",
497
+ "name": "quantity",
498
+ "type": "uint256"
499
+ },
500
+ {
501
+ "internalType": "string",
502
+ "name": "eventUri",
503
+ "type": "string"
504
+ },
505
+ {
506
+ "internalType": "address[]",
507
+ "name": "contributers",
508
+ "type": "address[]"
509
+ },
510
+ {
511
+ "internalType": "uint128",
512
+ "name": "rewardOverride",
513
+ "type": "uint128"
514
+ }
515
+ ],
516
+ "internalType": "struct ProvableNFT.EventData",
517
+ "name": "",
518
+ "type": "tuple"
519
+ }
520
+ ],
521
+ "stateMutability": "view",
522
+ "type": "function"
523
+ },
524
+ {
525
+ "inputs": [
526
+ {
527
+ "internalType": "uint256",
528
+ "name": "_tokenId",
529
+ "type": "uint256"
530
+ }
531
+ ],
532
+ "name": "getNFTEvents",
533
+ "outputs": [
534
+ {
535
+ "components": [
536
+ {
537
+ "internalType": "uint16",
538
+ "name": "subtype",
539
+ "type": "uint16"
540
+ },
541
+ {
542
+ "internalType": "uint32",
543
+ "name": "timestamp",
544
+ "type": "uint32"
545
+ },
546
+ {
547
+ "internalType": "uint256",
548
+ "name": "quantity",
549
+ "type": "uint256"
550
+ },
551
+ {
552
+ "internalType": "string",
553
+ "name": "eventUri",
554
+ "type": "string"
555
+ },
556
+ {
557
+ "internalType": "address[]",
558
+ "name": "contributers",
559
+ "type": "address[]"
560
+ },
561
+ {
562
+ "internalType": "uint128",
563
+ "name": "rewardOverride",
564
+ "type": "uint128"
565
+ }
566
+ ],
567
+ "internalType": "struct ProvableNFT.EventData[]",
568
+ "name": "",
569
+ "type": "tuple[]"
570
+ }
571
+ ],
572
+ "stateMutability": "view",
573
+ "type": "function"
574
+ },
575
+ {
576
+ "inputs": [
577
+ {
578
+ "internalType": "bytes32",
579
+ "name": "role",
580
+ "type": "bytes32"
581
+ }
582
+ ],
583
+ "name": "getRoleAdmin",
584
+ "outputs": [
585
+ {
586
+ "internalType": "bytes32",
587
+ "name": "",
588
+ "type": "bytes32"
589
+ }
590
+ ],
591
+ "stateMutability": "view",
592
+ "type": "function"
593
+ },
594
+ {
595
+ "inputs": [
596
+ {
597
+ "internalType": "bytes32",
598
+ "name": "role",
599
+ "type": "bytes32"
600
+ },
601
+ {
602
+ "internalType": "address",
603
+ "name": "account",
604
+ "type": "address"
605
+ }
606
+ ],
607
+ "name": "grantRole",
608
+ "outputs": [],
609
+ "stateMutability": "nonpayable",
610
+ "type": "function"
611
+ },
612
+ {
613
+ "inputs": [
614
+ {
615
+ "internalType": "bytes32",
616
+ "name": "role",
617
+ "type": "bytes32"
618
+ },
619
+ {
620
+ "internalType": "address",
621
+ "name": "account",
622
+ "type": "address"
623
+ }
624
+ ],
625
+ "name": "hasRole",
626
+ "outputs": [
627
+ {
628
+ "internalType": "bool",
629
+ "name": "",
630
+ "type": "bool"
631
+ }
632
+ ],
633
+ "stateMutability": "view",
634
+ "type": "function"
635
+ },
636
+ {
637
+ "inputs": [
638
+ {
639
+ "internalType": "string",
640
+ "name": "_name",
641
+ "type": "string"
642
+ },
643
+ {
644
+ "internalType": "string",
645
+ "name": "_symbol",
646
+ "type": "string"
647
+ }
648
+ ],
649
+ "name": "initialize",
650
+ "outputs": [],
651
+ "stateMutability": "nonpayable",
652
+ "type": "function"
653
+ },
654
+ {
655
+ "inputs": [
656
+ {
657
+ "internalType": "address",
658
+ "name": "owner",
659
+ "type": "address"
660
+ },
661
+ {
662
+ "internalType": "address",
663
+ "name": "operator",
664
+ "type": "address"
665
+ }
666
+ ],
667
+ "name": "isApprovedForAll",
668
+ "outputs": [
669
+ {
670
+ "internalType": "bool",
671
+ "name": "",
672
+ "type": "bool"
673
+ }
674
+ ],
675
+ "stateMutability": "view",
676
+ "type": "function"
677
+ },
678
+ {
679
+ "inputs": [
680
+ {
681
+ "internalType": "address",
682
+ "name": "_to",
683
+ "type": "address"
684
+ },
685
+ {
686
+ "internalType": "string",
687
+ "name": "_uri",
688
+ "type": "string"
689
+ },
690
+ {
691
+ "internalType": "bytes32",
692
+ "name": "_nftDataHash",
693
+ "type": "bytes32"
694
+ }
695
+ ],
696
+ "name": "mint",
697
+ "outputs": [
698
+ {
699
+ "internalType": "uint256",
700
+ "name": "tokenId",
701
+ "type": "uint256"
702
+ }
703
+ ],
704
+ "stateMutability": "nonpayable",
705
+ "type": "function"
706
+ },
707
+ {
708
+ "inputs": [
709
+ {
710
+ "internalType": "address",
711
+ "name": "_to",
712
+ "type": "address"
713
+ },
714
+ {
715
+ "components": [
716
+ {
717
+ "internalType": "uint32",
718
+ "name": "nftType",
719
+ "type": "uint32"
720
+ },
721
+ {
722
+ "internalType": "uint16",
723
+ "name": "version",
724
+ "type": "uint16"
725
+ },
726
+ {
727
+ "internalType": "string",
728
+ "name": "nftUri",
729
+ "type": "string"
730
+ },
731
+ {
732
+ "components": [
733
+ {
734
+ "internalType": "uint16",
735
+ "name": "subtype",
736
+ "type": "uint16"
737
+ },
738
+ {
739
+ "internalType": "uint32",
740
+ "name": "timestamp",
741
+ "type": "uint32"
742
+ },
743
+ {
744
+ "internalType": "uint256",
745
+ "name": "quantity",
746
+ "type": "uint256"
747
+ },
748
+ {
749
+ "internalType": "string",
750
+ "name": "eventUri",
751
+ "type": "string"
752
+ },
753
+ {
754
+ "internalType": "address[]",
755
+ "name": "contributers",
756
+ "type": "address[]"
757
+ },
758
+ {
759
+ "internalType": "uint128",
760
+ "name": "rewardOverride",
761
+ "type": "uint128"
762
+ }
763
+ ],
764
+ "internalType": "struct ProvableNFT.EventData[]",
765
+ "name": "events",
766
+ "type": "tuple[]"
767
+ }
768
+ ],
769
+ "internalType": "struct ProvableNFT.NFTData",
770
+ "name": "_nftData",
771
+ "type": "tuple"
772
+ },
773
+ {
774
+ "internalType": "bool",
775
+ "name": "_withStore",
776
+ "type": "bool"
777
+ },
778
+ {
779
+ "internalType": "bytes",
780
+ "name": "_callData",
781
+ "type": "bytes"
782
+ }
783
+ ],
784
+ "name": "mintPermissioned",
785
+ "outputs": [
786
+ {
787
+ "internalType": "uint256",
788
+ "name": "tokenId",
789
+ "type": "uint256"
790
+ }
791
+ ],
792
+ "stateMutability": "nonpayable",
793
+ "type": "function"
794
+ },
795
+ {
796
+ "inputs": [],
797
+ "name": "name",
798
+ "outputs": [
799
+ {
800
+ "internalType": "string",
801
+ "name": "",
802
+ "type": "string"
803
+ }
804
+ ],
805
+ "stateMutability": "view",
806
+ "type": "function"
807
+ },
808
+ {
809
+ "inputs": [
810
+ {
811
+ "internalType": "uint256",
812
+ "name": "tokenId",
813
+ "type": "uint256"
814
+ }
815
+ ],
816
+ "name": "ownerOf",
817
+ "outputs": [
818
+ {
819
+ "internalType": "address",
820
+ "name": "",
821
+ "type": "address"
822
+ }
823
+ ],
824
+ "stateMutability": "view",
825
+ "type": "function"
826
+ },
827
+ {
828
+ "inputs": [
829
+ {
830
+ "internalType": "uint256",
831
+ "name": "_tokenId",
832
+ "type": "uint256"
833
+ },
834
+ {
835
+ "components": [
836
+ {
837
+ "internalType": "uint32",
838
+ "name": "nftType",
839
+ "type": "uint32"
840
+ },
841
+ {
842
+ "internalType": "uint16",
843
+ "name": "version",
844
+ "type": "uint16"
845
+ },
846
+ {
847
+ "internalType": "string",
848
+ "name": "nftUri",
849
+ "type": "string"
850
+ },
851
+ {
852
+ "components": [
853
+ {
854
+ "internalType": "uint16",
855
+ "name": "subtype",
856
+ "type": "uint16"
857
+ },
858
+ {
859
+ "internalType": "uint32",
860
+ "name": "timestamp",
861
+ "type": "uint32"
862
+ },
863
+ {
864
+ "internalType": "uint256",
865
+ "name": "quantity",
866
+ "type": "uint256"
867
+ },
868
+ {
869
+ "internalType": "string",
870
+ "name": "eventUri",
871
+ "type": "string"
872
+ },
873
+ {
874
+ "internalType": "address[]",
875
+ "name": "contributers",
876
+ "type": "address[]"
877
+ },
878
+ {
879
+ "internalType": "uint128",
880
+ "name": "rewardOverride",
881
+ "type": "uint128"
882
+ }
883
+ ],
884
+ "internalType": "struct ProvableNFT.EventData[]",
885
+ "name": "events",
886
+ "type": "tuple[]"
887
+ }
888
+ ],
889
+ "internalType": "struct ProvableNFT.NFTData",
890
+ "name": "_nftData",
891
+ "type": "tuple"
892
+ }
893
+ ],
894
+ "name": "proveNFTData",
895
+ "outputs": [
896
+ {
897
+ "components": [
898
+ {
899
+ "internalType": "uint32",
900
+ "name": "nftType",
901
+ "type": "uint32"
902
+ },
903
+ {
904
+ "internalType": "uint16",
905
+ "name": "version",
906
+ "type": "uint16"
907
+ },
908
+ {
909
+ "internalType": "string",
910
+ "name": "nftUri",
911
+ "type": "string"
912
+ },
913
+ {
914
+ "components": [
915
+ {
916
+ "internalType": "uint16",
917
+ "name": "subtype",
918
+ "type": "uint16"
919
+ },
920
+ {
921
+ "internalType": "uint32",
922
+ "name": "timestamp",
923
+ "type": "uint32"
924
+ },
925
+ {
926
+ "internalType": "uint256",
927
+ "name": "quantity",
928
+ "type": "uint256"
929
+ },
930
+ {
931
+ "internalType": "string",
932
+ "name": "eventUri",
933
+ "type": "string"
934
+ },
935
+ {
936
+ "internalType": "address[]",
937
+ "name": "contributers",
938
+ "type": "address[]"
939
+ },
940
+ {
941
+ "internalType": "uint128",
942
+ "name": "rewardOverride",
943
+ "type": "uint128"
944
+ }
945
+ ],
946
+ "internalType": "struct ProvableNFT.EventData[]",
947
+ "name": "events",
948
+ "type": "tuple[]"
949
+ }
950
+ ],
951
+ "internalType": "struct ProvableNFT.NFTData",
952
+ "name": "data",
953
+ "type": "tuple"
954
+ }
955
+ ],
956
+ "stateMutability": "view",
957
+ "type": "function"
958
+ },
959
+ {
960
+ "inputs": [],
961
+ "name": "proxiableUUID",
962
+ "outputs": [
963
+ {
964
+ "internalType": "bytes32",
965
+ "name": "",
966
+ "type": "bytes32"
967
+ }
968
+ ],
969
+ "stateMutability": "view",
970
+ "type": "function"
971
+ },
972
+ {
973
+ "inputs": [
974
+ {
975
+ "internalType": "bytes32",
976
+ "name": "role",
977
+ "type": "bytes32"
978
+ },
979
+ {
980
+ "internalType": "address",
981
+ "name": "account",
982
+ "type": "address"
983
+ }
984
+ ],
985
+ "name": "renounceRole",
986
+ "outputs": [],
987
+ "stateMutability": "nonpayable",
988
+ "type": "function"
989
+ },
990
+ {
991
+ "inputs": [
992
+ {
993
+ "internalType": "bytes32",
994
+ "name": "role",
995
+ "type": "bytes32"
996
+ },
997
+ {
998
+ "internalType": "address",
999
+ "name": "account",
1000
+ "type": "address"
1001
+ }
1002
+ ],
1003
+ "name": "revokeRole",
1004
+ "outputs": [],
1005
+ "stateMutability": "nonpayable",
1006
+ "type": "function"
1007
+ },
1008
+ {
1009
+ "inputs": [
1010
+ {
1011
+ "internalType": "address",
1012
+ "name": "from",
1013
+ "type": "address"
1014
+ },
1015
+ {
1016
+ "internalType": "address",
1017
+ "name": "to",
1018
+ "type": "address"
1019
+ },
1020
+ {
1021
+ "internalType": "uint256",
1022
+ "name": "tokenId",
1023
+ "type": "uint256"
1024
+ }
1025
+ ],
1026
+ "name": "safeTransferFrom",
1027
+ "outputs": [],
1028
+ "stateMutability": "nonpayable",
1029
+ "type": "function"
1030
+ },
1031
+ {
1032
+ "inputs": [
1033
+ {
1034
+ "internalType": "address",
1035
+ "name": "from",
1036
+ "type": "address"
1037
+ },
1038
+ {
1039
+ "internalType": "address",
1040
+ "name": "to",
1041
+ "type": "address"
1042
+ },
1043
+ {
1044
+ "internalType": "uint256",
1045
+ "name": "tokenId",
1046
+ "type": "uint256"
1047
+ },
1048
+ {
1049
+ "internalType": "bytes",
1050
+ "name": "data",
1051
+ "type": "bytes"
1052
+ }
1053
+ ],
1054
+ "name": "safeTransferFrom",
1055
+ "outputs": [],
1056
+ "stateMutability": "nonpayable",
1057
+ "type": "function"
1058
+ },
1059
+ {
1060
+ "inputs": [
1061
+ {
1062
+ "internalType": "address",
1063
+ "name": "operator",
1064
+ "type": "address"
1065
+ },
1066
+ {
1067
+ "internalType": "bool",
1068
+ "name": "approved",
1069
+ "type": "bool"
1070
+ }
1071
+ ],
1072
+ "name": "setApprovalForAll",
1073
+ "outputs": [],
1074
+ "stateMutability": "nonpayable",
1075
+ "type": "function"
1076
+ },
1077
+ {
1078
+ "inputs": [
1079
+ {
1080
+ "internalType": "bytes4",
1081
+ "name": "interfaceId",
1082
+ "type": "bytes4"
1083
+ }
1084
+ ],
1085
+ "name": "supportsInterface",
1086
+ "outputs": [
1087
+ {
1088
+ "internalType": "bool",
1089
+ "name": "",
1090
+ "type": "bool"
1091
+ }
1092
+ ],
1093
+ "stateMutability": "view",
1094
+ "type": "function"
1095
+ },
1096
+ {
1097
+ "inputs": [],
1098
+ "name": "symbol",
1099
+ "outputs": [
1100
+ {
1101
+ "internalType": "string",
1102
+ "name": "",
1103
+ "type": "string"
1104
+ }
1105
+ ],
1106
+ "stateMutability": "view",
1107
+ "type": "function"
1108
+ },
1109
+ {
1110
+ "inputs": [
1111
+ {
1112
+ "internalType": "uint256",
1113
+ "name": "tokenId",
1114
+ "type": "uint256"
1115
+ }
1116
+ ],
1117
+ "name": "tokenURI",
1118
+ "outputs": [
1119
+ {
1120
+ "internalType": "string",
1121
+ "name": "",
1122
+ "type": "string"
1123
+ }
1124
+ ],
1125
+ "stateMutability": "view",
1126
+ "type": "function"
1127
+ },
1128
+ {
1129
+ "inputs": [
1130
+ {
1131
+ "internalType": "address",
1132
+ "name": "from",
1133
+ "type": "address"
1134
+ },
1135
+ {
1136
+ "internalType": "address",
1137
+ "name": "to",
1138
+ "type": "address"
1139
+ },
1140
+ {
1141
+ "internalType": "uint256",
1142
+ "name": "tokenId",
1143
+ "type": "uint256"
1144
+ }
1145
+ ],
1146
+ "name": "transferFrom",
1147
+ "outputs": [],
1148
+ "stateMutability": "nonpayable",
1149
+ "type": "function"
1150
+ },
1151
+ {
1152
+ "inputs": [
1153
+ {
1154
+ "internalType": "address",
1155
+ "name": "newImplementation",
1156
+ "type": "address"
1157
+ }
1158
+ ],
1159
+ "name": "upgradeTo",
1160
+ "outputs": [],
1161
+ "stateMutability": "nonpayable",
1162
+ "type": "function"
1163
+ },
1164
+ {
1165
+ "inputs": [
1166
+ {
1167
+ "internalType": "address",
1168
+ "name": "newImplementation",
1169
+ "type": "address"
1170
+ },
1171
+ {
1172
+ "internalType": "bytes",
1173
+ "name": "data",
1174
+ "type": "bytes"
1175
+ }
1176
+ ],
1177
+ "name": "upgradeToAndCall",
1178
+ "outputs": [],
1179
+ "stateMutability": "payable",
1180
+ "type": "function"
1181
+ }
1182
+ ],
1183
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161358661004c60003960008181610b9f01528181610bdf01528181610fc501528181611005015261107d01526135866000f3fe6080604052600436106101735760003560e01c806301ffc9a71461017857806306fdde03146101ad578063081812fc146101cf578063095ea7b3146102075780630ad4c4f41461022957806323b872dd14610256578063248a9ca31461027657806324db9fa8146102a45780632f2ff15d146102c457806336568abe146102e45780633659cfe61461030457806342842e0e1461032457806343543a42146103445780634cd88b76146103645780634e93f47b146103845780634f1ef286146103a457806352d1902d146103b75780636352211e146103cc5780636cae28c5146103ec57806370a082311461041957806391d148541461043957806395d89b411461045957806396635c921461046e578063a217fddf1461049b578063a22cb465146104b0578063b88d4fde146104d0578063c87b56dd146104f0578063d0856c6d14610510578063d34047b614610530578063d539139314610550578063d547741f1461058e578063e985e9c5146105ae575b600080fd5b34801561018457600080fd5b50610198610193366004612647565b6105ce565b60405190151581526020015b60405180910390f35b3480156101b957600080fd5b506101c26105df565b6040516101a491906126b4565b3480156101db57600080fd5b506101ef6101ea3660046126c7565b610671565b6040516001600160a01b0390911681526020016101a4565b34801561021357600080fd5b506102276102223660046126fc565b610698565b005b34801561023557600080fd5b506102496102443660046126c7565b6107b2565b6040516101a49190612829565b34801561026257600080fd5b50610227610271366004612880565b610a28565b34801561028257600080fd5b506102966102913660046126c7565b610a59565b6040519081526020016101a4565b3480156102b057600080fd5b506102496102bf366004612c27565b610a6e565b3480156102d057600080fd5b506102276102df366004612c6d565b610afb565b3480156102f057600080fd5b506102276102ff366004612c6d565b610b17565b34801561031057600080fd5b5061022761031f366004612c99565b610b95565b34801561033057600080fd5b5061022761033f366004612880565b610c5d565b34801561035057600080fd5b5061029661035f366004612cc4565b610c78565b34801561037057600080fd5b5061022761037f366004612d48565b610e4a565b34801561039057600080fd5b5061029661039f366004612da1565b610f70565b6102276103b2366004612dbc565b610fbb565b3480156103c357600080fd5b50610296611070565b3480156103d857600080fd5b506101ef6103e73660046126c7565b61111e565b3480156103f857600080fd5b5061040c610407366004612dff565b611152565b6040516101a49190612e21565b34801561042557600080fd5b50610296610434366004612c99565b611302565b34801561044557600080fd5b50610198610454366004612c6d565b611388565b34801561046557600080fd5b506101c26113b3565b34801561047a57600080fd5b5061048e6104893660046126c7565b6113c2565b6040516101a49190612e34565b3480156104a757600080fd5b50610296600081565b3480156104bc57600080fd5b506102276104cb366004612e47565b611570565b3480156104dc57600080fd5b506102276104eb366004612e71565b61157b565b3480156104fc57600080fd5b506101c261050b3660046126c7565b6115b3565b34801561051c57600080fd5b5061022761052b366004612ecc565b6116c0565b34801561053c57600080fd5b5061029661054b366004612ef6565b6116d2565b34801561055c57600080fd5b506102966040516526a4a72a22a960d11b60208201526026016040516020818303038152906040528051906020012081565b34801561059a57600080fd5b506102276105a9366004612c6d565b61170b565b3480156105ba57600080fd5b506101986105c9366004612f4c565b611727565b60006105d982611755565b92915050565b6060606580546105ee90612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461061a90612f76565b80156106675780601f1061063c57610100808354040283529160200191610667565b820191906000526020600020905b81548152906001019060200180831161064a57829003601f168201915b5050505050905090565b600061067c8261177a565b506000908152606960205260409020546001600160a01b031690565b60006106a38261111e565b9050806001600160a01b0316836001600160a01b0316036107155760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061073157506107318133611727565b6107a35760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161070c565b6107ad838361179f565b505050565b6107ba612591565b600082815261012d60209081526040918290208251608081018452815463ffffffff81168252600160201b900461ffff1692810192909252600181018054929391929184019161080990612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461083590612f76565b80156108825780601f1061085757610100808354040283529160200191610882565b820191906000526020600020905b81548152906001019060200180831161086557829003601f168201915b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610a1a5760008481526020908190206040805160c08101825260058602909201805461ffff8116845262010000900463ffffffff169383019390935260018301549082015260028201805491929160608401919061091190612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461093d90612f76565b801561098a5780601f1061095f5761010080835404028352916020019161098a565b820191906000526020600020905b81548152906001019060200180831161096d57829003601f168201915b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156109ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109ce575b5050509183525050600491909101546001600160801b031660209182015290825260019290920191016108b0565b505050915250909392505050565b610a32338261180d565b610a4e5760405162461bcd60e51b815260040161070c90612faa565b6107ad83838361186c565b60009081526097602052604090206001015490565b610a76612591565b610a7f8361177a565b6040518390610a92908490602001612829565b6040516020818303038152906040528051906020012014610af55781604051602001610abe9190612829565b60408051808303601f1901815290829052805160209091012063b2c999af60e01b825260048201526024810184905260440161070c565b50919050565b610b0482610a59565b610b0d816119be565b6107ad83836119c8565b6001600160a01b0381163314610b875760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161070c565b610b918282611a4e565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610bdd5760405162461bcd60e51b815260040161070c90612ff7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c0f611ab5565b6001600160a01b031614610c355760405162461bcd60e51b815260040161070c90613031565b610c3e81611ad1565b60408051600080825260208201909252610c5a91839190611adb565b50565b6107ad8383836040518060200160405280600081525061157b565b6000610c878460000151611c46565b835163ffffffff16600003610caf57604051630649917760e11b815260040160405180910390fd5b600084604051602001610cc29190612829565b6040516020818303038152906040528051906020012090508060001c91508315610e2f57600082815261012d602052604090819020908601516001820190610d0a90826130b9565b5085518154602088015161ffff16600160201b0265ffffffffffff1990911663ffffffff9092169190911717815560005b866060015151811015610e2c578160020187606001518281518110610d6257610d62613178565b602090810291909101810151825460018181018555600094855293839020825160059092020180549383015163ffffffff16620100000265ffffffffffff1990941661ffff9092169190911792909217825560408101519282019290925560608201516002820190610dd490826130b9565b5060808201518051610df09160038401916020909101906125b7565b5060a09190910151600490910180546001600160801b0319166001600160801b0390921691909117905580610e24816131a4565b915050610d3b565b50505b610e40868660400151838887611ca4565b5050949350505050565b600054610100900460ff1615808015610e6a5750600054600160ff909116105b80610e8b5750610e7930611d20565b158015610e8b575060005460ff166001145b610eee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161070c565b6000805460ff191660011790558015610f11576000805461ff0019166101001790555b610f1b8383611d2f565b610f26600033611d60565b80156107ad576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b604051674d414e414745525f60c01b60208201526001600160e01b031960e083901b166028820152600090602c01604051602081830303815290604052805190602001209050919050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110035760405162461bcd60e51b815260040161070c90612ff7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611035611ab5565b6001600160a01b03161461105b5760405162461bcd60e51b815260040161070c90613031565b61106482611ad1565b610b9182826001611adb565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461110b5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161070c565b506000805160206134ea83398151915290565b60008061112a83611d6a565b90506001600160a01b0381166105d95760405162461bcd60e51b815260040161070c906131bd565b6040805160c0810182526000808252602082018190529181018290526060808201819052608082015260a0810191909152600083815261012d602052604090206002018054839081106111a7576111a7613178565b60009182526020918290206040805160c0810182526005909302909101805461ffff8116845263ffffffff62010000909104169383019390935260018301549082015260028201805491929160608401919061120290612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461122e90612f76565b801561127b5780601f106112505761010080835404028352916020019161127b565b820191906000526020600020905b81548152906001019060200180831161125e57829003601f168201915b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156112dd57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116112bf575b5050509183525050600491909101546001600160801b03166020909101529392505050565b60006001600160a01b03821661136c5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161070c565b506001600160a01b031660009081526068602052604090205490565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060606680546105ee90612f76565b606061012d6000838152602001908152602001600020600201805480602002602001604051908101604052809291908181526020016000905b828210156115655760008481526020908190206040805160c08101825260058602909201805461ffff8116845262010000900463ffffffff169383019390935260018301549082015260028201805491929160608401919061145c90612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461148890612f76565b80156114d55780601f106114aa576101008083540402835291602001916114d5565b820191906000526020600020905b8154815290600101906020018083116114b857829003601f168201915b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561153757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611519575b5050509183525050600491909101546001600160801b031660209182015290825260019290920191016113fb565b505050509050919050565b610b91338383611d85565b611585338361180d565b6115a15760405162461bcd60e51b815260040161070c90612faa565b6115ad84848484611e4f565b50505050565b60606115be8261177a565b60006115d560408051602081019091526000815290565b9050600081511161168057600083815261012d6020526040902060010180546115fd90612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461162990612f76565b80156116765780601f1061164b57610100808354040283529160200191611676565b820191906000526020600020905b81548152906001019060200180831161165957829003601f168201915b50505050506116b9565b8061012d60008581526020019081526020016000206001016040516020016116a99291906131ef565b6040516020818303038152906040525b9392505050565b610b916116cc82610f70565b83610afb565b60006116de6000611c46565b6116e6612591565b6117028585858460405180602001604052806000815250611ca4565b95945050505050565b61171482610a59565b61171d816119be565b6107ad8383611a4e565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216637965db0b60e01b14806105d957506105d982611e82565b61178381611ed2565b610c5a5760405162461bcd60e51b815260040161070c906131bd565b600081815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906117d48261111e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806118198361111e565b9050806001600160a01b0316846001600160a01b0316148061184057506118408185611727565b806118645750836001600160a01b031661185984610671565b6001600160a01b0316145b949350505050565b826001600160a01b031661187f8261111e565b6001600160a01b0316146118a55760405162461bcd60e51b815260040161070c9061327c565b6001600160a01b0382166119075760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161070c565b826001600160a01b031661191a8261111e565b6001600160a01b0316146119405760405162461bcd60e51b815260040161070c9061327c565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652606885528386208054600019019055908716808652838620805460010190558686526067909452828520805490921684179091559051849360008051602061353183398151915291a4505050565b610c5a8133611eef565b6119d28282611388565b610b915760008281526097602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611a0a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611a588282611388565b15610b915760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805160206134ea833981519152546001600160a01b031690565b610c5a6000611c46565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611b0e576107ad83611f48565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611b68575060408051601f3d908101601f19168201909252611b65918101906132c1565b60015b611bcb5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161070c565b6000805160206134ea8339815191528114611c3a5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161070c565b506107ad838383611fe2565b60008163ffffffff16118015611c695750611c69611c6382610f70565b33611388565b80611c7a5750611c7a600033611388565b1515600003610c5a57604051632aefbcbd60e21b815263ffffffff8216600482015260240161070c565b600083815261012d602052604090208390600101611cc286826130b9565b50611cce868284612007565b604080518281526001600160a01b03881660208201529081018590527f90b734749855ec2532a3737a9ac4559e0b64d34d298435c945a0afe2be3544ea9060600160405180910390a195945050505050565b6001600160a01b03163b151590565b600054610100900460ff16611d565760405162461bcd60e51b815260040161070c906132da565b610b91828261203a565b610b9182826119c8565b6000908152606760205260409020546001600160a01b031690565b816001600160a01b0316836001600160a01b031603611de25760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b604482015260640161070c565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611e5a84848461186c565b611e668484848461207a565b6115ad5760405162461bcd60e51b815260040161070c90613325565b60006001600160e01b031982166380ac58cd60e01b1480611eb357506001600160e01b03198216635b5e139f60e01b145b806105d957506301ffc9a760e01b6001600160e01b03198316146105d9565b600080611ede83611d6a565b6001600160a01b0316141592915050565b611ef98282611388565b610b9157611f0681612182565b611f11836020612194565b604051602001611f22929190613377565b60408051601f198184030181529082905262461bcd60e51b825261070c916004016126b4565b611f5181611d20565b611fb35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161070c565b6000805160206134ea83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611feb8361232f565b600082511180611ff85750805b156107ad576115ad838361236f565b6120118383612458565b61201e600084848461207a565b6107ad5760405162461bcd60e51b815260040161070c90613325565b600054610100900460ff166120615760405162461bcd60e51b815260040161070c906132da565b606561206d83826130b9565b5060666107ad82826130b9565b600061208e846001600160a01b0316611d20565b1561217757604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906120c59033908990889088906004016133e6565b6020604051808303816000875af1925050508015612100575060408051601f3d908101601f191682019092526120fd91810190613419565b60015b61215d573d80801561212e576040519150601f19603f3d011682016040523d82523d6000602084013e612133565b606091505b5080516000036121555760405162461bcd60e51b815260040161070c90613325565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611864565b506001949350505050565b60606105d96001600160a01b03831660145b606060006121a3836002613436565b6121ae90600261344d565b6001600160401b038111156121c5576121c56128bc565b6040519080825280601f01601f1916602001820160405280156121ef576020820181803683370190505b509050600360fc1b8160008151811061220a5761220a613178565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061223957612239613178565b60200101906001600160f81b031916908160001a905350600061225d846002613436565b61226890600161344d565b90505b60018111156122e0576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061229c5761229c613178565b1a60f81b8282815181106122b2576122b2613178565b60200101906001600160f81b031916908160001a90535060049490941c936122d981613460565b905061226b565b5083156116b95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161070c565b61233881611f48565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061237a83611d20565b6123d55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161070c565b600080846001600160a01b0316846040516123f09190613477565b600060405180830381855af49150503d806000811461242b576040519150601f19603f3d011682016040523d82523d6000602084013e612430565b606091505b5091509150611702828260405180606001604052806027815260200161350a60279139612553565b6001600160a01b0382166124ae5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161070c565b6124b781611ed2565b156124d45760405162461bcd60e51b815260040161070c90613493565b6124dd81611ed2565b156124fa5760405162461bcd60e51b815260040161070c90613493565b6001600160a01b038216600081815260686020908152604080832080546001019055848352606790915280822080546001600160a01b031916841790555183929190600080516020613531833981519152908290a45050565b606083156125625750816116b9565b6116b983838151156125775781518083602001fd5b8060405162461bcd60e51b815260040161070c91906126b4565b604080516080810182526000808252602082015260609181018290528181019190915290565b82805482825590600052602060002090810192821561260c579160200282015b8281111561260c57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906125d7565b5061261892915061261c565b5090565b5b80821115612618576000815560010161261d565b6001600160e01b031981168114610c5a57600080fd5b60006020828403121561265957600080fd5b81356116b981612631565b60005b8381101561267f578181015183820152602001612667565b50506000910152565b600081518084526126a0816020860160208601612664565b601f01601f19169290920160200192915050565b6020815260006116b96020830184612688565b6000602082840312156126d957600080fd5b5035919050565b80356001600160a01b03811681146126f757600080fd5b919050565b6000806040838503121561270f57600080fd5b612718836126e0565b946020939093013593505050565b61ffff81511682526000602063ffffffff81840151168185015260408301516040850152606083015160c0606086015261276360c0860182612688565b60808581015187830391880191909152805180835290840192506000918401905b808310156127ad5783516001600160a01b03168252928401926001929092019190840190612784565b5060a086015193506127ca60a08801856001600160801b03169052565b9695505050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561281c57828403895261280a848351612726565b988501989350908401906001016127f2565b5091979650505050505050565b6020815263ffffffff825116602082015261ffff6020830151166040820152600060408301516080606084015261286360a0840182612688565b90506060840151601f1984830301608085015261170282826127d4565b60008060006060848603121561289557600080fd5b61289e846126e0565b92506128ac602085016126e0565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156128f4576128f46128bc565b60405290565b60405160c081016001600160401b03811182821017156128f4576128f46128bc565b604051601f8201601f191681016001600160401b0381118282101715612944576129446128bc565b604052919050565b803563ffffffff811681146126f757600080fd5b803561ffff811681146126f757600080fd5b600082601f83011261298357600080fd5b81356001600160401b0381111561299c5761299c6128bc565b6129af601f8201601f191660200161291c565b8181528460208386010111156129c457600080fd5b816020850160208301376000918101602001919091529392505050565b60006001600160401b038211156129fa576129fa6128bc565b5060051b60200190565b600082601f830112612a1557600080fd5b81356020612a2a612a25836129e1565b61291c565b82815260059290921b84018101918181019086841115612a4957600080fd5b8286015b84811015612a6b57612a5e816126e0565b8352918301918301612a4d565b509695505050505050565b80356001600160801b03811681146126f757600080fd5b600060808284031215612a9f57600080fd5b612aa76128d2565b9050612ab28261294c565b81526020612ac1818401612960565b8282015260408301356001600160401b0380821115612adf57600080fd5b612aeb86838701612972565b60408501526060850135915080821115612b0457600080fd5b818501915085601f830112612b1857600080fd5b8135612b26612a25826129e1565b81815260059190911b83018401908481019088831115612b4557600080fd5b8585015b83811015612c1557803585811115612b615760008081fd5b860160c0818c03601f1901811315612b795760008081fd5b612b816128fa565b612b8c8a8401612960565b8152612b9a6040840161294c565b8a82015260608301356040820152608083013588811115612bbb5760008081fd5b612bc98e8c83870101612972565b60608301525060a08084013589811115612be35760008081fd5b612bf18f8d83880101612a04565b608084015250612c02838501612a76565b9082015285525050918601918601612b49565b50606087015250939695505050505050565b60008060408385031215612c3a57600080fd5b8235915060208301356001600160401b03811115612c5757600080fd5b612c6385828601612a8d565b9150509250929050565b60008060408385031215612c8057600080fd5b82359150612c90602084016126e0565b90509250929050565b600060208284031215612cab57600080fd5b6116b9826126e0565b803580151581146126f757600080fd5b60008060008060808587031215612cda57600080fd5b612ce3856126e0565b935060208501356001600160401b0380821115612cff57600080fd5b612d0b88838901612a8d565b9450612d1960408801612cb4565b93506060870135915080821115612d2f57600080fd5b50612d3c87828801612972565b91505092959194509250565b60008060408385031215612d5b57600080fd5b82356001600160401b0380821115612d7257600080fd5b612d7e86838701612972565b93506020850135915080821115612d9457600080fd5b50612c6385828601612972565b600060208284031215612db357600080fd5b6116b98261294c565b60008060408385031215612dcf57600080fd5b612dd8836126e0565b915060208301356001600160401b03811115612df357600080fd5b612c6385828601612972565b60008060408385031215612e1257600080fd5b50508035926020909101359150565b6020815260006116b96020830184612726565b6020815260006116b960208301846127d4565b60008060408385031215612e5a57600080fd5b612e63836126e0565b9150612c9060208401612cb4565b60008060008060808587031215612e8757600080fd5b612e90856126e0565b9350612e9e602086016126e0565b92506040850135915060608501356001600160401b03811115612ec057600080fd5b612d3c87828801612972565b60008060408385031215612edf57600080fd5b612ee8836126e0565b9150612c906020840161294c565b600080600060608486031215612f0b57600080fd5b612f14846126e0565b925060208401356001600160401b03811115612f2f57600080fd5b612f3b86828701612972565b925050604084013590509250925092565b60008060408385031215612f5f57600080fd5b612f68836126e0565b9150612c90602084016126e0565b600181811c90821680612f8a57607f821691505b602082108103610af557634e487b7160e01b600052602260045260246000fd5b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201526000805160206134ca83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206134ca83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b601f8211156107ad57600081815260208120601f850160051c810160208610156130925750805b601f850160051c820191505b818110156130b15782815560010161309e565b505050505050565b81516001600160401b038111156130d2576130d26128bc565b6130e6816130e08454612f76565b8461306b565b602080601f83116001811461311b57600084156131035750858301515b600019600386901b1c1916600185901b1785556130b1565b600085815260208120601f198616915b8281101561314a5788860151825594840194600190910190840161312b565b50858210156131685787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016131b6576131b661318e565b5060010190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b6000835160206132028285838901612664565b81840191506000855461321481612f76565b6001828116801561322c57600181146132415761326d565b60ff198416875282151583028701945061326d565b896000528560002060005b848110156132655781548982015290830190870161324c565b505082870194505b50929998505050505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6000602082840312156132d357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516133a9816017850160208801612664565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516133da816028840160208801612664565b01602801949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906127ca90830184612688565b60006020828403121561342b57600080fd5b81516116b981612631565b80820281158282048414176105d9576105d961318e565b808201808211156105d9576105d961318e565b60008161346f5761346f61318e565b506000190190565b60008251613489818460208701612664565b9190910192915050565b6020808252601c908201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b60408201526060019056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122064e4bbd4375797beb15057afb5d51532e5568ce1d575706dc387b6242b4c89f464736f6c63430008130033",
1184
+ "deployedBytecode": "0x6080604052600436106101735760003560e01c806301ffc9a71461017857806306fdde03146101ad578063081812fc146101cf578063095ea7b3146102075780630ad4c4f41461022957806323b872dd14610256578063248a9ca31461027657806324db9fa8146102a45780632f2ff15d146102c457806336568abe146102e45780633659cfe61461030457806342842e0e1461032457806343543a42146103445780634cd88b76146103645780634e93f47b146103845780634f1ef286146103a457806352d1902d146103b75780636352211e146103cc5780636cae28c5146103ec57806370a082311461041957806391d148541461043957806395d89b411461045957806396635c921461046e578063a217fddf1461049b578063a22cb465146104b0578063b88d4fde146104d0578063c87b56dd146104f0578063d0856c6d14610510578063d34047b614610530578063d539139314610550578063d547741f1461058e578063e985e9c5146105ae575b600080fd5b34801561018457600080fd5b50610198610193366004612647565b6105ce565b60405190151581526020015b60405180910390f35b3480156101b957600080fd5b506101c26105df565b6040516101a491906126b4565b3480156101db57600080fd5b506101ef6101ea3660046126c7565b610671565b6040516001600160a01b0390911681526020016101a4565b34801561021357600080fd5b506102276102223660046126fc565b610698565b005b34801561023557600080fd5b506102496102443660046126c7565b6107b2565b6040516101a49190612829565b34801561026257600080fd5b50610227610271366004612880565b610a28565b34801561028257600080fd5b506102966102913660046126c7565b610a59565b6040519081526020016101a4565b3480156102b057600080fd5b506102496102bf366004612c27565b610a6e565b3480156102d057600080fd5b506102276102df366004612c6d565b610afb565b3480156102f057600080fd5b506102276102ff366004612c6d565b610b17565b34801561031057600080fd5b5061022761031f366004612c99565b610b95565b34801561033057600080fd5b5061022761033f366004612880565b610c5d565b34801561035057600080fd5b5061029661035f366004612cc4565b610c78565b34801561037057600080fd5b5061022761037f366004612d48565b610e4a565b34801561039057600080fd5b5061029661039f366004612da1565b610f70565b6102276103b2366004612dbc565b610fbb565b3480156103c357600080fd5b50610296611070565b3480156103d857600080fd5b506101ef6103e73660046126c7565b61111e565b3480156103f857600080fd5b5061040c610407366004612dff565b611152565b6040516101a49190612e21565b34801561042557600080fd5b50610296610434366004612c99565b611302565b34801561044557600080fd5b50610198610454366004612c6d565b611388565b34801561046557600080fd5b506101c26113b3565b34801561047a57600080fd5b5061048e6104893660046126c7565b6113c2565b6040516101a49190612e34565b3480156104a757600080fd5b50610296600081565b3480156104bc57600080fd5b506102276104cb366004612e47565b611570565b3480156104dc57600080fd5b506102276104eb366004612e71565b61157b565b3480156104fc57600080fd5b506101c261050b3660046126c7565b6115b3565b34801561051c57600080fd5b5061022761052b366004612ecc565b6116c0565b34801561053c57600080fd5b5061029661054b366004612ef6565b6116d2565b34801561055c57600080fd5b506102966040516526a4a72a22a960d11b60208201526026016040516020818303038152906040528051906020012081565b34801561059a57600080fd5b506102276105a9366004612c6d565b61170b565b3480156105ba57600080fd5b506101986105c9366004612f4c565b611727565b60006105d982611755565b92915050565b6060606580546105ee90612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461061a90612f76565b80156106675780601f1061063c57610100808354040283529160200191610667565b820191906000526020600020905b81548152906001019060200180831161064a57829003601f168201915b5050505050905090565b600061067c8261177a565b506000908152606960205260409020546001600160a01b031690565b60006106a38261111e565b9050806001600160a01b0316836001600160a01b0316036107155760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061073157506107318133611727565b6107a35760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161070c565b6107ad838361179f565b505050565b6107ba612591565b600082815261012d60209081526040918290208251608081018452815463ffffffff81168252600160201b900461ffff1692810192909252600181018054929391929184019161080990612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461083590612f76565b80156108825780601f1061085757610100808354040283529160200191610882565b820191906000526020600020905b81548152906001019060200180831161086557829003601f168201915b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610a1a5760008481526020908190206040805160c08101825260058602909201805461ffff8116845262010000900463ffffffff169383019390935260018301549082015260028201805491929160608401919061091190612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461093d90612f76565b801561098a5780601f1061095f5761010080835404028352916020019161098a565b820191906000526020600020905b81548152906001019060200180831161096d57829003601f168201915b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156109ec57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116109ce575b5050509183525050600491909101546001600160801b031660209182015290825260019290920191016108b0565b505050915250909392505050565b610a32338261180d565b610a4e5760405162461bcd60e51b815260040161070c90612faa565b6107ad83838361186c565b60009081526097602052604090206001015490565b610a76612591565b610a7f8361177a565b6040518390610a92908490602001612829565b6040516020818303038152906040528051906020012014610af55781604051602001610abe9190612829565b60408051808303601f1901815290829052805160209091012063b2c999af60e01b825260048201526024810184905260440161070c565b50919050565b610b0482610a59565b610b0d816119be565b6107ad83836119c8565b6001600160a01b0381163314610b875760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161070c565b610b918282611a4e565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610bdd5760405162461bcd60e51b815260040161070c90612ff7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c0f611ab5565b6001600160a01b031614610c355760405162461bcd60e51b815260040161070c90613031565b610c3e81611ad1565b60408051600080825260208201909252610c5a91839190611adb565b50565b6107ad8383836040518060200160405280600081525061157b565b6000610c878460000151611c46565b835163ffffffff16600003610caf57604051630649917760e11b815260040160405180910390fd5b600084604051602001610cc29190612829565b6040516020818303038152906040528051906020012090508060001c91508315610e2f57600082815261012d602052604090819020908601516001820190610d0a90826130b9565b5085518154602088015161ffff16600160201b0265ffffffffffff1990911663ffffffff9092169190911717815560005b866060015151811015610e2c578160020187606001518281518110610d6257610d62613178565b602090810291909101810151825460018181018555600094855293839020825160059092020180549383015163ffffffff16620100000265ffffffffffff1990941661ffff9092169190911792909217825560408101519282019290925560608201516002820190610dd490826130b9565b5060808201518051610df09160038401916020909101906125b7565b5060a09190910151600490910180546001600160801b0319166001600160801b0390921691909117905580610e24816131a4565b915050610d3b565b50505b610e40868660400151838887611ca4565b5050949350505050565b600054610100900460ff1615808015610e6a5750600054600160ff909116105b80610e8b5750610e7930611d20565b158015610e8b575060005460ff166001145b610eee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161070c565b6000805460ff191660011790558015610f11576000805461ff0019166101001790555b610f1b8383611d2f565b610f26600033611d60565b80156107ad576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b604051674d414e414745525f60c01b60208201526001600160e01b031960e083901b166028820152600090602c01604051602081830303815290604052805190602001209050919050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110035760405162461bcd60e51b815260040161070c90612ff7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611035611ab5565b6001600160a01b03161461105b5760405162461bcd60e51b815260040161070c90613031565b61106482611ad1565b610b9182826001611adb565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461110b5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840161070c565b506000805160206134ea83398151915290565b60008061112a83611d6a565b90506001600160a01b0381166105d95760405162461bcd60e51b815260040161070c906131bd565b6040805160c0810182526000808252602082018190529181018290526060808201819052608082015260a0810191909152600083815261012d602052604090206002018054839081106111a7576111a7613178565b60009182526020918290206040805160c0810182526005909302909101805461ffff8116845263ffffffff62010000909104169383019390935260018301549082015260028201805491929160608401919061120290612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461122e90612f76565b801561127b5780601f106112505761010080835404028352916020019161127b565b820191906000526020600020905b81548152906001019060200180831161125e57829003601f168201915b50505050508152602001600382018054806020026020016040519081016040528092919081815260200182805480156112dd57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116112bf575b5050509183525050600491909101546001600160801b03166020909101529392505050565b60006001600160a01b03821661136c5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161070c565b506001600160a01b031660009081526068602052604090205490565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6060606680546105ee90612f76565b606061012d6000838152602001908152602001600020600201805480602002602001604051908101604052809291908181526020016000905b828210156115655760008481526020908190206040805160c08101825260058602909201805461ffff8116845262010000900463ffffffff169383019390935260018301549082015260028201805491929160608401919061145c90612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461148890612f76565b80156114d55780601f106114aa576101008083540402835291602001916114d5565b820191906000526020600020905b8154815290600101906020018083116114b857829003601f168201915b505050505081526020016003820180548060200260200160405190810160405280929190818152602001828054801561153757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611519575b5050509183525050600491909101546001600160801b031660209182015290825260019290920191016113fb565b505050509050919050565b610b91338383611d85565b611585338361180d565b6115a15760405162461bcd60e51b815260040161070c90612faa565b6115ad84848484611e4f565b50505050565b60606115be8261177a565b60006115d560408051602081019091526000815290565b9050600081511161168057600083815261012d6020526040902060010180546115fd90612f76565b80601f016020809104026020016040519081016040528092919081815260200182805461162990612f76565b80156116765780601f1061164b57610100808354040283529160200191611676565b820191906000526020600020905b81548152906001019060200180831161165957829003601f168201915b50505050506116b9565b8061012d60008581526020019081526020016000206001016040516020016116a99291906131ef565b6040516020818303038152906040525b9392505050565b610b916116cc82610f70565b83610afb565b60006116de6000611c46565b6116e6612591565b6117028585858460405180602001604052806000815250611ca4565b95945050505050565b61171482610a59565b61171d816119be565b6107ad8383611a4e565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b03198216637965db0b60e01b14806105d957506105d982611e82565b61178381611ed2565b610c5a5760405162461bcd60e51b815260040161070c906131bd565b600081815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906117d48261111e565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806118198361111e565b9050806001600160a01b0316846001600160a01b0316148061184057506118408185611727565b806118645750836001600160a01b031661185984610671565b6001600160a01b0316145b949350505050565b826001600160a01b031661187f8261111e565b6001600160a01b0316146118a55760405162461bcd60e51b815260040161070c9061327c565b6001600160a01b0382166119075760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161070c565b826001600160a01b031661191a8261111e565b6001600160a01b0316146119405760405162461bcd60e51b815260040161070c9061327c565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652606885528386208054600019019055908716808652838620805460010190558686526067909452828520805490921684179091559051849360008051602061353183398151915291a4505050565b610c5a8133611eef565b6119d28282611388565b610b915760008281526097602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611a0a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611a588282611388565b15610b915760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805160206134ea833981519152546001600160a01b031690565b610c5a6000611c46565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611b0e576107ad83611f48565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611b68575060408051601f3d908101601f19168201909252611b65918101906132c1565b60015b611bcb5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840161070c565b6000805160206134ea8339815191528114611c3a5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840161070c565b506107ad838383611fe2565b60008163ffffffff16118015611c695750611c69611c6382610f70565b33611388565b80611c7a5750611c7a600033611388565b1515600003610c5a57604051632aefbcbd60e21b815263ffffffff8216600482015260240161070c565b600083815261012d602052604090208390600101611cc286826130b9565b50611cce868284612007565b604080518281526001600160a01b03881660208201529081018590527f90b734749855ec2532a3737a9ac4559e0b64d34d298435c945a0afe2be3544ea9060600160405180910390a195945050505050565b6001600160a01b03163b151590565b600054610100900460ff16611d565760405162461bcd60e51b815260040161070c906132da565b610b91828261203a565b610b9182826119c8565b6000908152606760205260409020546001600160a01b031690565b816001600160a01b0316836001600160a01b031603611de25760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b604482015260640161070c565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611e5a84848461186c565b611e668484848461207a565b6115ad5760405162461bcd60e51b815260040161070c90613325565b60006001600160e01b031982166380ac58cd60e01b1480611eb357506001600160e01b03198216635b5e139f60e01b145b806105d957506301ffc9a760e01b6001600160e01b03198316146105d9565b600080611ede83611d6a565b6001600160a01b0316141592915050565b611ef98282611388565b610b9157611f0681612182565b611f11836020612194565b604051602001611f22929190613377565b60408051601f198184030181529082905262461bcd60e51b825261070c916004016126b4565b611f5181611d20565b611fb35760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840161070c565b6000805160206134ea83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b611feb8361232f565b600082511180611ff85750805b156107ad576115ad838361236f565b6120118383612458565b61201e600084848461207a565b6107ad5760405162461bcd60e51b815260040161070c90613325565b600054610100900460ff166120615760405162461bcd60e51b815260040161070c906132da565b606561206d83826130b9565b5060666107ad82826130b9565b600061208e846001600160a01b0316611d20565b1561217757604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906120c59033908990889088906004016133e6565b6020604051808303816000875af1925050508015612100575060408051601f3d908101601f191682019092526120fd91810190613419565b60015b61215d573d80801561212e576040519150601f19603f3d011682016040523d82523d6000602084013e612133565b606091505b5080516000036121555760405162461bcd60e51b815260040161070c90613325565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611864565b506001949350505050565b60606105d96001600160a01b03831660145b606060006121a3836002613436565b6121ae90600261344d565b6001600160401b038111156121c5576121c56128bc565b6040519080825280601f01601f1916602001820160405280156121ef576020820181803683370190505b509050600360fc1b8160008151811061220a5761220a613178565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061223957612239613178565b60200101906001600160f81b031916908160001a905350600061225d846002613436565b61226890600161344d565b90505b60018111156122e0576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061229c5761229c613178565b1a60f81b8282815181106122b2576122b2613178565b60200101906001600160f81b031916908160001a90535060049490941c936122d981613460565b905061226b565b5083156116b95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161070c565b61233881611f48565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606061237a83611d20565b6123d55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161070c565b600080846001600160a01b0316846040516123f09190613477565b600060405180830381855af49150503d806000811461242b576040519150601f19603f3d011682016040523d82523d6000602084013e612430565b606091505b5091509150611702828260405180606001604052806027815260200161350a60279139612553565b6001600160a01b0382166124ae5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161070c565b6124b781611ed2565b156124d45760405162461bcd60e51b815260040161070c90613493565b6124dd81611ed2565b156124fa5760405162461bcd60e51b815260040161070c90613493565b6001600160a01b038216600081815260686020908152604080832080546001019055848352606790915280822080546001600160a01b031916841790555183929190600080516020613531833981519152908290a45050565b606083156125625750816116b9565b6116b983838151156125775781518083602001fd5b8060405162461bcd60e51b815260040161070c91906126b4565b604080516080810182526000808252602082015260609181018290528181019190915290565b82805482825590600052602060002090810192821561260c579160200282015b8281111561260c57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906125d7565b5061261892915061261c565b5090565b5b80821115612618576000815560010161261d565b6001600160e01b031981168114610c5a57600080fd5b60006020828403121561265957600080fd5b81356116b981612631565b60005b8381101561267f578181015183820152602001612667565b50506000910152565b600081518084526126a0816020860160208601612664565b601f01601f19169290920160200192915050565b6020815260006116b96020830184612688565b6000602082840312156126d957600080fd5b5035919050565b80356001600160a01b03811681146126f757600080fd5b919050565b6000806040838503121561270f57600080fd5b612718836126e0565b946020939093013593505050565b61ffff81511682526000602063ffffffff81840151168185015260408301516040850152606083015160c0606086015261276360c0860182612688565b60808581015187830391880191909152805180835290840192506000918401905b808310156127ad5783516001600160a01b03168252928401926001929092019190840190612784565b5060a086015193506127ca60a08801856001600160801b03169052565b9695505050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561281c57828403895261280a848351612726565b988501989350908401906001016127f2565b5091979650505050505050565b6020815263ffffffff825116602082015261ffff6020830151166040820152600060408301516080606084015261286360a0840182612688565b90506060840151601f1984830301608085015261170282826127d4565b60008060006060848603121561289557600080fd5b61289e846126e0565b92506128ac602085016126e0565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b03811182821017156128f4576128f46128bc565b60405290565b60405160c081016001600160401b03811182821017156128f4576128f46128bc565b604051601f8201601f191681016001600160401b0381118282101715612944576129446128bc565b604052919050565b803563ffffffff811681146126f757600080fd5b803561ffff811681146126f757600080fd5b600082601f83011261298357600080fd5b81356001600160401b0381111561299c5761299c6128bc565b6129af601f8201601f191660200161291c565b8181528460208386010111156129c457600080fd5b816020850160208301376000918101602001919091529392505050565b60006001600160401b038211156129fa576129fa6128bc565b5060051b60200190565b600082601f830112612a1557600080fd5b81356020612a2a612a25836129e1565b61291c565b82815260059290921b84018101918181019086841115612a4957600080fd5b8286015b84811015612a6b57612a5e816126e0565b8352918301918301612a4d565b509695505050505050565b80356001600160801b03811681146126f757600080fd5b600060808284031215612a9f57600080fd5b612aa76128d2565b9050612ab28261294c565b81526020612ac1818401612960565b8282015260408301356001600160401b0380821115612adf57600080fd5b612aeb86838701612972565b60408501526060850135915080821115612b0457600080fd5b818501915085601f830112612b1857600080fd5b8135612b26612a25826129e1565b81815260059190911b83018401908481019088831115612b4557600080fd5b8585015b83811015612c1557803585811115612b615760008081fd5b860160c0818c03601f1901811315612b795760008081fd5b612b816128fa565b612b8c8a8401612960565b8152612b9a6040840161294c565b8a82015260608301356040820152608083013588811115612bbb5760008081fd5b612bc98e8c83870101612972565b60608301525060a08084013589811115612be35760008081fd5b612bf18f8d83880101612a04565b608084015250612c02838501612a76565b9082015285525050918601918601612b49565b50606087015250939695505050505050565b60008060408385031215612c3a57600080fd5b8235915060208301356001600160401b03811115612c5757600080fd5b612c6385828601612a8d565b9150509250929050565b60008060408385031215612c8057600080fd5b82359150612c90602084016126e0565b90509250929050565b600060208284031215612cab57600080fd5b6116b9826126e0565b803580151581146126f757600080fd5b60008060008060808587031215612cda57600080fd5b612ce3856126e0565b935060208501356001600160401b0380821115612cff57600080fd5b612d0b88838901612a8d565b9450612d1960408801612cb4565b93506060870135915080821115612d2f57600080fd5b50612d3c87828801612972565b91505092959194509250565b60008060408385031215612d5b57600080fd5b82356001600160401b0380821115612d7257600080fd5b612d7e86838701612972565b93506020850135915080821115612d9457600080fd5b50612c6385828601612972565b600060208284031215612db357600080fd5b6116b98261294c565b60008060408385031215612dcf57600080fd5b612dd8836126e0565b915060208301356001600160401b03811115612df357600080fd5b612c6385828601612972565b60008060408385031215612e1257600080fd5b50508035926020909101359150565b6020815260006116b96020830184612726565b6020815260006116b960208301846127d4565b60008060408385031215612e5a57600080fd5b612e63836126e0565b9150612c9060208401612cb4565b60008060008060808587031215612e8757600080fd5b612e90856126e0565b9350612e9e602086016126e0565b92506040850135915060608501356001600160401b03811115612ec057600080fd5b612d3c87828801612972565b60008060408385031215612edf57600080fd5b612ee8836126e0565b9150612c906020840161294c565b600080600060608486031215612f0b57600080fd5b612f14846126e0565b925060208401356001600160401b03811115612f2f57600080fd5b612f3b86828701612972565b925050604084013590509250925092565b60008060408385031215612f5f57600080fd5b612f68836126e0565b9150612c90602084016126e0565b600181811c90821680612f8a57607f821691505b602082108103610af557634e487b7160e01b600052602260045260246000fd5b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6020808252602c908201526000805160206134ca83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206134ca83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b601f8211156107ad57600081815260208120601f850160051c810160208610156130925750805b601f850160051c820191505b818110156130b15782815560010161309e565b505050505050565b81516001600160401b038111156130d2576130d26128bc565b6130e6816130e08454612f76565b8461306b565b602080601f83116001811461311b57600084156131035750858301515b600019600386901b1c1916600185901b1785556130b1565b600085815260208120601f198616915b8281101561314a5788860151825594840194600190910190840161312b565b50858210156131685787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016131b6576131b661318e565b5060010190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b6000835160206132028285838901612664565b81840191506000855461321481612f76565b6001828116801561322c57600181146132415761326d565b60ff198416875282151583028701945061326d565b896000528560002060005b848110156132655781548982015290830190870161324c565b505082870194505b50929998505050505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6000602082840312156132d357600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516133a9816017850160208801612664565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516133da816028840160208801612664565b01602801949350505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906127ca90830184612688565b60006020828403121561342b57600080fd5b81516116b981612631565b80820281158282048414176105d9576105d961318e565b808201808211156105d9576105d961318e565b60008161346f5761346f61318e565b506000190190565b60008251613489818460208701612664565b9190910192915050565b6020808252601c908201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b60408201526060019056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122064e4bbd4375797beb15057afb5d51532e5568ce1d575706dc387b6242b4c89f464736f6c63430008130033",
1185
+ "linkReferences": {},
1186
+ "deployedLinkReferences": {}
1187
+ }