@artblocks/contracts 1.0.1 → 1.0.2

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 (87) hide show
  1. package/.env.example +8 -1
  2. package/README.md +42 -157
  3. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  4. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +2 -2
  5. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +2 -2
  6. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +2 -2
  7. package/artifacts/contracts/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +2229 -0
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  10. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  25. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2 -2
  26. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterSEAV0.sol/IFilteredMinterSEAV0.json +1032 -0
  27. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +149 -0
  28. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +149 -0
  29. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +130 -0
  30. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +1066 -0
  31. package/artifacts/contracts/interfaces/0.8.x/IWETH.sol/IWETH.json +55 -0
  32. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +295 -0
  33. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  34. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  35. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  36. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  37. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  38. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  39. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +130 -0
  40. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  41. package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +1310 -0
  42. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  43. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  44. package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +33 -0
  45. package/artifacts/contracts/mock/GasLimitReceiverBidderMock.sol/GasLimitReceiverBidderMock.json +46 -0
  46. package/artifacts/contracts/mock/GasLimitReceiverMock.sol/GasLimitReceiverMock.json +28 -0
  47. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  48. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  49. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +51 -0
  50. package/artifacts/contracts/{BasicRandomizer.sol → randomizer/BasicRandomizer.sol}/BasicRandomizer.json +3 -3
  51. package/artifacts/contracts/randomizer/BasicRandomizerBase_v0_0_0.sol/RandomizerBase.json +10 -0
  52. package/artifacts/contracts/randomizer/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +229 -0
  53. package/artifacts/contracts/randomizer/RandomizerV2.sol/BasicRandomizerV2.json +102 -0
  54. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
  55. package/contracts/DependencyRegistryV0.sol +74 -113
  56. package/contracts/GenArt721CoreV3.sol +124 -171
  57. package/contracts/GenArt721CoreV3_Engine.sol +136 -198
  58. package/contracts/GenArt721CoreV3_Engine_Flex.sol +2274 -0
  59. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +147 -176
  60. package/contracts/interfaces/0.8.x/IFilteredMinterSEAV0.sol +145 -0
  61. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +39 -0
  62. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +0 -3
  63. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +132 -0
  64. package/contracts/interfaces/0.8.x/IWETH.sol +11 -0
  65. package/contracts/libs/integration-refs/weth9/weth9.sol +763 -0
  66. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +35 -47
  67. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +26 -34
  68. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +16 -21
  69. package/contracts/minter-suite/Minters/MinterDALinV4.sol +15 -17
  70. package/contracts/minter-suite/Minters/MinterHolderV4.sol +19 -19
  71. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +13 -15
  72. package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +23 -23
  73. package/contracts/minter-suite/Minters/MinterSEAV0.sol +1224 -0
  74. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +11 -11
  75. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +9 -10
  76. package/contracts/mock/DeadReceiverBidderMock.sol +23 -0
  77. package/contracts/mock/GasLimitReceiverBidderMock.sol +23 -0
  78. package/contracts/mock/GasLimitReceiverMock.sol +19 -0
  79. package/contracts/mock/RandomizerV2_NoAssignMock.sol +2 -11
  80. package/contracts/mock/ReentrancySEAMock.sol +36 -0
  81. package/contracts/{BasicRandomizer.sol → randomizer/BasicRandomizer.sol} +1 -1
  82. package/contracts/randomizer/BasicRandomizerBase_v0_0_0.sol +23 -0
  83. package/contracts/{BasicPolyptychRandomizerV0.sol → randomizer/PolyptychRandomizerV0.sol} +19 -28
  84. package/contracts/{BasicRandomizerV2.sol → randomizer/RandomizerV2.sol} +5 -13
  85. package/package.json +27 -14
  86. package/artifacts/contracts/BasicPolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +0 -229
  87. package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +0 -102
@@ -0,0 +1,1310 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MinterSEAV0",
4
+ "sourceName": "contracts/minter-suite/Minters/MinterSEAV0.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_genArt721Address",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_minterFilter",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_wethAddress",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "anonymous": false,
29
+ "inputs": [
30
+ {
31
+ "indexed": true,
32
+ "internalType": "uint256",
33
+ "name": "tokenId",
34
+ "type": "uint256"
35
+ },
36
+ {
37
+ "indexed": true,
38
+ "internalType": "address",
39
+ "name": "bidder",
40
+ "type": "address"
41
+ },
42
+ {
43
+ "indexed": false,
44
+ "internalType": "uint256",
45
+ "name": "bidAmount",
46
+ "type": "uint256"
47
+ }
48
+ ],
49
+ "name": "AuctionBid",
50
+ "type": "event"
51
+ },
52
+ {
53
+ "anonymous": false,
54
+ "inputs": [
55
+ {
56
+ "indexed": false,
57
+ "internalType": "uint32",
58
+ "name": "minAuctionDurationSeconds",
59
+ "type": "uint32"
60
+ },
61
+ {
62
+ "indexed": false,
63
+ "internalType": "uint32",
64
+ "name": "maxAuctionDurationSeconds",
65
+ "type": "uint32"
66
+ }
67
+ ],
68
+ "name": "AuctionDurationSecondsRangeUpdated",
69
+ "type": "event"
70
+ },
71
+ {
72
+ "anonymous": false,
73
+ "inputs": [
74
+ {
75
+ "indexed": true,
76
+ "internalType": "uint256",
77
+ "name": "tokenId",
78
+ "type": "uint256"
79
+ },
80
+ {
81
+ "indexed": true,
82
+ "internalType": "address",
83
+ "name": "bidder",
84
+ "type": "address"
85
+ },
86
+ {
87
+ "indexed": false,
88
+ "internalType": "uint256",
89
+ "name": "bidAmount",
90
+ "type": "uint256"
91
+ },
92
+ {
93
+ "indexed": false,
94
+ "internalType": "uint64",
95
+ "name": "endTime",
96
+ "type": "uint64"
97
+ }
98
+ ],
99
+ "name": "AuctionInitialized",
100
+ "type": "event"
101
+ },
102
+ {
103
+ "anonymous": false,
104
+ "inputs": [
105
+ {
106
+ "indexed": true,
107
+ "internalType": "uint256",
108
+ "name": "tokenId",
109
+ "type": "uint256"
110
+ },
111
+ {
112
+ "indexed": true,
113
+ "internalType": "address",
114
+ "name": "winner",
115
+ "type": "address"
116
+ },
117
+ {
118
+ "indexed": false,
119
+ "internalType": "uint256",
120
+ "name": "price",
121
+ "type": "uint256"
122
+ }
123
+ ],
124
+ "name": "AuctionSettled",
125
+ "type": "event"
126
+ },
127
+ {
128
+ "anonymous": false,
129
+ "inputs": [
130
+ {
131
+ "indexed": true,
132
+ "internalType": "uint256",
133
+ "name": "_projectId",
134
+ "type": "uint256"
135
+ },
136
+ {
137
+ "indexed": false,
138
+ "internalType": "bytes32",
139
+ "name": "_key",
140
+ "type": "bytes32"
141
+ }
142
+ ],
143
+ "name": "ConfigKeyRemoved",
144
+ "type": "event"
145
+ },
146
+ {
147
+ "anonymous": false,
148
+ "inputs": [
149
+ {
150
+ "indexed": true,
151
+ "internalType": "uint256",
152
+ "name": "_projectId",
153
+ "type": "uint256"
154
+ },
155
+ {
156
+ "indexed": false,
157
+ "internalType": "bytes32",
158
+ "name": "_key",
159
+ "type": "bytes32"
160
+ },
161
+ {
162
+ "indexed": false,
163
+ "internalType": "uint256",
164
+ "name": "_value",
165
+ "type": "uint256"
166
+ }
167
+ ],
168
+ "name": "ConfigValueAddedToSet",
169
+ "type": "event"
170
+ },
171
+ {
172
+ "anonymous": false,
173
+ "inputs": [
174
+ {
175
+ "indexed": true,
176
+ "internalType": "uint256",
177
+ "name": "_projectId",
178
+ "type": "uint256"
179
+ },
180
+ {
181
+ "indexed": false,
182
+ "internalType": "bytes32",
183
+ "name": "_key",
184
+ "type": "bytes32"
185
+ },
186
+ {
187
+ "indexed": false,
188
+ "internalType": "address",
189
+ "name": "_value",
190
+ "type": "address"
191
+ }
192
+ ],
193
+ "name": "ConfigValueAddedToSet",
194
+ "type": "event"
195
+ },
196
+ {
197
+ "anonymous": false,
198
+ "inputs": [
199
+ {
200
+ "indexed": true,
201
+ "internalType": "uint256",
202
+ "name": "_projectId",
203
+ "type": "uint256"
204
+ },
205
+ {
206
+ "indexed": false,
207
+ "internalType": "bytes32",
208
+ "name": "_key",
209
+ "type": "bytes32"
210
+ },
211
+ {
212
+ "indexed": false,
213
+ "internalType": "bytes32",
214
+ "name": "_value",
215
+ "type": "bytes32"
216
+ }
217
+ ],
218
+ "name": "ConfigValueAddedToSet",
219
+ "type": "event"
220
+ },
221
+ {
222
+ "anonymous": false,
223
+ "inputs": [
224
+ {
225
+ "indexed": true,
226
+ "internalType": "uint256",
227
+ "name": "_projectId",
228
+ "type": "uint256"
229
+ },
230
+ {
231
+ "indexed": false,
232
+ "internalType": "bytes32",
233
+ "name": "_key",
234
+ "type": "bytes32"
235
+ },
236
+ {
237
+ "indexed": false,
238
+ "internalType": "uint256",
239
+ "name": "_value",
240
+ "type": "uint256"
241
+ }
242
+ ],
243
+ "name": "ConfigValueRemovedFromSet",
244
+ "type": "event"
245
+ },
246
+ {
247
+ "anonymous": false,
248
+ "inputs": [
249
+ {
250
+ "indexed": true,
251
+ "internalType": "uint256",
252
+ "name": "_projectId",
253
+ "type": "uint256"
254
+ },
255
+ {
256
+ "indexed": false,
257
+ "internalType": "bytes32",
258
+ "name": "_key",
259
+ "type": "bytes32"
260
+ },
261
+ {
262
+ "indexed": false,
263
+ "internalType": "address",
264
+ "name": "_value",
265
+ "type": "address"
266
+ }
267
+ ],
268
+ "name": "ConfigValueRemovedFromSet",
269
+ "type": "event"
270
+ },
271
+ {
272
+ "anonymous": false,
273
+ "inputs": [
274
+ {
275
+ "indexed": true,
276
+ "internalType": "uint256",
277
+ "name": "_projectId",
278
+ "type": "uint256"
279
+ },
280
+ {
281
+ "indexed": false,
282
+ "internalType": "bytes32",
283
+ "name": "_key",
284
+ "type": "bytes32"
285
+ },
286
+ {
287
+ "indexed": false,
288
+ "internalType": "bytes32",
289
+ "name": "_value",
290
+ "type": "bytes32"
291
+ }
292
+ ],
293
+ "name": "ConfigValueRemovedFromSet",
294
+ "type": "event"
295
+ },
296
+ {
297
+ "anonymous": false,
298
+ "inputs": [
299
+ {
300
+ "indexed": true,
301
+ "internalType": "uint256",
302
+ "name": "_projectId",
303
+ "type": "uint256"
304
+ },
305
+ {
306
+ "indexed": false,
307
+ "internalType": "bytes32",
308
+ "name": "_key",
309
+ "type": "bytes32"
310
+ },
311
+ {
312
+ "indexed": false,
313
+ "internalType": "bool",
314
+ "name": "_value",
315
+ "type": "bool"
316
+ }
317
+ ],
318
+ "name": "ConfigValueSet",
319
+ "type": "event"
320
+ },
321
+ {
322
+ "anonymous": false,
323
+ "inputs": [
324
+ {
325
+ "indexed": true,
326
+ "internalType": "uint256",
327
+ "name": "_projectId",
328
+ "type": "uint256"
329
+ },
330
+ {
331
+ "indexed": false,
332
+ "internalType": "bytes32",
333
+ "name": "_key",
334
+ "type": "bytes32"
335
+ },
336
+ {
337
+ "indexed": false,
338
+ "internalType": "uint256",
339
+ "name": "_value",
340
+ "type": "uint256"
341
+ }
342
+ ],
343
+ "name": "ConfigValueSet",
344
+ "type": "event"
345
+ },
346
+ {
347
+ "anonymous": false,
348
+ "inputs": [
349
+ {
350
+ "indexed": true,
351
+ "internalType": "uint256",
352
+ "name": "_projectId",
353
+ "type": "uint256"
354
+ },
355
+ {
356
+ "indexed": false,
357
+ "internalType": "bytes32",
358
+ "name": "_key",
359
+ "type": "bytes32"
360
+ },
361
+ {
362
+ "indexed": false,
363
+ "internalType": "address",
364
+ "name": "_value",
365
+ "type": "address"
366
+ }
367
+ ],
368
+ "name": "ConfigValueSet",
369
+ "type": "event"
370
+ },
371
+ {
372
+ "anonymous": false,
373
+ "inputs": [
374
+ {
375
+ "indexed": true,
376
+ "internalType": "uint256",
377
+ "name": "_projectId",
378
+ "type": "uint256"
379
+ },
380
+ {
381
+ "indexed": false,
382
+ "internalType": "bytes32",
383
+ "name": "_key",
384
+ "type": "bytes32"
385
+ },
386
+ {
387
+ "indexed": false,
388
+ "internalType": "bytes32",
389
+ "name": "_value",
390
+ "type": "bytes32"
391
+ }
392
+ ],
393
+ "name": "ConfigValueSet",
394
+ "type": "event"
395
+ },
396
+ {
397
+ "anonymous": false,
398
+ "inputs": [
399
+ {
400
+ "indexed": true,
401
+ "internalType": "uint256",
402
+ "name": "projectId",
403
+ "type": "uint256"
404
+ },
405
+ {
406
+ "indexed": false,
407
+ "internalType": "uint64",
408
+ "name": "timestampStart",
409
+ "type": "uint64"
410
+ },
411
+ {
412
+ "indexed": false,
413
+ "internalType": "uint32",
414
+ "name": "auctionDurationSeconds",
415
+ "type": "uint32"
416
+ },
417
+ {
418
+ "indexed": false,
419
+ "internalType": "uint256",
420
+ "name": "basePrice",
421
+ "type": "uint256"
422
+ }
423
+ ],
424
+ "name": "ConfiguredFutureAuctions",
425
+ "type": "event"
426
+ },
427
+ {
428
+ "anonymous": false,
429
+ "inputs": [
430
+ {
431
+ "indexed": false,
432
+ "internalType": "uint8",
433
+ "name": "minterMinBidIncrementPercentage",
434
+ "type": "uint8"
435
+ }
436
+ ],
437
+ "name": "MinterMinBidIncrementPercentageUpdated",
438
+ "type": "event"
439
+ },
440
+ {
441
+ "anonymous": false,
442
+ "inputs": [
443
+ {
444
+ "indexed": false,
445
+ "internalType": "uint16",
446
+ "name": "refundGasLimit",
447
+ "type": "uint16"
448
+ }
449
+ ],
450
+ "name": "MinterRefundGasLimitUpdated",
451
+ "type": "event"
452
+ },
453
+ {
454
+ "anonymous": false,
455
+ "inputs": [
456
+ {
457
+ "indexed": false,
458
+ "internalType": "uint32",
459
+ "name": "minterTimeBufferSeconds",
460
+ "type": "uint32"
461
+ }
462
+ ],
463
+ "name": "MinterTimeBufferUpdated",
464
+ "type": "event"
465
+ },
466
+ {
467
+ "anonymous": false,
468
+ "inputs": [
469
+ {
470
+ "indexed": true,
471
+ "internalType": "uint256",
472
+ "name": "_projectId",
473
+ "type": "uint256"
474
+ },
475
+ {
476
+ "indexed": true,
477
+ "internalType": "uint256",
478
+ "name": "_pricePerTokenInWei",
479
+ "type": "uint256"
480
+ }
481
+ ],
482
+ "name": "PricePerTokenInWeiUpdated",
483
+ "type": "event"
484
+ },
485
+ {
486
+ "anonymous": false,
487
+ "inputs": [
488
+ {
489
+ "indexed": true,
490
+ "internalType": "uint256",
491
+ "name": "_projectId",
492
+ "type": "uint256"
493
+ },
494
+ {
495
+ "indexed": true,
496
+ "internalType": "address",
497
+ "name": "_currencyAddress",
498
+ "type": "address"
499
+ },
500
+ {
501
+ "indexed": false,
502
+ "internalType": "string",
503
+ "name": "_currencySymbol",
504
+ "type": "string"
505
+ }
506
+ ],
507
+ "name": "ProjectCurrencyInfoUpdated",
508
+ "type": "event"
509
+ },
510
+ {
511
+ "anonymous": false,
512
+ "inputs": [
513
+ {
514
+ "indexed": true,
515
+ "internalType": "uint256",
516
+ "name": "_projectId",
517
+ "type": "uint256"
518
+ },
519
+ {
520
+ "indexed": false,
521
+ "internalType": "uint256",
522
+ "name": "_maxInvocations",
523
+ "type": "uint256"
524
+ }
525
+ ],
526
+ "name": "ProjectMaxInvocationsLimitUpdated",
527
+ "type": "event"
528
+ },
529
+ {
530
+ "anonymous": false,
531
+ "inputs": [
532
+ {
533
+ "indexed": true,
534
+ "internalType": "uint256",
535
+ "name": "projectId",
536
+ "type": "uint256"
537
+ }
538
+ ],
539
+ "name": "ProjectNextTokenEjected",
540
+ "type": "event"
541
+ },
542
+ {
543
+ "anonymous": false,
544
+ "inputs": [
545
+ {
546
+ "indexed": true,
547
+ "internalType": "uint256",
548
+ "name": "projectId",
549
+ "type": "uint256"
550
+ },
551
+ {
552
+ "indexed": false,
553
+ "internalType": "uint256",
554
+ "name": "tokenId",
555
+ "type": "uint256"
556
+ }
557
+ ],
558
+ "name": "ProjectNextTokenUpdated",
559
+ "type": "event"
560
+ },
561
+ {
562
+ "anonymous": false,
563
+ "inputs": [
564
+ {
565
+ "indexed": true,
566
+ "internalType": "uint256",
567
+ "name": "_projectId",
568
+ "type": "uint256"
569
+ },
570
+ {
571
+ "indexed": false,
572
+ "internalType": "bool",
573
+ "name": "_purchaseToDisabled",
574
+ "type": "bool"
575
+ }
576
+ ],
577
+ "name": "PurchaseToDisabledUpdated",
578
+ "type": "event"
579
+ },
580
+ {
581
+ "anonymous": false,
582
+ "inputs": [
583
+ {
584
+ "indexed": true,
585
+ "internalType": "uint256",
586
+ "name": "projectId",
587
+ "type": "uint256"
588
+ }
589
+ ],
590
+ "name": "ResetAuctionDetails",
591
+ "type": "event"
592
+ },
593
+ {
594
+ "inputs": [
595
+ {
596
+ "internalType": "uint256",
597
+ "name": "_projectId",
598
+ "type": "uint256"
599
+ },
600
+ {
601
+ "internalType": "uint256",
602
+ "name": "_timestampStart",
603
+ "type": "uint256"
604
+ },
605
+ {
606
+ "internalType": "uint256",
607
+ "name": "_auctionDurationSeconds",
608
+ "type": "uint256"
609
+ },
610
+ {
611
+ "internalType": "uint256",
612
+ "name": "_basePrice",
613
+ "type": "uint256"
614
+ }
615
+ ],
616
+ "name": "configureFutureAuctions",
617
+ "outputs": [],
618
+ "stateMutability": "nonpayable",
619
+ "type": "function"
620
+ },
621
+ {
622
+ "inputs": [
623
+ {
624
+ "internalType": "uint256",
625
+ "name": "_tokenId",
626
+ "type": "uint256"
627
+ }
628
+ ],
629
+ "name": "createBid",
630
+ "outputs": [],
631
+ "stateMutability": "payable",
632
+ "type": "function"
633
+ },
634
+ {
635
+ "inputs": [
636
+ {
637
+ "internalType": "uint256",
638
+ "name": "_tokenId",
639
+ "type": "uint256"
640
+ }
641
+ ],
642
+ "name": "createBid_l34",
643
+ "outputs": [],
644
+ "stateMutability": "payable",
645
+ "type": "function"
646
+ },
647
+ {
648
+ "inputs": [
649
+ {
650
+ "internalType": "uint256",
651
+ "name": "_projectId",
652
+ "type": "uint256"
653
+ },
654
+ {
655
+ "internalType": "address",
656
+ "name": "_to",
657
+ "type": "address"
658
+ }
659
+ ],
660
+ "name": "ejectNextTokenTo",
661
+ "outputs": [],
662
+ "stateMutability": "nonpayable",
663
+ "type": "function"
664
+ },
665
+ {
666
+ "inputs": [],
667
+ "name": "genArt721CoreAddress",
668
+ "outputs": [
669
+ {
670
+ "internalType": "address",
671
+ "name": "",
672
+ "type": "address"
673
+ }
674
+ ],
675
+ "stateMutability": "view",
676
+ "type": "function"
677
+ },
678
+ {
679
+ "inputs": [
680
+ {
681
+ "internalType": "uint256",
682
+ "name": "_projectId",
683
+ "type": "uint256"
684
+ }
685
+ ],
686
+ "name": "getNextTokenId",
687
+ "outputs": [
688
+ {
689
+ "internalType": "uint256",
690
+ "name": "nextTokenId",
691
+ "type": "uint256"
692
+ }
693
+ ],
694
+ "stateMutability": "view",
695
+ "type": "function"
696
+ },
697
+ {
698
+ "inputs": [
699
+ {
700
+ "internalType": "uint256",
701
+ "name": "_projectId",
702
+ "type": "uint256"
703
+ }
704
+ ],
705
+ "name": "getPriceInfo",
706
+ "outputs": [
707
+ {
708
+ "internalType": "bool",
709
+ "name": "isConfigured",
710
+ "type": "bool"
711
+ },
712
+ {
713
+ "internalType": "uint256",
714
+ "name": "tokenPriceInWei",
715
+ "type": "uint256"
716
+ },
717
+ {
718
+ "internalType": "string",
719
+ "name": "currencySymbol",
720
+ "type": "string"
721
+ },
722
+ {
723
+ "internalType": "address",
724
+ "name": "currencyAddress",
725
+ "type": "address"
726
+ }
727
+ ],
728
+ "stateMutability": "view",
729
+ "type": "function"
730
+ },
731
+ {
732
+ "inputs": [
733
+ {
734
+ "internalType": "uint256",
735
+ "name": "_projectId",
736
+ "type": "uint256"
737
+ }
738
+ ],
739
+ "name": "getTokenToBid",
740
+ "outputs": [
741
+ {
742
+ "internalType": "uint256",
743
+ "name": "",
744
+ "type": "uint256"
745
+ }
746
+ ],
747
+ "stateMutability": "view",
748
+ "type": "function"
749
+ },
750
+ {
751
+ "inputs": [],
752
+ "name": "isEngine",
753
+ "outputs": [
754
+ {
755
+ "internalType": "bool",
756
+ "name": "",
757
+ "type": "bool"
758
+ }
759
+ ],
760
+ "stateMutability": "view",
761
+ "type": "function"
762
+ },
763
+ {
764
+ "inputs": [
765
+ {
766
+ "internalType": "uint256",
767
+ "name": "_projectId",
768
+ "type": "uint256"
769
+ },
770
+ {
771
+ "internalType": "uint256",
772
+ "name": "_maxInvocations",
773
+ "type": "uint256"
774
+ }
775
+ ],
776
+ "name": "manuallyLimitProjectMaxInvocations",
777
+ "outputs": [],
778
+ "stateMutability": "nonpayable",
779
+ "type": "function"
780
+ },
781
+ {
782
+ "inputs": [],
783
+ "name": "minterConfigurationDetails",
784
+ "outputs": [
785
+ {
786
+ "internalType": "uint32",
787
+ "name": "minAuctionDurationSeconds_",
788
+ "type": "uint32"
789
+ },
790
+ {
791
+ "internalType": "uint32",
792
+ "name": "maxAuctionDurationSeconds_",
793
+ "type": "uint32"
794
+ },
795
+ {
796
+ "internalType": "uint8",
797
+ "name": "minterMinBidIncrementPercentage_",
798
+ "type": "uint8"
799
+ },
800
+ {
801
+ "internalType": "uint32",
802
+ "name": "minterTimeBufferSeconds_",
803
+ "type": "uint32"
804
+ },
805
+ {
806
+ "internalType": "uint16",
807
+ "name": "minterRefundGasLimit_",
808
+ "type": "uint16"
809
+ }
810
+ ],
811
+ "stateMutability": "view",
812
+ "type": "function"
813
+ },
814
+ {
815
+ "inputs": [],
816
+ "name": "minterFilterAddress",
817
+ "outputs": [
818
+ {
819
+ "internalType": "address",
820
+ "name": "",
821
+ "type": "address"
822
+ }
823
+ ],
824
+ "stateMutability": "view",
825
+ "type": "function"
826
+ },
827
+ {
828
+ "inputs": [],
829
+ "name": "minterType",
830
+ "outputs": [
831
+ {
832
+ "internalType": "string",
833
+ "name": "",
834
+ "type": "string"
835
+ }
836
+ ],
837
+ "stateMutability": "view",
838
+ "type": "function"
839
+ },
840
+ {
841
+ "inputs": [],
842
+ "name": "minterVersion",
843
+ "outputs": [
844
+ {
845
+ "internalType": "string",
846
+ "name": "",
847
+ "type": "string"
848
+ }
849
+ ],
850
+ "stateMutability": "view",
851
+ "type": "function"
852
+ },
853
+ {
854
+ "inputs": [
855
+ {
856
+ "internalType": "uint256",
857
+ "name": "_projectId",
858
+ "type": "uint256"
859
+ }
860
+ ],
861
+ "name": "projectActiveAuctionDetails",
862
+ "outputs": [
863
+ {
864
+ "components": [
865
+ {
866
+ "internalType": "uint256",
867
+ "name": "tokenId",
868
+ "type": "uint256"
869
+ },
870
+ {
871
+ "internalType": "uint256",
872
+ "name": "currentBid",
873
+ "type": "uint256"
874
+ },
875
+ {
876
+ "internalType": "address payable",
877
+ "name": "currentBidder",
878
+ "type": "address"
879
+ },
880
+ {
881
+ "internalType": "uint64",
882
+ "name": "endTime",
883
+ "type": "uint64"
884
+ },
885
+ {
886
+ "internalType": "bool",
887
+ "name": "settled",
888
+ "type": "bool"
889
+ },
890
+ {
891
+ "internalType": "bool",
892
+ "name": "initialized",
893
+ "type": "bool"
894
+ }
895
+ ],
896
+ "internalType": "struct IFilteredMinterSEAV0.Auction",
897
+ "name": "auction",
898
+ "type": "tuple"
899
+ }
900
+ ],
901
+ "stateMutability": "view",
902
+ "type": "function"
903
+ },
904
+ {
905
+ "inputs": [
906
+ {
907
+ "internalType": "uint256",
908
+ "name": "",
909
+ "type": "uint256"
910
+ }
911
+ ],
912
+ "name": "projectConfig",
913
+ "outputs": [
914
+ {
915
+ "internalType": "bool",
916
+ "name": "maxHasBeenInvoked",
917
+ "type": "bool"
918
+ },
919
+ {
920
+ "internalType": "uint24",
921
+ "name": "maxInvocations",
922
+ "type": "uint24"
923
+ },
924
+ {
925
+ "internalType": "uint64",
926
+ "name": "timestampStart",
927
+ "type": "uint64"
928
+ },
929
+ {
930
+ "internalType": "uint32",
931
+ "name": "auctionDurationSeconds",
932
+ "type": "uint32"
933
+ },
934
+ {
935
+ "internalType": "uint24",
936
+ "name": "nextTokenNumber",
937
+ "type": "uint24"
938
+ },
939
+ {
940
+ "internalType": "bool",
941
+ "name": "nextTokenNumberIsPopulated",
942
+ "type": "bool"
943
+ },
944
+ {
945
+ "internalType": "uint256",
946
+ "name": "basePrice",
947
+ "type": "uint256"
948
+ },
949
+ {
950
+ "components": [
951
+ {
952
+ "internalType": "uint256",
953
+ "name": "tokenId",
954
+ "type": "uint256"
955
+ },
956
+ {
957
+ "internalType": "uint256",
958
+ "name": "currentBid",
959
+ "type": "uint256"
960
+ },
961
+ {
962
+ "internalType": "address payable",
963
+ "name": "currentBidder",
964
+ "type": "address"
965
+ },
966
+ {
967
+ "internalType": "uint64",
968
+ "name": "endTime",
969
+ "type": "uint64"
970
+ },
971
+ {
972
+ "internalType": "bool",
973
+ "name": "settled",
974
+ "type": "bool"
975
+ },
976
+ {
977
+ "internalType": "bool",
978
+ "name": "initialized",
979
+ "type": "bool"
980
+ }
981
+ ],
982
+ "internalType": "struct IFilteredMinterSEAV0.Auction",
983
+ "name": "activeAuction",
984
+ "type": "tuple"
985
+ }
986
+ ],
987
+ "stateMutability": "view",
988
+ "type": "function"
989
+ },
990
+ {
991
+ "inputs": [
992
+ {
993
+ "internalType": "uint256",
994
+ "name": "_projectId",
995
+ "type": "uint256"
996
+ }
997
+ ],
998
+ "name": "projectConfigurationDetails",
999
+ "outputs": [
1000
+ {
1001
+ "internalType": "uint24",
1002
+ "name": "maxInvocations",
1003
+ "type": "uint24"
1004
+ },
1005
+ {
1006
+ "internalType": "uint64",
1007
+ "name": "timestampStart",
1008
+ "type": "uint64"
1009
+ },
1010
+ {
1011
+ "internalType": "uint32",
1012
+ "name": "auctionDurationSeconds",
1013
+ "type": "uint32"
1014
+ },
1015
+ {
1016
+ "internalType": "uint256",
1017
+ "name": "basePrice",
1018
+ "type": "uint256"
1019
+ },
1020
+ {
1021
+ "internalType": "bool",
1022
+ "name": "nextTokenNumberIsPopulated",
1023
+ "type": "bool"
1024
+ },
1025
+ {
1026
+ "internalType": "uint24",
1027
+ "name": "nextTokenNumber",
1028
+ "type": "uint24"
1029
+ },
1030
+ {
1031
+ "components": [
1032
+ {
1033
+ "internalType": "uint256",
1034
+ "name": "tokenId",
1035
+ "type": "uint256"
1036
+ },
1037
+ {
1038
+ "internalType": "uint256",
1039
+ "name": "currentBid",
1040
+ "type": "uint256"
1041
+ },
1042
+ {
1043
+ "internalType": "address payable",
1044
+ "name": "currentBidder",
1045
+ "type": "address"
1046
+ },
1047
+ {
1048
+ "internalType": "uint64",
1049
+ "name": "endTime",
1050
+ "type": "uint64"
1051
+ },
1052
+ {
1053
+ "internalType": "bool",
1054
+ "name": "settled",
1055
+ "type": "bool"
1056
+ },
1057
+ {
1058
+ "internalType": "bool",
1059
+ "name": "initialized",
1060
+ "type": "bool"
1061
+ }
1062
+ ],
1063
+ "internalType": "struct IFilteredMinterSEAV0.Auction",
1064
+ "name": "auction",
1065
+ "type": "tuple"
1066
+ }
1067
+ ],
1068
+ "stateMutability": "view",
1069
+ "type": "function"
1070
+ },
1071
+ {
1072
+ "inputs": [
1073
+ {
1074
+ "internalType": "uint256",
1075
+ "name": "_projectId",
1076
+ "type": "uint256"
1077
+ }
1078
+ ],
1079
+ "name": "projectMaxHasBeenInvoked",
1080
+ "outputs": [
1081
+ {
1082
+ "internalType": "bool",
1083
+ "name": "",
1084
+ "type": "bool"
1085
+ }
1086
+ ],
1087
+ "stateMutability": "view",
1088
+ "type": "function"
1089
+ },
1090
+ {
1091
+ "inputs": [
1092
+ {
1093
+ "internalType": "uint256",
1094
+ "name": "_projectId",
1095
+ "type": "uint256"
1096
+ }
1097
+ ],
1098
+ "name": "projectMaxInvocations",
1099
+ "outputs": [
1100
+ {
1101
+ "internalType": "uint256",
1102
+ "name": "",
1103
+ "type": "uint256"
1104
+ }
1105
+ ],
1106
+ "stateMutability": "view",
1107
+ "type": "function"
1108
+ },
1109
+ {
1110
+ "inputs": [
1111
+ {
1112
+ "internalType": "uint256",
1113
+ "name": "",
1114
+ "type": "uint256"
1115
+ }
1116
+ ],
1117
+ "name": "purchase",
1118
+ "outputs": [
1119
+ {
1120
+ "internalType": "uint256",
1121
+ "name": "",
1122
+ "type": "uint256"
1123
+ }
1124
+ ],
1125
+ "stateMutability": "payable",
1126
+ "type": "function"
1127
+ },
1128
+ {
1129
+ "inputs": [
1130
+ {
1131
+ "internalType": "address",
1132
+ "name": "",
1133
+ "type": "address"
1134
+ },
1135
+ {
1136
+ "internalType": "uint256",
1137
+ "name": "",
1138
+ "type": "uint256"
1139
+ }
1140
+ ],
1141
+ "name": "purchaseTo",
1142
+ "outputs": [
1143
+ {
1144
+ "internalType": "uint256",
1145
+ "name": "",
1146
+ "type": "uint256"
1147
+ }
1148
+ ],
1149
+ "stateMutability": "payable",
1150
+ "type": "function"
1151
+ },
1152
+ {
1153
+ "inputs": [
1154
+ {
1155
+ "internalType": "uint256",
1156
+ "name": "_projectId",
1157
+ "type": "uint256"
1158
+ }
1159
+ ],
1160
+ "name": "resetAuctionDetails",
1161
+ "outputs": [],
1162
+ "stateMutability": "nonpayable",
1163
+ "type": "function"
1164
+ },
1165
+ {
1166
+ "inputs": [
1167
+ {
1168
+ "internalType": "uint256",
1169
+ "name": "_projectId",
1170
+ "type": "uint256"
1171
+ }
1172
+ ],
1173
+ "name": "setProjectMaxInvocations",
1174
+ "outputs": [],
1175
+ "stateMutability": "nonpayable",
1176
+ "type": "function"
1177
+ },
1178
+ {
1179
+ "inputs": [
1180
+ {
1181
+ "internalType": "uint256",
1182
+ "name": "_tokenId",
1183
+ "type": "uint256"
1184
+ }
1185
+ ],
1186
+ "name": "settleAuction",
1187
+ "outputs": [],
1188
+ "stateMutability": "nonpayable",
1189
+ "type": "function"
1190
+ },
1191
+ {
1192
+ "inputs": [
1193
+ {
1194
+ "internalType": "uint256",
1195
+ "name": "_settleTokenId",
1196
+ "type": "uint256"
1197
+ },
1198
+ {
1199
+ "internalType": "uint256",
1200
+ "name": "_bidTokenId",
1201
+ "type": "uint256"
1202
+ }
1203
+ ],
1204
+ "name": "settleAuctionAndCreateBid",
1205
+ "outputs": [],
1206
+ "stateMutability": "payable",
1207
+ "type": "function"
1208
+ },
1209
+ {
1210
+ "inputs": [
1211
+ {
1212
+ "internalType": "uint256",
1213
+ "name": "_projectId",
1214
+ "type": "uint256"
1215
+ }
1216
+ ],
1217
+ "name": "togglePurchaseToDisabled",
1218
+ "outputs": [],
1219
+ "stateMutability": "view",
1220
+ "type": "function"
1221
+ },
1222
+ {
1223
+ "inputs": [
1224
+ {
1225
+ "internalType": "uint256",
1226
+ "name": "_projectId",
1227
+ "type": "uint256"
1228
+ }
1229
+ ],
1230
+ "name": "tryPopulateNextToken",
1231
+ "outputs": [],
1232
+ "stateMutability": "nonpayable",
1233
+ "type": "function"
1234
+ },
1235
+ {
1236
+ "inputs": [
1237
+ {
1238
+ "internalType": "uint32",
1239
+ "name": "_minAuctionDurationSeconds",
1240
+ "type": "uint32"
1241
+ },
1242
+ {
1243
+ "internalType": "uint32",
1244
+ "name": "_maxAuctionDurationSeconds",
1245
+ "type": "uint32"
1246
+ }
1247
+ ],
1248
+ "name": "updateAllowableAuctionDurationSeconds",
1249
+ "outputs": [],
1250
+ "stateMutability": "nonpayable",
1251
+ "type": "function"
1252
+ },
1253
+ {
1254
+ "inputs": [
1255
+ {
1256
+ "internalType": "uint8",
1257
+ "name": "_minterMinBidIncrementPercentage",
1258
+ "type": "uint8"
1259
+ }
1260
+ ],
1261
+ "name": "updateMinterMinBidIncrementPercentage",
1262
+ "outputs": [],
1263
+ "stateMutability": "nonpayable",
1264
+ "type": "function"
1265
+ },
1266
+ {
1267
+ "inputs": [
1268
+ {
1269
+ "internalType": "uint32",
1270
+ "name": "_minterTimeBufferSeconds",
1271
+ "type": "uint32"
1272
+ }
1273
+ ],
1274
+ "name": "updateMinterTimeBufferSeconds",
1275
+ "outputs": [],
1276
+ "stateMutability": "nonpayable",
1277
+ "type": "function"
1278
+ },
1279
+ {
1280
+ "inputs": [
1281
+ {
1282
+ "internalType": "uint16",
1283
+ "name": "_minterRefundGasLimit",
1284
+ "type": "uint16"
1285
+ }
1286
+ ],
1287
+ "name": "updateRefundGasLimit",
1288
+ "outputs": [],
1289
+ "stateMutability": "nonpayable",
1290
+ "type": "function"
1291
+ },
1292
+ {
1293
+ "inputs": [],
1294
+ "name": "weth",
1295
+ "outputs": [
1296
+ {
1297
+ "internalType": "contract IWETH",
1298
+ "name": "",
1299
+ "type": "address"
1300
+ }
1301
+ ],
1302
+ "stateMutability": "view",
1303
+ "type": "function"
1304
+ }
1305
+ ],
1306
+ "bytecode": "0x610140604052600280546001600160781b0319166e7530000000780500282072000002581790553480156200003357600080fd5b506040516200350638038062003506833981016040819052620000569162000304565b600160005582620000678162000166565b1515608052506001600160a01b0380841660a081905260c081905290831660e0819052610100819052604080516392a10f8360e01b815290516392a10f839160048082019260209290919082900301816000875af1158015620000ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f491906200034e565b6001600160a01b031614620001505760405162461bcd60e51b815260206004820152601860248201527f496c6c6567616c20636f6e74726163742070616972696e67000000000000000060448201526064015b60405180910390fd5b6001600160a01b03166101205250620003a49050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690620001ca90859062000373565b6000604051808303816000865af19150503d806000811462000209576040519150601f19603f3d011682016040523d82523d6000602084013e6200020e565b606091505b509150915081620002705760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840162000147565b805160c0819003620002885750600095945050505050565b80610100036200029e5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640162000147565b80516001600160a01b0381168114620002ff57600080fd5b919050565b6000806000606084860312156200031a57600080fd5b6200032584620002e7565b92506200033560208501620002e7565b91506200034560408501620002e7565b90509250925092565b6000602082840312156200036157600080fd5b6200036c82620002e7565b9392505050565b6000825160005b818110156200039657602081860181015185830152016200037a565b506000920191825250919050565b60805160a05160c05160e05161010051610120516130be62000448600039600081816102c001528181611f100152611fa5015260006122ec015260006106cd015260008181610b4b01528181611a2b0152818161202d015281816121080152818161220f0152818161244901526124ed0152600081816104eb01528181610f7d01528181610ff4015261141801526000818161069901526125ca01526130be6000f3fe6080604052600436106101815760003560e01c806363212058116100d25780636321205814610443578063659dd2b414610463578063722a094114610476578063774159c614610496578063891407c0146104c657806392a10f83146104d957806394211b661461050d578063bc55629814610520578063c71b1b7114610553578063d3ddabe614610648578063db6921b214610687578063dd85582f146106bb578063e9d1e8ac146106ef578063ef84d01d14610726578063efef39a114610746578063f7bd4b881461075457600080fd5b80610f1d14610186578063040fa13e1461019b5780630d3f3325146101bb5780631607c995146101ee578063217748bb1461020e5780632aedc28e1461022e5780632e9936111461024e578063397eb9a21461026e5780633a476a331461028e5780633fc8cef3146102ae57806340d1397e146102fa57806344644e861461031a57806345cda3771461033a578063462add461461036757806356690aaf146103a757806363076680146103de575b600080fd5b610199610194366004612a55565b610774565b005b3480156101a757600080fd5b506101996101b6366004612a6e565b610a11565b3480156101c757600080fd5b506101db6101d6366004612a55565b610abf565b6040519081526020015b60405180910390f35b3480156101fa57600080fd5b50610199610209366004612a92565b610b1f565b34801561021a57600080fd5b50610199610229366004612acd565b610d51565b34801561023a57600080fd5b50610199610249366004612a55565b610dc4565b34801561025a57600080fd5b50610199610269366004612a55565b610e2a565b34801561027a57600080fd5b50610199610289366004612a55565b61106e565b34801561029a57600080fd5b506101996102a9366004612ae8565b6110de565b3480156102ba57600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e5565b34801561030657600080fd5b50610199610315366004612a55565b6112c8565b34801561032657600080fd5b50610199610335366004612b2f565b611310565b34801561034657600080fd5b5061035a610355366004612a55565b6114b4565b6040516101e59190612bac565b34801561037357600080fd5b50610397610382366004612a55565b60009081526001602052604090205460ff1690565b60405190151581526020016101e5565b3480156103b357600080fd5b506101db6103c2366004612a55565b600090815260016020526040902054610100900462ffffff1690565b3480156103ea57600080fd5b506002546040805163ffffffff8084168252600160201b840481166020830152600160401b840460ff1692820192909252600160481b83049091166060820152600160681b90910461ffff16608082015260a0016101e5565b34801561044f57600080fd5b5061019961045e366004612bba565b61158f565b610199610471366004612a55565b6115f9565b34801561048257600080fd5b506101db610491366004612a55565b611605565b3480156104a257600080fd5b506104b66104b1366004612a55565b611692565b6040516101e59493929190612c23565b6101db6104d4366004612c5d565b611778565b3480156104e557600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b61019961051b366004612a92565b6117b7565b34801561052c57600080fd5b5061054061053b366004612a55565b611832565b6040516101e59796959493929190612c89565b34801561055f57600080fd5b5061063461056e366004612a55565b600160208181526000928352604092839020805492810154845160c081018652600283015481526003830154938101939093526004909101546001600160a01b038116948301949094526001600160401b03600160a01b85048116606084015260ff600160e01b8604811615156080850152600160e81b9095048516151560a084015284841694610100850462ffffff90811695600160201b810490931694600160601b840463ffffffff1694600160801b850490921693600160981b90049092169188565b6040516101e5989796959493929190612ce1565b34801561065457600080fd5b5061067a6040518060400160405280600681526020016576302e302e3160d01b81525081565b6040516101e59190612d42565b34801561069357600080fd5b506103977f000000000000000000000000000000000000000000000000000000000000000081565b3480156106c757600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b3480156106fb57600080fd5b5061067a6040518060400160405280600b81526020016a04d696e74657253454156360ac1b81525081565b34801561073257600080fd5b50610199610741366004612d55565b61192b565b6101db6104d4366004612a55565b34801561076057600080fd5b5061019961076f366004612a55565b6119ff565b60026000540361079f5760405162461bcd60e51b815260040161079690612d88565b60405180910390fd5b600260009081556107b3620f424083612deb565b60008181526001602052604090206004810154919250906002820190600160e81b900460ff1615806107f057506002810154600160e01b900460ff165b15610807576107ff8385611b18565b505050610a09565b805484146108575760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e20494420646f6573206e6f74206d617463682061756374696f6e006044820152606401610796565b600281015442600160a01b9091046001600160401b0316116108b35760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb88185b1c9958591e48195b991959605a1b6044820152606401610796565b6002546064906108cd90600160401b900460ff1682612dff565b60ff1682600101546108df9190612e18565b6108e99190612deb565b3410156109295760405162461bcd60e51b815260206004820152600e60248201526d42696420697320746f6f206c6f7760901b6044820152606401610796565b6001810180546002808401805434909455336001600160a01b031985161790555490916001600160a01b03169060009061097090600160481b900463ffffffff1642612e2f565b6002850154909150600160a01b90046001600160401b03168111156109c15761099881611e38565b8460020160146101000a8154816001600160401b0302191690836001600160401b031602179055505b6109cb8284611ea4565b604051348152339088907fb8d756f2d1da4663767eb4d559780ace84f2f65a421a60ddcb47e8b2e5d2fd269060200160405180910390a35050505050505b506001600055565b610a21630207d09f60e11b612016565b611b588161ffff161015610a685760405162461bcd60e51b815260206004820152600e60248201526d04f6e6c792067746520375f3030360941b6044820152606401610796565b6002805461ffff60681b1916600160681b61ffff8416908102919091179091556040519081527f75e41c6674c3f850ee01caa6856c98e6e7d104eb52a7e446aaadb9026114762f906020015b60405180910390a150565b600081815260016020526040812060048101546002820190600160e81b900460ff168015610b015750600281015442600160a01b9091046001600160401b0316115b15610b0e57549392505050565b610b1784611605565b949350505050565b610b28826120f2565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb69190612e52565b5092955092935050505081831115610c565760405162461bcd60e51b815260206004820152605760248201527f43616e6e6f7420696e6372656173652070726f6a656374206d617820696e766f60448201527f636174696f6e732061626f766520636f726520636f6e7472616374207365742060648201527670726f6a656374206d617820696e766f636174696f6e7360481b608482015260a401610796565b80831015610cd85760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207365742070726f6a656374206d617820696e766f636174696f60448201527f6e7320746f206c657373207468616e2063757272656e7420696e766f636174696064820152626f6e7360e81b608482015260a401610796565b60008481526001602052604090819020805460ff1962ffffff8716610100021663ffffffff19909116178386141790555184907f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b190610d3a9086815260200190565b60405180910390a2610d4b846121c9565b50505050565b610d6163217748bb60e01b612016565b610d708163ffffffff166123f3565b6002805463ffffffff60481b1916600160481b63ffffffff8416908102919091179091556040519081527f8b3c10d428bd990a6450cefb1c55333a8e7ad39e44e310574b6357014c8fcbae90602001610ab4565b610dd581631576e14760e11b612433565b60008181526001602081905260408083208054600160201b600160801b031916815591820183905551909183917f2de6b284414d2e6b72bcc8d8d4de934e3f6410660a8f677c5c978f17f9cc2a929190a25050565b600260005403610e4c5760405162461bcd60e51b815260040161079690612d88565b60026000908155610e60620f424083612deb565b60008181526001602052604090206004810154919250906002820190600160e81b900460ff16610ecc5760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081a5b9a5d1a585b1a5e9959604a1b6044820152606401610796565b6002810154600160e01b900460ff1680610ee7575080548414155b15610ef457505050610a09565b6002810154600160a01b90046001600160401b03164211610f4f5760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb881b9bdd081e595d08195b991959605a1b6044820152606401610796565b60028101805460ff60e01b198116600160e01b179091556040516323b872dd60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116926323b872dd92610fb792309216908990600401612eb1565b600060405180830381600087803b158015610fd157600080fd5b505af1158015610fe5573d6000803e3d6000fd5b505050506110188382600101547f00000000000000000000000000000000000000000000000000000000000000006125b0565b600281015460018201546040519081526001600160a01b039091169085907fc9f72b276a388619c6d185d146697036241880c36654b1a3ffdad07c24038d999060200160405180910390a3505050506001600055565b6002600054036110905760405162461bcd60e51b815260040161079690612d88565b600260005561109e816120f2565b60008181526001602052604090206110b99060010154151590565b6110d55760405162461bcd60e51b815260040161079690612ed5565b610a09816121c9565b6110e7846120f2565b6110f0816123f3565b600084815260016020526040902083158061110a57508342105b6111555760405162461bcd60e51b815260206004820152601c60248201527b04f6e6c79206675747572652073746172742074696d6573206f7220360241b6044820152606401610796565b60025463ffffffff16831080159061117c5750600254600160201b900463ffffffff168311155b6111c85760405162461bcd60e51b815260206004820152601d60248201527f41756374696f6e206475726174696f6e206f7574206f662072616e67650000006044820152606401610796565b6111d184611e38565b81546001600160401b0391909116600160201b0267ffffffffffffffff60201b19909116178155611201836129a1565b815463ffffffff91909116600160601b0263ffffffff60601b1990911617815560018101829055847f52eb09c86f36e610cdc9b4fe383f642315a6bc17f95b9c75ea5a07b3a9efc98761125386611e38565b61125c866129a1565b604080516001600160401b03909316835263ffffffff9091166020830152810185905260600160405180910390a28054610100900462ffffff161580156112a55750805460ff16155b156112b8576112b3856119ff565b6112c1565b6112c1856121c9565b5050505050565b6112d1816120f2565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610796565b611320632232274360e11b612016565b6000828152600160208190526040909120908101541561137f5760405162461bcd60e51b815260206004820152601a6024820152794f6e6c7920756e636f6e666967757265642070726f6a6563747360301b6044820152606401610796565b8054600160981b900460ff1615156001146113cc5760405162461bcd60e51b815260206004820152600d60248201526c2737903732bc3a103a37b5b2b760991b6044820152606401610796565b805460ff60981b1916808255600090600160801b900462ffffff166113f4620f424086612e18565b6113fe9190612e2f565b6040516323b872dd60e01b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd9061145190309087908690600401612eb1565b600060405180830381600087803b15801561146b57600080fd5b505af115801561147f573d6000803e3d6000fd5b50506040518692507f72c964697eaa3ff982b34de76acb1c22a1a21e65cdefd30040935a41e7e27cfe9150600090a250505050565b6114bc612a20565b50600081815260016020908152604091829020825160c0810184526002820154815260038201549281019290925260048101546001600160a01b038116938301939093526001600160401b03600160a01b840416606083015260ff600160e01b8404811615156080840152600160e81b909304909216151560a082018190529091906115895760405162461bcd60e51b815260206004820152601c60248201527b139bc8185d58dd1a5bdb88195e1a5cdd1cc81bdb881c1c9bda9958dd60221b6044820152606401610796565b50919050565b61159f630c64240b60e31b612016565b6115ab8160ff166123f3565b6002805460ff60401b1916600160401b60ff8416908102919091179091556040519081527f6dca893b5a172fa6377b0686bda5877993bb72a8631716ed9529646c00df011390602001610ab4565b61160281610774565b50565b60008181526001602052604081208054600160981b900460ff166116665760405162461bcd60e51b815260206004820152601860248201527713995e1d081d1bdad95b881b9bdd081c1bdc1d5b185d195960421b6044820152606401610796565b8054600160801b900462ffffff16611681620f424085612e18565b61168b9190612e2f565b9392505050565b60008181526001602052604081208190606090829060028101826116b98360010154151590565b6002830154909150600090600160e81b900460ff1680156116ed57506002830154600160a01b90046001600160401b031642105b905081806116f85750805b9750871561174b5780156117435760025460649061172090600160401b900460ff1682612dff565b60ff1684600101546117329190612e18565b61173c9190612deb565b965061174b565b836001015496505b6040518060400160405280600381526020016208aa8960eb1b815250955060009450505050509193509193565b60405162461bcd60e51b815260206004820152601160248201527024b730b1ba34bb3290333ab731ba34b7b760791b6044820152600090606401610796565b6117c4620f424082612deb565b6117d1620f424084612deb565b1461181c5760405162461bcd60e51b815260206004820152601b60248201527a13db9b1e481d1bdad95b9cc81a5b881cd85b59481c1c9bda9958dd602a1b6044820152606401610796565b61182582610e2a565b61182e81610774565b5050565b600080600080600080611843612a20565b6000888152600160208190526040909120805491810154610100830462ffffff169950600160201b83046001600160401b03169850600160601b830463ffffffff1697509550600160981b90910460ff169350836118a25760006118b1565b8054600160801b900462ffffff165b6040805160c08101825260028401548152600384015460208201526004909301546001600160a01b038116918401919091526001600160401b03600160a01b820416606084015260ff600160e01b8204811615156080850152600160e81b90910416151560a0830152979996985094969395929492915050565b61193b63ef84d01d60e01b612016565b61194a8263ffffffff166123f3565b8163ffffffff168163ffffffff16116119975760405162461bcd60e51b815260206004820152600f60248201526e27b7363c9036b0bc1033ba1036b4b760891b6044820152606401610796565b6002805463ffffffff84811667ffffffffffffffff199092168217600160201b918516918202179092556040805191825260208201929092527f77182147adba96262b90c4e62c021b8c0dd7d6dc99f4869b1725a0b635160bda910160405180910390a15050565b611a08816120f2565b604051630ea5613f60e01b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015611a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a969190612e52565b50505060008681526001602052604090819020805460ff1962ffffff8616610100021663ffffffff1990911617858514179055519194509192508491507f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b190611b029085815260200190565b60405180910390a2611b13836121c9565b505050565b600082815260016020526040902060028101611b378260010154151590565b611b535760405162461bcd60e51b815260040161079690612ed5565b8154600160201b90046001600160401b0316421015611bb25760405162461bcd60e51b815260206004820152601b60248201527a4f6e6c79206774652070726f6a6563742073746172742074696d6560281b6044820152606401610796565b6002810154600160e81b900460ff161580611bd857506002810154600160e01b900460ff165b611c235760405162461bcd60e51b815260206004820152601c60248201527b115e1a5cdd1a5b99c8185d58dd1a5bdb881b9bdd081cd95d1d1b195960221b6044820152606401610796565b8160010154341015611c725760405162461bcd60e51b8152602060048201526018602482015277125b9cdd59999a58da595b9d081a5b9a5d1a585b08189a5960421b6044820152606401610796565b8154600160981b900460ff16611cd65760405162461bcd60e51b8152602060048201526024808201527f4e6f206e65787420746f6b656e2c20636865636b206d617820696e766f636174604482015263696f6e7360e01b6064820152608401610796565b611ce3620f424084612f05565b8254600160801b900462ffffff1614611d3a5760405162461bcd60e51b8152602060048201526019602482015278125b98dbdc9c9958dd081d185c99d95d081d1bdad95b881251603a1b6044820152606401610796565b8154600090611d5f90611d5a90600160601b900463ffffffff1642612e2f565b611e38565b6040805160c081018252868152346020808301829052338385018190526001600160401b0386166060850181905260006080860152600160a090950194909452600289018a905560038901839055600489018054600160e81b6001600160e01b031990911667ffffffffffffffff60a01b19841617600160a01b87021761ffff60e01b1916179055885460ff60981b191689558451928352908201929092529293509186917fb7115a5b9cc0d3a150bfab50f439d52622d8be08e24159e4cf587328305445be910160405180910390a36112c1856121c9565b60006001600160401b03821115611ea05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610796565b5090565b6002546040516000916001600160a01b03851691600160681b90910461ffff1690849084818181858888f193505050503d8060008114611f00576040519150601f19603f3d011682016040523d82523d6000602084013e611f05565b606091505b5050905080611b13577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611f6957600080fd5b505af1158015611f7d573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038781166004830152602482018790527f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb925060440190506020604051808303816000875af1158015611ff2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190612f19565b60405163230448b160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b19061206690339030908690600401612f34565b6020604051808303816000875af1158015612085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a99190612f19565b6116025760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610796565b60405163a47d29cb60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015612157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217b9190612f61565b6001600160a01b0316336001600160a01b0316146116025760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610796565b60008181526001602052604090208054600160981b900460ff16156121ec575050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015612256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227a9190612e52565b505086549395509193505050610100900462ffffff16600061229c8383612a06565b90508084106122ad57505050505050565b845460ff60981b1916600160981b178555604051630d4d151360e01b815230600482018190526024820188905260448201526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630d4d1513906064016020604051808303816000875af1158015612335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123599190612f7e565b9050620f424081875462ffffff60801b1916600160801b9290910662ffffff1691909102178655600061238f620f424083612f05565b61239a906001612e2f565b90508381036123af57865460ff191660011787555b877fbc77c18848dfd92baff1e78ba638a5a232da169f2af2aadab8d9bf7a2bf026ca836040516123e191815260200190565b60405180910390a25050505050505050565b600081116116025760405162461bcd60e51b815260206004820152600d60248201526c4f6e6c79206e6f6e2d7a65726f60981b6044820152606401610796565b60405163a47d29cb60e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015612498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bc9190612f61565b6001600160a01b0316336001600160a01b03161480612569575060405163230448b160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b19061252690339030908690600401612f34565b6020604051808303816000875af1158015612545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125699190612f19565b61182e5760405162461bcd60e51b815260206004820152601860248201527713db9b1e48105c9d1a5cdd081bdc8810591b5a5b881050d360421b6044820152606401610796565b600082116125bd57505050565b60008060008060008060007f00000000000000000000000000000000000000000000000000000000000000001561272857604051638639415b60e01b8152600481018b9052602481018a905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa158015612640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126649190612f97565b969e50949c50909a50985091965091945090925090508115612721576040516001600160a01b038216908390600081818185875af1925050503d80600081146126c9576040519150601f19603f3d011682016040523d82523d6000602084013e6126ce565b606091505b505080995050886127215760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610796565b50506127a8565b604051638639415b60e01b8152600481018b9052602481018a90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612774573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612798919061301f565b949a509298509096509450925090505b851561284f576040516001600160a01b038616908790600081818185875af1925050503d80600081146127f7576040519150601f19603f3d011682016040523d82523d6000602084013e6127fc565b606091505b5050809750508661284f5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610796565b83156128ee576040516001600160a01b038416908590600081818185875af1925050503d806000811461289e576040519150601f19603f3d011682016040523d82523d6000602084013e6128a3565b606091505b505080975050866128ee5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610796565b8115612995576040516001600160a01b038216908390600081818185875af1925050503d806000811461293d576040519150601f19603f3d011682016040523d82523d6000602084013e612942565b606091505b505080975050866129955760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610796565b50505050505050505050565b600063ffffffff821115611ea05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610796565b6000818310612a155781612a17565b825b90505b92915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b600060208284031215612a6757600080fd5b5035919050565b600060208284031215612a8057600080fd5b813561ffff8116811461168b57600080fd5b60008060408385031215612aa557600080fd5b50508035926020909101359150565b803563ffffffff81168114612ac857600080fd5b919050565b600060208284031215612adf57600080fd5b612a1782612ab4565b60008060008060808587031215612afe57600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b038116811461160257600080fd5b60008060408385031215612b4257600080fd5b823591506020830135612b5481612b1a565b809150509250929050565b80518252602080820151908301526040808201516001600160a01b0316908301526060808201516001600160401b03169083015260808082015115159083015260a0908101511515910152565b60c08101612a1a8284612b5f565b600060208284031215612bcc57600080fd5b813560ff8116811461168b57600080fd5b6000815180845260005b81811015612c0357602081850181015186830182015201612be7565b506000602082860101526020601f19601f83011685010191505092915050565b8415158152836020820152608060408201526000612c446080830185612bdd565b905060018060a01b038316606083015295945050505050565b60008060408385031215612c7057600080fd5b8235612c7b81612b1a565b946020939093013593505050565b62ffffff88811682526001600160401b038816602083015263ffffffff87166040830152606082018690528415156080830152831660a08201526101808101612cd560c0830184612b5f565b98975050505050505050565b881515815262ffffff88811660208301526001600160401b038816604083015263ffffffff871660608301528516608082015283151560a082015260c081018390526101a08101612d3560e0830184612b5f565b9998505050505050505050565b602081526000612a176020830184612bdd565b60008060408385031215612d6857600080fd5b612d7183612ab4565b9150612d7f60208401612ab4565b90509250929050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082612dfa57612dfa612dbf565b500490565b60ff8181168382160190811115612a1a57612a1a612dd5565b8082028115828204841417612a1a57612a1a612dd5565b80820180821115612a1a57612a1a612dd5565b80518015158114612ac857600080fd5b60008060008060008060c08789031215612e6b57600080fd5b8651955060208701519450612e8260408801612e42565b9350612e9060608801612e42565b925060808701519150612ea560a08801612e42565b90509295509295509295565b6001600160a01b039384168152919092166020820152604081019190915260600190565b602080825260169082015275141c9bda9958dd081b9bdd0818dbdb999a59dd5c995960521b604082015260600190565b600082612f1457612f14612dbf565b500690565b600060208284031215612f2b57600080fd5b612a1782612e42565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b600060208284031215612f7357600080fd5b815161168b81612b1a565b600060208284031215612f9057600080fd5b5051919050565b600080600080600080600080610100898b031215612fb457600080fd5b885197506020890151612fc681612b1a565b60408a015160608b01519198509650612fde81612b1a565b60808a015160a08b01519196509450612ff681612b1a565b60c08a015160e08b0151919450925061300e81612b1a565b809150509295985092959890939650565b60008060008060008060c0878903121561303857600080fd5b86519550602087015161304a81612b1a565b60408801516060890151919650945061306281612b1a565b608088015160a0890151919450925061307a81612b1a565b80915050929550929550929556fea264697066735822122090996f39d3b6703e26e1559bbd90183279079ec89eb77c83f4c07d73ae6253d364736f6c63430008110033",
1307
+ "deployedBytecode": "0x6080604052600436106101815760003560e01c806363212058116100d25780636321205814610443578063659dd2b414610463578063722a094114610476578063774159c614610496578063891407c0146104c657806392a10f83146104d957806394211b661461050d578063bc55629814610520578063c71b1b7114610553578063d3ddabe614610648578063db6921b214610687578063dd85582f146106bb578063e9d1e8ac146106ef578063ef84d01d14610726578063efef39a114610746578063f7bd4b881461075457600080fd5b80610f1d14610186578063040fa13e1461019b5780630d3f3325146101bb5780631607c995146101ee578063217748bb1461020e5780632aedc28e1461022e5780632e9936111461024e578063397eb9a21461026e5780633a476a331461028e5780633fc8cef3146102ae57806340d1397e146102fa57806344644e861461031a57806345cda3771461033a578063462add461461036757806356690aaf146103a757806363076680146103de575b600080fd5b610199610194366004612a55565b610774565b005b3480156101a757600080fd5b506101996101b6366004612a6e565b610a11565b3480156101c757600080fd5b506101db6101d6366004612a55565b610abf565b6040519081526020015b60405180910390f35b3480156101fa57600080fd5b50610199610209366004612a92565b610b1f565b34801561021a57600080fd5b50610199610229366004612acd565b610d51565b34801561023a57600080fd5b50610199610249366004612a55565b610dc4565b34801561025a57600080fd5b50610199610269366004612a55565b610e2a565b34801561027a57600080fd5b50610199610289366004612a55565b61106e565b34801561029a57600080fd5b506101996102a9366004612ae8565b6110de565b3480156102ba57600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101e5565b34801561030657600080fd5b50610199610315366004612a55565b6112c8565b34801561032657600080fd5b50610199610335366004612b2f565b611310565b34801561034657600080fd5b5061035a610355366004612a55565b6114b4565b6040516101e59190612bac565b34801561037357600080fd5b50610397610382366004612a55565b60009081526001602052604090205460ff1690565b60405190151581526020016101e5565b3480156103b357600080fd5b506101db6103c2366004612a55565b600090815260016020526040902054610100900462ffffff1690565b3480156103ea57600080fd5b506002546040805163ffffffff8084168252600160201b840481166020830152600160401b840460ff1692820192909252600160481b83049091166060820152600160681b90910461ffff16608082015260a0016101e5565b34801561044f57600080fd5b5061019961045e366004612bba565b61158f565b610199610471366004612a55565b6115f9565b34801561048257600080fd5b506101db610491366004612a55565b611605565b3480156104a257600080fd5b506104b66104b1366004612a55565b611692565b6040516101e59493929190612c23565b6101db6104d4366004612c5d565b611778565b3480156104e557600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b61019961051b366004612a92565b6117b7565b34801561052c57600080fd5b5061054061053b366004612a55565b611832565b6040516101e59796959493929190612c89565b34801561055f57600080fd5b5061063461056e366004612a55565b600160208181526000928352604092839020805492810154845160c081018652600283015481526003830154938101939093526004909101546001600160a01b038116948301949094526001600160401b03600160a01b85048116606084015260ff600160e01b8604811615156080850152600160e81b9095048516151560a084015284841694610100850462ffffff90811695600160201b810490931694600160601b840463ffffffff1694600160801b850490921693600160981b90049092169188565b6040516101e5989796959493929190612ce1565b34801561065457600080fd5b5061067a6040518060400160405280600681526020016576302e302e3160d01b81525081565b6040516101e59190612d42565b34801561069357600080fd5b506103977f000000000000000000000000000000000000000000000000000000000000000081565b3480156106c757600080fd5b506102e27f000000000000000000000000000000000000000000000000000000000000000081565b3480156106fb57600080fd5b5061067a6040518060400160405280600b81526020016a04d696e74657253454156360ac1b81525081565b34801561073257600080fd5b50610199610741366004612d55565b61192b565b6101db6104d4366004612a55565b34801561076057600080fd5b5061019961076f366004612a55565b6119ff565b60026000540361079f5760405162461bcd60e51b815260040161079690612d88565b60405180910390fd5b600260009081556107b3620f424083612deb565b60008181526001602052604090206004810154919250906002820190600160e81b900460ff1615806107f057506002810154600160e01b900460ff165b15610807576107ff8385611b18565b505050610a09565b805484146108575760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e20494420646f6573206e6f74206d617463682061756374696f6e006044820152606401610796565b600281015442600160a01b9091046001600160401b0316116108b35760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb88185b1c9958591e48195b991959605a1b6044820152606401610796565b6002546064906108cd90600160401b900460ff1682612dff565b60ff1682600101546108df9190612e18565b6108e99190612deb565b3410156109295760405162461bcd60e51b815260206004820152600e60248201526d42696420697320746f6f206c6f7760901b6044820152606401610796565b6001810180546002808401805434909455336001600160a01b031985161790555490916001600160a01b03169060009061097090600160481b900463ffffffff1642612e2f565b6002850154909150600160a01b90046001600160401b03168111156109c15761099881611e38565b8460020160146101000a8154816001600160401b0302191690836001600160401b031602179055505b6109cb8284611ea4565b604051348152339088907fb8d756f2d1da4663767eb4d559780ace84f2f65a421a60ddcb47e8b2e5d2fd269060200160405180910390a35050505050505b506001600055565b610a21630207d09f60e11b612016565b611b588161ffff161015610a685760405162461bcd60e51b815260206004820152600e60248201526d04f6e6c792067746520375f3030360941b6044820152606401610796565b6002805461ffff60681b1916600160681b61ffff8416908102919091179091556040519081527f75e41c6674c3f850ee01caa6856c98e6e7d104eb52a7e446aaadb9026114762f906020015b60405180910390a150565b600081815260016020526040812060048101546002820190600160e81b900460ff168015610b015750600281015442600160a01b9091046001600160401b0316115b15610b0e57549392505050565b610b1784611605565b949350505050565b610b28826120f2565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015610b92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb69190612e52565b5092955092935050505081831115610c565760405162461bcd60e51b815260206004820152605760248201527f43616e6e6f7420696e6372656173652070726f6a656374206d617820696e766f60448201527f636174696f6e732061626f766520636f726520636f6e7472616374207365742060648201527670726f6a656374206d617820696e766f636174696f6e7360481b608482015260a401610796565b80831015610cd85760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207365742070726f6a656374206d617820696e766f636174696f60448201527f6e7320746f206c657373207468616e2063757272656e7420696e766f636174696064820152626f6e7360e81b608482015260a401610796565b60008481526001602052604090819020805460ff1962ffffff8716610100021663ffffffff19909116178386141790555184907f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b190610d3a9086815260200190565b60405180910390a2610d4b846121c9565b50505050565b610d6163217748bb60e01b612016565b610d708163ffffffff166123f3565b6002805463ffffffff60481b1916600160481b63ffffffff8416908102919091179091556040519081527f8b3c10d428bd990a6450cefb1c55333a8e7ad39e44e310574b6357014c8fcbae90602001610ab4565b610dd581631576e14760e11b612433565b60008181526001602081905260408083208054600160201b600160801b031916815591820183905551909183917f2de6b284414d2e6b72bcc8d8d4de934e3f6410660a8f677c5c978f17f9cc2a929190a25050565b600260005403610e4c5760405162461bcd60e51b815260040161079690612d88565b60026000908155610e60620f424083612deb565b60008181526001602052604090206004810154919250906002820190600160e81b900460ff16610ecc5760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081a5b9a5d1a585b1a5e9959604a1b6044820152606401610796565b6002810154600160e01b900460ff1680610ee7575080548414155b15610ef457505050610a09565b6002810154600160a01b90046001600160401b03164211610f4f5760405162461bcd60e51b8152602060048201526015602482015274105d58dd1a5bdb881b9bdd081e595d08195b991959605a1b6044820152606401610796565b60028101805460ff60e01b198116600160e01b179091556040516323b872dd60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116926323b872dd92610fb792309216908990600401612eb1565b600060405180830381600087803b158015610fd157600080fd5b505af1158015610fe5573d6000803e3d6000fd5b505050506110188382600101547f00000000000000000000000000000000000000000000000000000000000000006125b0565b600281015460018201546040519081526001600160a01b039091169085907fc9f72b276a388619c6d185d146697036241880c36654b1a3ffdad07c24038d999060200160405180910390a3505050506001600055565b6002600054036110905760405162461bcd60e51b815260040161079690612d88565b600260005561109e816120f2565b60008181526001602052604090206110b99060010154151590565b6110d55760405162461bcd60e51b815260040161079690612ed5565b610a09816121c9565b6110e7846120f2565b6110f0816123f3565b600084815260016020526040902083158061110a57508342105b6111555760405162461bcd60e51b815260206004820152601c60248201527b04f6e6c79206675747572652073746172742074696d6573206f7220360241b6044820152606401610796565b60025463ffffffff16831080159061117c5750600254600160201b900463ffffffff168311155b6111c85760405162461bcd60e51b815260206004820152601d60248201527f41756374696f6e206475726174696f6e206f7574206f662072616e67650000006044820152606401610796565b6111d184611e38565b81546001600160401b0391909116600160201b0267ffffffffffffffff60201b19909116178155611201836129a1565b815463ffffffff91909116600160601b0263ffffffff60601b1990911617815560018101829055847f52eb09c86f36e610cdc9b4fe383f642315a6bc17f95b9c75ea5a07b3a9efc98761125386611e38565b61125c866129a1565b604080516001600160401b03909316835263ffffffff9091166020830152810185905260600160405180910390a28054610100900462ffffff161580156112a55750805460ff16155b156112b8576112b3856119ff565b6112c1565b6112c1856121c9565b5050505050565b6112d1816120f2565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610796565b611320632232274360e11b612016565b6000828152600160208190526040909120908101541561137f5760405162461bcd60e51b815260206004820152601a6024820152794f6e6c7920756e636f6e666967757265642070726f6a6563747360301b6044820152606401610796565b8054600160981b900460ff1615156001146113cc5760405162461bcd60e51b815260206004820152600d60248201526c2737903732bc3a103a37b5b2b760991b6044820152606401610796565b805460ff60981b1916808255600090600160801b900462ffffff166113f4620f424086612e18565b6113fe9190612e2f565b6040516323b872dd60e01b81529091506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906323b872dd9061145190309087908690600401612eb1565b600060405180830381600087803b15801561146b57600080fd5b505af115801561147f573d6000803e3d6000fd5b50506040518692507f72c964697eaa3ff982b34de76acb1c22a1a21e65cdefd30040935a41e7e27cfe9150600090a250505050565b6114bc612a20565b50600081815260016020908152604091829020825160c0810184526002820154815260038201549281019290925260048101546001600160a01b038116938301939093526001600160401b03600160a01b840416606083015260ff600160e01b8404811615156080840152600160e81b909304909216151560a082018190529091906115895760405162461bcd60e51b815260206004820152601c60248201527b139bc8185d58dd1a5bdb88195e1a5cdd1cc81bdb881c1c9bda9958dd60221b6044820152606401610796565b50919050565b61159f630c64240b60e31b612016565b6115ab8160ff166123f3565b6002805460ff60401b1916600160401b60ff8416908102919091179091556040519081527f6dca893b5a172fa6377b0686bda5877993bb72a8631716ed9529646c00df011390602001610ab4565b61160281610774565b50565b60008181526001602052604081208054600160981b900460ff166116665760405162461bcd60e51b815260206004820152601860248201527713995e1d081d1bdad95b881b9bdd081c1bdc1d5b185d195960421b6044820152606401610796565b8054600160801b900462ffffff16611681620f424085612e18565b61168b9190612e2f565b9392505050565b60008181526001602052604081208190606090829060028101826116b98360010154151590565b6002830154909150600090600160e81b900460ff1680156116ed57506002830154600160a01b90046001600160401b031642105b905081806116f85750805b9750871561174b5780156117435760025460649061172090600160401b900460ff1682612dff565b60ff1684600101546117329190612e18565b61173c9190612deb565b965061174b565b836001015496505b6040518060400160405280600381526020016208aa8960eb1b815250955060009450505050509193509193565b60405162461bcd60e51b815260206004820152601160248201527024b730b1ba34bb3290333ab731ba34b7b760791b6044820152600090606401610796565b6117c4620f424082612deb565b6117d1620f424084612deb565b1461181c5760405162461bcd60e51b815260206004820152601b60248201527a13db9b1e481d1bdad95b9cc81a5b881cd85b59481c1c9bda9958dd602a1b6044820152606401610796565b61182582610e2a565b61182e81610774565b5050565b600080600080600080611843612a20565b6000888152600160208190526040909120805491810154610100830462ffffff169950600160201b83046001600160401b03169850600160601b830463ffffffff1697509550600160981b90910460ff169350836118a25760006118b1565b8054600160801b900462ffffff165b6040805160c08101825260028401548152600384015460208201526004909301546001600160a01b038116918401919091526001600160401b03600160a01b820416606084015260ff600160e01b8204811615156080850152600160e81b90910416151560a0830152979996985094969395929492915050565b61193b63ef84d01d60e01b612016565b61194a8263ffffffff166123f3565b8163ffffffff168163ffffffff16116119975760405162461bcd60e51b815260206004820152600f60248201526e27b7363c9036b0bc1033ba1036b4b760891b6044820152606401610796565b6002805463ffffffff84811667ffffffffffffffff199092168217600160201b918516918202179092556040805191825260208201929092527f77182147adba96262b90c4e62c021b8c0dd7d6dc99f4869b1725a0b635160bda910160405180910390a15050565b611a08816120f2565b604051630ea5613f60e01b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015611a72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a969190612e52565b50505060008681526001602052604090819020805460ff1962ffffff8616610100021663ffffffff1990911617858514179055519194509192508491507f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b190611b029085815260200190565b60405180910390a2611b13836121c9565b505050565b600082815260016020526040902060028101611b378260010154151590565b611b535760405162461bcd60e51b815260040161079690612ed5565b8154600160201b90046001600160401b0316421015611bb25760405162461bcd60e51b815260206004820152601b60248201527a4f6e6c79206774652070726f6a6563742073746172742074696d6560281b6044820152606401610796565b6002810154600160e81b900460ff161580611bd857506002810154600160e01b900460ff165b611c235760405162461bcd60e51b815260206004820152601c60248201527b115e1a5cdd1a5b99c8185d58dd1a5bdb881b9bdd081cd95d1d1b195960221b6044820152606401610796565b8160010154341015611c725760405162461bcd60e51b8152602060048201526018602482015277125b9cdd59999a58da595b9d081a5b9a5d1a585b08189a5960421b6044820152606401610796565b8154600160981b900460ff16611cd65760405162461bcd60e51b8152602060048201526024808201527f4e6f206e65787420746f6b656e2c20636865636b206d617820696e766f636174604482015263696f6e7360e01b6064820152608401610796565b611ce3620f424084612f05565b8254600160801b900462ffffff1614611d3a5760405162461bcd60e51b8152602060048201526019602482015278125b98dbdc9c9958dd081d185c99d95d081d1bdad95b881251603a1b6044820152606401610796565b8154600090611d5f90611d5a90600160601b900463ffffffff1642612e2f565b611e38565b6040805160c081018252868152346020808301829052338385018190526001600160401b0386166060850181905260006080860152600160a090950194909452600289018a905560038901839055600489018054600160e81b6001600160e01b031990911667ffffffffffffffff60a01b19841617600160a01b87021761ffff60e01b1916179055885460ff60981b191689558451928352908201929092529293509186917fb7115a5b9cc0d3a150bfab50f439d52622d8be08e24159e4cf587328305445be910160405180910390a36112c1856121c9565b60006001600160401b03821115611ea05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610796565b5090565b6002546040516000916001600160a01b03851691600160681b90910461ffff1690849084818181858888f193505050503d8060008114611f00576040519150601f19603f3d011682016040523d82523d6000602084013e611f05565b606091505b5050905080611b13577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b158015611f6957600080fd5b505af1158015611f7d573d6000803e3d6000fd5b505060405163a9059cbb60e01b81526001600160a01b038781166004830152602482018790527f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb925060440190506020604051808303816000875af1158015611ff2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190612f19565b60405163230448b160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b19061206690339030908690600401612f34565b6020604051808303816000875af1158015612085573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a99190612f19565b6116025760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610796565b60405163a47d29cb60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015612157573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217b9190612f61565b6001600160a01b0316336001600160a01b0316146116025760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610796565b60008181526001602052604090208054600160981b900460ff16156121ec575050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015612256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227a9190612e52565b505086549395509193505050610100900462ffffff16600061229c8383612a06565b90508084106122ad57505050505050565b845460ff60981b1916600160981b178555604051630d4d151360e01b815230600482018190526024820188905260448201526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630d4d1513906064016020604051808303816000875af1158015612335573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123599190612f7e565b9050620f424081875462ffffff60801b1916600160801b9290910662ffffff1691909102178655600061238f620f424083612f05565b61239a906001612e2f565b90508381036123af57865460ff191660011787555b877fbc77c18848dfd92baff1e78ba638a5a232da169f2af2aadab8d9bf7a2bf026ca836040516123e191815260200190565b60405180910390a25050505050505050565b600081116116025760405162461bcd60e51b815260206004820152600d60248201526c4f6e6c79206e6f6e2d7a65726f60981b6044820152606401610796565b60405163a47d29cb60e01b8152600481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015612498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bc9190612f61565b6001600160a01b0316336001600160a01b03161480612569575060405163230448b160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b19061252690339030908690600401612f34565b6020604051808303816000875af1158015612545573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125699190612f19565b61182e5760405162461bcd60e51b815260206004820152601860248201527713db9b1e48105c9d1a5cdd081bdc8810591b5a5b881050d360421b6044820152606401610796565b600082116125bd57505050565b60008060008060008060007f00000000000000000000000000000000000000000000000000000000000000001561272857604051638639415b60e01b8152600481018b9052602481018a905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa158015612640573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126649190612f97565b969e50949c50909a50985091965091945090925090508115612721576040516001600160a01b038216908390600081818185875af1925050503d80600081146126c9576040519150601f19603f3d011682016040523d82523d6000602084013e6126ce565b606091505b505080995050886127215760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610796565b50506127a8565b604051638639415b60e01b8152600481018b9052602481018a90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612774573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612798919061301f565b949a509298509096509450925090505b851561284f576040516001600160a01b038616908790600081818185875af1925050503d80600081146127f7576040519150601f19603f3d011682016040523d82523d6000602084013e6127fc565b606091505b5050809750508661284f5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610796565b83156128ee576040516001600160a01b038416908590600081818185875af1925050503d806000811461289e576040519150601f19603f3d011682016040523d82523d6000602084013e6128a3565b606091505b505080975050866128ee5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610796565b8115612995576040516001600160a01b038216908390600081818185875af1925050503d806000811461293d576040519150601f19603f3d011682016040523d82523d6000602084013e612942565b606091505b505080975050866129955760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610796565b50505050505050505050565b600063ffffffff821115611ea05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608401610796565b6000818310612a155781612a17565b825b90505b92915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b600060208284031215612a6757600080fd5b5035919050565b600060208284031215612a8057600080fd5b813561ffff8116811461168b57600080fd5b60008060408385031215612aa557600080fd5b50508035926020909101359150565b803563ffffffff81168114612ac857600080fd5b919050565b600060208284031215612adf57600080fd5b612a1782612ab4565b60008060008060808587031215612afe57600080fd5b5050823594602084013594506040840135936060013592509050565b6001600160a01b038116811461160257600080fd5b60008060408385031215612b4257600080fd5b823591506020830135612b5481612b1a565b809150509250929050565b80518252602080820151908301526040808201516001600160a01b0316908301526060808201516001600160401b03169083015260808082015115159083015260a0908101511515910152565b60c08101612a1a8284612b5f565b600060208284031215612bcc57600080fd5b813560ff8116811461168b57600080fd5b6000815180845260005b81811015612c0357602081850181015186830182015201612be7565b506000602082860101526020601f19601f83011685010191505092915050565b8415158152836020820152608060408201526000612c446080830185612bdd565b905060018060a01b038316606083015295945050505050565b60008060408385031215612c7057600080fd5b8235612c7b81612b1a565b946020939093013593505050565b62ffffff88811682526001600160401b038816602083015263ffffffff87166040830152606082018690528415156080830152831660a08201526101808101612cd560c0830184612b5f565b98975050505050505050565b881515815262ffffff88811660208301526001600160401b038816604083015263ffffffff871660608301528516608082015283151560a082015260c081018390526101a08101612d3560e0830184612b5f565b9998505050505050505050565b602081526000612a176020830184612bdd565b60008060408385031215612d6857600080fd5b612d7183612ab4565b9150612d7f60208401612ab4565b90509250929050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082612dfa57612dfa612dbf565b500490565b60ff8181168382160190811115612a1a57612a1a612dd5565b8082028115828204841417612a1a57612a1a612dd5565b80820180821115612a1a57612a1a612dd5565b80518015158114612ac857600080fd5b60008060008060008060c08789031215612e6b57600080fd5b8651955060208701519450612e8260408801612e42565b9350612e9060608801612e42565b925060808701519150612ea560a08801612e42565b90509295509295509295565b6001600160a01b039384168152919092166020820152604081019190915260600190565b602080825260169082015275141c9bda9958dd081b9bdd0818dbdb999a59dd5c995960521b604082015260600190565b600082612f1457612f14612dbf565b500690565b600060208284031215612f2b57600080fd5b612a1782612e42565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b600060208284031215612f7357600080fd5b815161168b81612b1a565b600060208284031215612f9057600080fd5b5051919050565b600080600080600080600080610100898b031215612fb457600080fd5b885197506020890151612fc681612b1a565b60408a015160608b01519198509650612fde81612b1a565b60808a015160a08b01519196509450612ff681612b1a565b60c08a015160e08b0151919450925061300e81612b1a565b809150509295985092959890939650565b60008060008060008060c0878903121561303857600080fd5b86519550602087015161304a81612b1a565b60408801516060890151919650945061306281612b1a565b608088015160a0890151919450925061307a81612b1a565b80915050929550929550929556fea264697066735822122090996f39d3b6703e26e1559bbd90183279079ec89eb77c83f4c07d73ae6253d364736f6c63430008110033",
1308
+ "linkReferences": {},
1309
+ "deployedLinkReferences": {}
1310
+ }