@lukso/universalprofile-contracts 0.15.0-rc.0 → 0.15.0-rc.4

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.
@@ -0,0 +1,696 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "UniversalProfileInit",
4
+ "sourceName": "contracts/UniversalProfileInit.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "stateMutability": "nonpayable",
9
+ "type": "constructor"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "ERC725X_ContractDeploymentFailed",
14
+ "type": "error"
15
+ },
16
+ {
17
+ "inputs": [],
18
+ "name": "ERC725X_CreateOperationsRequireEmptyRecipientAddress",
19
+ "type": "error"
20
+ },
21
+ {
22
+ "inputs": [],
23
+ "name": "ERC725X_ExecuteParametersEmptyArray",
24
+ "type": "error"
25
+ },
26
+ {
27
+ "inputs": [],
28
+ "name": "ERC725X_ExecuteParametersLengthMismatch",
29
+ "type": "error"
30
+ },
31
+ {
32
+ "inputs": [
33
+ {
34
+ "internalType": "uint256",
35
+ "name": "balance",
36
+ "type": "uint256"
37
+ },
38
+ {
39
+ "internalType": "uint256",
40
+ "name": "value",
41
+ "type": "uint256"
42
+ }
43
+ ],
44
+ "name": "ERC725X_InsufficientBalance",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [],
49
+ "name": "ERC725X_MsgValueDisallowedInDelegateCall",
50
+ "type": "error"
51
+ },
52
+ {
53
+ "inputs": [],
54
+ "name": "ERC725X_MsgValueDisallowedInStaticCall",
55
+ "type": "error"
56
+ },
57
+ {
58
+ "inputs": [],
59
+ "name": "ERC725X_NoContractBytecodeProvided",
60
+ "type": "error"
61
+ },
62
+ {
63
+ "inputs": [
64
+ {
65
+ "internalType": "uint256",
66
+ "name": "operationTypeProvided",
67
+ "type": "uint256"
68
+ }
69
+ ],
70
+ "name": "ERC725X_UnknownOperationType",
71
+ "type": "error"
72
+ },
73
+ {
74
+ "inputs": [],
75
+ "name": "ERC725Y_DataKeysValuesEmptyArray",
76
+ "type": "error"
77
+ },
78
+ {
79
+ "inputs": [],
80
+ "name": "ERC725Y_DataKeysValuesLengthMismatch",
81
+ "type": "error"
82
+ },
83
+ {
84
+ "inputs": [
85
+ {
86
+ "internalType": "address",
87
+ "name": "caller",
88
+ "type": "address"
89
+ }
90
+ ],
91
+ "name": "LSP14CallerNotPendingOwner",
92
+ "type": "error"
93
+ },
94
+ {
95
+ "inputs": [],
96
+ "name": "LSP14CannotTransferOwnershipToSelf",
97
+ "type": "error"
98
+ },
99
+ {
100
+ "inputs": [],
101
+ "name": "LSP14MustAcceptOwnershipInSeparateTransaction",
102
+ "type": "error"
103
+ },
104
+ {
105
+ "inputs": [
106
+ {
107
+ "internalType": "uint256",
108
+ "name": "renounceOwnershipStart",
109
+ "type": "uint256"
110
+ },
111
+ {
112
+ "internalType": "uint256",
113
+ "name": "renounceOwnershipEnd",
114
+ "type": "uint256"
115
+ }
116
+ ],
117
+ "name": "LSP14NotInRenounceOwnershipInterval",
118
+ "type": "error"
119
+ },
120
+ {
121
+ "inputs": [
122
+ {
123
+ "internalType": "bool",
124
+ "name": "postCall",
125
+ "type": "bool"
126
+ },
127
+ {
128
+ "internalType": "bytes4",
129
+ "name": "returnedStatus",
130
+ "type": "bytes4"
131
+ }
132
+ ],
133
+ "name": "LSP20CallVerificationFailed",
134
+ "type": "error"
135
+ },
136
+ {
137
+ "inputs": [
138
+ {
139
+ "internalType": "bool",
140
+ "name": "postCall",
141
+ "type": "bool"
142
+ }
143
+ ],
144
+ "name": "LSP20CallingVerifierFailed",
145
+ "type": "error"
146
+ },
147
+ {
148
+ "inputs": [
149
+ {
150
+ "internalType": "address",
151
+ "name": "logicVerifier",
152
+ "type": "address"
153
+ }
154
+ ],
155
+ "name": "LSP20EOACannotVerifyCall",
156
+ "type": "error"
157
+ },
158
+ {
159
+ "inputs": [
160
+ {
161
+ "internalType": "bytes4",
162
+ "name": "functionSelector",
163
+ "type": "bytes4"
164
+ }
165
+ ],
166
+ "name": "NoExtensionFoundForFunctionSelector",
167
+ "type": "error"
168
+ },
169
+ {
170
+ "anonymous": false,
171
+ "inputs": [
172
+ {
173
+ "indexed": true,
174
+ "internalType": "uint256",
175
+ "name": "operationType",
176
+ "type": "uint256"
177
+ },
178
+ {
179
+ "indexed": true,
180
+ "internalType": "address",
181
+ "name": "contractAddress",
182
+ "type": "address"
183
+ },
184
+ {
185
+ "indexed": false,
186
+ "internalType": "uint256",
187
+ "name": "value",
188
+ "type": "uint256"
189
+ },
190
+ {
191
+ "indexed": true,
192
+ "internalType": "bytes32",
193
+ "name": "salt",
194
+ "type": "bytes32"
195
+ }
196
+ ],
197
+ "name": "ContractCreated",
198
+ "type": "event"
199
+ },
200
+ {
201
+ "anonymous": false,
202
+ "inputs": [
203
+ {
204
+ "indexed": true,
205
+ "internalType": "bytes32",
206
+ "name": "dataKey",
207
+ "type": "bytes32"
208
+ },
209
+ {
210
+ "indexed": false,
211
+ "internalType": "bytes",
212
+ "name": "dataValue",
213
+ "type": "bytes"
214
+ }
215
+ ],
216
+ "name": "DataChanged",
217
+ "type": "event"
218
+ },
219
+ {
220
+ "anonymous": false,
221
+ "inputs": [
222
+ {
223
+ "indexed": true,
224
+ "internalType": "uint256",
225
+ "name": "operationType",
226
+ "type": "uint256"
227
+ },
228
+ {
229
+ "indexed": true,
230
+ "internalType": "address",
231
+ "name": "target",
232
+ "type": "address"
233
+ },
234
+ {
235
+ "indexed": false,
236
+ "internalType": "uint256",
237
+ "name": "value",
238
+ "type": "uint256"
239
+ },
240
+ {
241
+ "indexed": true,
242
+ "internalType": "bytes4",
243
+ "name": "selector",
244
+ "type": "bytes4"
245
+ }
246
+ ],
247
+ "name": "Executed",
248
+ "type": "event"
249
+ },
250
+ {
251
+ "anonymous": false,
252
+ "inputs": [
253
+ {
254
+ "indexed": false,
255
+ "internalType": "uint8",
256
+ "name": "version",
257
+ "type": "uint8"
258
+ }
259
+ ],
260
+ "name": "Initialized",
261
+ "type": "event"
262
+ },
263
+ {
264
+ "anonymous": false,
265
+ "inputs": [],
266
+ "name": "OwnershipRenounced",
267
+ "type": "event"
268
+ },
269
+ {
270
+ "anonymous": false,
271
+ "inputs": [
272
+ {
273
+ "indexed": true,
274
+ "internalType": "address",
275
+ "name": "previousOwner",
276
+ "type": "address"
277
+ },
278
+ {
279
+ "indexed": true,
280
+ "internalType": "address",
281
+ "name": "newOwner",
282
+ "type": "address"
283
+ }
284
+ ],
285
+ "name": "OwnershipTransferStarted",
286
+ "type": "event"
287
+ },
288
+ {
289
+ "anonymous": false,
290
+ "inputs": [
291
+ {
292
+ "indexed": true,
293
+ "internalType": "address",
294
+ "name": "previousOwner",
295
+ "type": "address"
296
+ },
297
+ {
298
+ "indexed": true,
299
+ "internalType": "address",
300
+ "name": "newOwner",
301
+ "type": "address"
302
+ }
303
+ ],
304
+ "name": "OwnershipTransferred",
305
+ "type": "event"
306
+ },
307
+ {
308
+ "anonymous": false,
309
+ "inputs": [],
310
+ "name": "RenounceOwnershipStarted",
311
+ "type": "event"
312
+ },
313
+ {
314
+ "anonymous": false,
315
+ "inputs": [
316
+ {
317
+ "indexed": true,
318
+ "internalType": "address",
319
+ "name": "from",
320
+ "type": "address"
321
+ },
322
+ {
323
+ "indexed": true,
324
+ "internalType": "uint256",
325
+ "name": "value",
326
+ "type": "uint256"
327
+ },
328
+ {
329
+ "indexed": true,
330
+ "internalType": "bytes32",
331
+ "name": "typeId",
332
+ "type": "bytes32"
333
+ },
334
+ {
335
+ "indexed": false,
336
+ "internalType": "bytes",
337
+ "name": "receivedData",
338
+ "type": "bytes"
339
+ },
340
+ {
341
+ "indexed": false,
342
+ "internalType": "bytes",
343
+ "name": "returnedValue",
344
+ "type": "bytes"
345
+ }
346
+ ],
347
+ "name": "UniversalReceiver",
348
+ "type": "event"
349
+ },
350
+ {
351
+ "stateMutability": "payable",
352
+ "type": "fallback"
353
+ },
354
+ {
355
+ "inputs": [],
356
+ "name": "RENOUNCE_OWNERSHIP_CONFIRMATION_DELAY",
357
+ "outputs": [
358
+ {
359
+ "internalType": "uint256",
360
+ "name": "",
361
+ "type": "uint256"
362
+ }
363
+ ],
364
+ "stateMutability": "view",
365
+ "type": "function"
366
+ },
367
+ {
368
+ "inputs": [],
369
+ "name": "RENOUNCE_OWNERSHIP_CONFIRMATION_PERIOD",
370
+ "outputs": [
371
+ {
372
+ "internalType": "uint256",
373
+ "name": "",
374
+ "type": "uint256"
375
+ }
376
+ ],
377
+ "stateMutability": "view",
378
+ "type": "function"
379
+ },
380
+ {
381
+ "inputs": [],
382
+ "name": "VERSION",
383
+ "outputs": [
384
+ {
385
+ "internalType": "string",
386
+ "name": "",
387
+ "type": "string"
388
+ }
389
+ ],
390
+ "stateMutability": "view",
391
+ "type": "function"
392
+ },
393
+ {
394
+ "inputs": [],
395
+ "name": "acceptOwnership",
396
+ "outputs": [],
397
+ "stateMutability": "nonpayable",
398
+ "type": "function"
399
+ },
400
+ {
401
+ "inputs": [
402
+ {
403
+ "internalType": "bytes[]",
404
+ "name": "data",
405
+ "type": "bytes[]"
406
+ }
407
+ ],
408
+ "name": "batchCalls",
409
+ "outputs": [
410
+ {
411
+ "internalType": "bytes[]",
412
+ "name": "results",
413
+ "type": "bytes[]"
414
+ }
415
+ ],
416
+ "stateMutability": "nonpayable",
417
+ "type": "function"
418
+ },
419
+ {
420
+ "inputs": [
421
+ {
422
+ "internalType": "uint256",
423
+ "name": "operationType",
424
+ "type": "uint256"
425
+ },
426
+ {
427
+ "internalType": "address",
428
+ "name": "target",
429
+ "type": "address"
430
+ },
431
+ {
432
+ "internalType": "uint256",
433
+ "name": "value",
434
+ "type": "uint256"
435
+ },
436
+ {
437
+ "internalType": "bytes",
438
+ "name": "data",
439
+ "type": "bytes"
440
+ }
441
+ ],
442
+ "name": "execute",
443
+ "outputs": [
444
+ {
445
+ "internalType": "bytes",
446
+ "name": "",
447
+ "type": "bytes"
448
+ }
449
+ ],
450
+ "stateMutability": "payable",
451
+ "type": "function"
452
+ },
453
+ {
454
+ "inputs": [
455
+ {
456
+ "internalType": "uint256[]",
457
+ "name": "operationsType",
458
+ "type": "uint256[]"
459
+ },
460
+ {
461
+ "internalType": "address[]",
462
+ "name": "targets",
463
+ "type": "address[]"
464
+ },
465
+ {
466
+ "internalType": "uint256[]",
467
+ "name": "values",
468
+ "type": "uint256[]"
469
+ },
470
+ {
471
+ "internalType": "bytes[]",
472
+ "name": "datas",
473
+ "type": "bytes[]"
474
+ }
475
+ ],
476
+ "name": "executeBatch",
477
+ "outputs": [
478
+ {
479
+ "internalType": "bytes[]",
480
+ "name": "",
481
+ "type": "bytes[]"
482
+ }
483
+ ],
484
+ "stateMutability": "payable",
485
+ "type": "function"
486
+ },
487
+ {
488
+ "inputs": [
489
+ {
490
+ "internalType": "bytes32",
491
+ "name": "dataKey",
492
+ "type": "bytes32"
493
+ }
494
+ ],
495
+ "name": "getData",
496
+ "outputs": [
497
+ {
498
+ "internalType": "bytes",
499
+ "name": "dataValue",
500
+ "type": "bytes"
501
+ }
502
+ ],
503
+ "stateMutability": "view",
504
+ "type": "function"
505
+ },
506
+ {
507
+ "inputs": [
508
+ {
509
+ "internalType": "bytes32[]",
510
+ "name": "dataKeys",
511
+ "type": "bytes32[]"
512
+ }
513
+ ],
514
+ "name": "getDataBatch",
515
+ "outputs": [
516
+ {
517
+ "internalType": "bytes[]",
518
+ "name": "dataValues",
519
+ "type": "bytes[]"
520
+ }
521
+ ],
522
+ "stateMutability": "view",
523
+ "type": "function"
524
+ },
525
+ {
526
+ "inputs": [
527
+ {
528
+ "internalType": "address",
529
+ "name": "initialOwner",
530
+ "type": "address"
531
+ }
532
+ ],
533
+ "name": "initialize",
534
+ "outputs": [],
535
+ "stateMutability": "payable",
536
+ "type": "function"
537
+ },
538
+ {
539
+ "inputs": [
540
+ {
541
+ "internalType": "bytes32",
542
+ "name": "dataHash",
543
+ "type": "bytes32"
544
+ },
545
+ {
546
+ "internalType": "bytes",
547
+ "name": "signature",
548
+ "type": "bytes"
549
+ }
550
+ ],
551
+ "name": "isValidSignature",
552
+ "outputs": [
553
+ {
554
+ "internalType": "bytes4",
555
+ "name": "returnedStatus",
556
+ "type": "bytes4"
557
+ }
558
+ ],
559
+ "stateMutability": "view",
560
+ "type": "function"
561
+ },
562
+ {
563
+ "inputs": [],
564
+ "name": "owner",
565
+ "outputs": [
566
+ {
567
+ "internalType": "address",
568
+ "name": "",
569
+ "type": "address"
570
+ }
571
+ ],
572
+ "stateMutability": "view",
573
+ "type": "function"
574
+ },
575
+ {
576
+ "inputs": [],
577
+ "name": "pendingOwner",
578
+ "outputs": [
579
+ {
580
+ "internalType": "address",
581
+ "name": "",
582
+ "type": "address"
583
+ }
584
+ ],
585
+ "stateMutability": "view",
586
+ "type": "function"
587
+ },
588
+ {
589
+ "inputs": [],
590
+ "name": "renounceOwnership",
591
+ "outputs": [],
592
+ "stateMutability": "nonpayable",
593
+ "type": "function"
594
+ },
595
+ {
596
+ "inputs": [
597
+ {
598
+ "internalType": "bytes32",
599
+ "name": "dataKey",
600
+ "type": "bytes32"
601
+ },
602
+ {
603
+ "internalType": "bytes",
604
+ "name": "dataValue",
605
+ "type": "bytes"
606
+ }
607
+ ],
608
+ "name": "setData",
609
+ "outputs": [],
610
+ "stateMutability": "payable",
611
+ "type": "function"
612
+ },
613
+ {
614
+ "inputs": [
615
+ {
616
+ "internalType": "bytes32[]",
617
+ "name": "dataKeys",
618
+ "type": "bytes32[]"
619
+ },
620
+ {
621
+ "internalType": "bytes[]",
622
+ "name": "dataValues",
623
+ "type": "bytes[]"
624
+ }
625
+ ],
626
+ "name": "setDataBatch",
627
+ "outputs": [],
628
+ "stateMutability": "payable",
629
+ "type": "function"
630
+ },
631
+ {
632
+ "inputs": [
633
+ {
634
+ "internalType": "bytes4",
635
+ "name": "interfaceId",
636
+ "type": "bytes4"
637
+ }
638
+ ],
639
+ "name": "supportsInterface",
640
+ "outputs": [
641
+ {
642
+ "internalType": "bool",
643
+ "name": "",
644
+ "type": "bool"
645
+ }
646
+ ],
647
+ "stateMutability": "view",
648
+ "type": "function"
649
+ },
650
+ {
651
+ "inputs": [
652
+ {
653
+ "internalType": "address",
654
+ "name": "pendingNewOwner",
655
+ "type": "address"
656
+ }
657
+ ],
658
+ "name": "transferOwnership",
659
+ "outputs": [],
660
+ "stateMutability": "nonpayable",
661
+ "type": "function"
662
+ },
663
+ {
664
+ "inputs": [
665
+ {
666
+ "internalType": "bytes32",
667
+ "name": "typeId",
668
+ "type": "bytes32"
669
+ },
670
+ {
671
+ "internalType": "bytes",
672
+ "name": "receivedData",
673
+ "type": "bytes"
674
+ }
675
+ ],
676
+ "name": "universalReceiver",
677
+ "outputs": [
678
+ {
679
+ "internalType": "bytes",
680
+ "name": "returnedValues",
681
+ "type": "bytes"
682
+ }
683
+ ],
684
+ "stateMutability": "payable",
685
+ "type": "function"
686
+ },
687
+ {
688
+ "stateMutability": "payable",
689
+ "type": "receive"
690
+ }
691
+ ],
692
+ "bytecode": "0x60806040523480156200001157600080fd5b506200001c62000022565b620000e3565b600054610100900460ff16156200008f5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e1576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b613ae680620000f36000396000f3fe6080604052600436106101485760003560e01c806379ba5097116100c0578063dedff9c611610074578063ead3fbdf11610059578063ead3fbdf14610239578063f2fde38b14610436578063ffa1ad741461045657610193565b8063dedff9c6146103f8578063e30c39781461041857610193565b80638da5cb5b116100a55780638da5cb5b1461039a57806397902421146103d2578063c4d66de8146103e557610193565b806379ba5097146103725780637f23690c1461038757610193565b806344c028fe116101175780636963d438116100fc5780636963d4381461032a5780636bb56a141461034a578063715018a61461035d57610193565b806344c028fe146102ea57806354f6127f1461030a57610193565b806301bfba611461023957806301ffc9a7146102615780631626ba7e1461029157806331858452146102ca57610193565b366101935734156101915761018f7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b6040518060200160405280600081525061049f565b505b005b6000366060600482101561022157341561020c5761020a7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049f92505050565b505b5060408051602081019091526000815261022e565b61022b8383610775565b90505b915050805190602001f35b34801561024557600080fd5b5061024e60c881565b6040519081526020015b60405180910390f35b34801561026d57600080fd5b5061028161027c366004613044565b610951565b6040519015158152602001610258565b34801561029d57600080fd5b506102b16102ac366004613126565b610a3c565b6040516001600160e01b03199091168152602001610258565b6102dd6102d836600461328e565b610be1565b60405161025891906133e6565b6102fd6102f8366004613448565b610cf3565b604051610258919061349d565b34801561031657600080fd5b506102fd6103253660046134b0565b610ddc565b34801561033657600080fd5b506102dd6103453660046134c9565b610de7565b6102fd610358366004613126565b61049f565b34801561036957600080fd5b50610191610f43565b34801561037e57600080fd5b506101916110af565b610191610395366004613126565b61123b565b3480156103a657600080fd5b506000546201000090046001600160a01b03165b6040516001600160a01b039091168152602001610258565b6101916103e036600461353e565b611324565b6101916103f3366004613598565b6114fd565b34801561040457600080fd5b506102dd6104133660046135b3565b61161e565b34801561042457600080fd5b506003546001600160a01b03166103ba565b34801561044257600080fd5b50610191610451366004613598565b6116c9565b34801561046257600080fd5b506102fd6040518060400160405280600b81526020017f302e31352e302d72632e3400000000000000000000000000000000000000000081525081565b606034158015906104d057507f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d8314155b1561053b576105397f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049f92505050565b505b60006105667f0cfc51aec37c55a4d0b1a65c6255c4bf2fbdf6277f3cc0730c45b828b6db8b4761187b565b90506060601482511061061757600061057e836135e8565b60601c905061059481635122dded60e11b61191d565b1561061557604051635122dded60e11b81526001600160a01b0382169063a245bbda906105cb90339034908b908b90600401613624565b6000604051808303816000875af11580156105ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106129190810190613652565b91505b505b60006106437f0cfc51aec37c55a4d0b100000000000000000000000000000000000000000000876119a6565b905060006106508261187b565b905060606014825110610701576000610668836135e8565b60601c905061067e81635122dded60e11b61191d565b156106ff57604051635122dded60e11b81526001600160a01b0382169063a245bbda906106b590339034908e908e90600401613624565b6000604051808303816000875af11580156106d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106fc9190810190613652565b91505b505b83816040516020016107149291906136c0565b60405160208183030381529060405295508734336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c28a8a6040516107629291906136c0565b60405180910390a4505050505092915050565b606060008061078f6000356001600160e01b031916611a0f565b91509150346000141580156107a2575080155b1561080c5761080a7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049f92505050565b505b6000356001600160e01b03191615801561082d57506001600160a01b038216155b1561084b57604051806020016040528060008152509250505061094b565b6001600160a01b03821661089e576040517fbb370b2b0000000000000000000000000000000000000000000000000000000081526001600160e01b03196000351660048201526024015b60405180910390fd5b600080836001600160a01b0316836108b75760006108b9565b345b888833346040516020016108d094939291906136e5565b60408051601f19818403018152908290526108ea91613715565b60006040518083038185875af1925050503d8060008114610927576040519150601f19603f3d011682016040523d82523d6000602084013e61092c565b606091505b5091509150811561094257935061094b92505050565b80518060208301fd5b92915050565b60006001600160e01b03198216630b135d3f60e11b148061099b57506001600160e01b031982167f24871b3d00000000000000000000000000000000000000000000000000000000145b806109b657506001600160e01b03198216631aed5a8560e21b145b806109ea57506001600160e01b031982167f94be599900000000000000000000000000000000000000000000000000000000145b80610a1e57506001600160e01b031982167f1a0eb6a500000000000000000000000000000000000000000000000000000000145b80610a2d5750610a2d82611b06565b8061094b575061094b82611b44565b600080546201000090046001600160a01b0316803b15610b6157600080826001600160a01b0316631626ba7e60e01b8787604051602401610a7e929190613731565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610abc9190613715565b600060405180830381855afa9150503d8060008114610af7576040519150601f19603f3d011682016040523d82523d6000602084013e610afc565b606091505b50915091506000828015610b11575081516020145b8015610b3857508151630b135d3f60e11b90610b36908401602090810190850161374a565b145b905080610b4d576001600160e01b0319610b56565b630b135d3f60e11b5b94505050505061094b565b600080610b6e8686611b82565b90925090506000816004811115610b8757610b87613763565b14610ba057506001600160e01b0319925061094b915050565b826001600160a01b0316826001600160a01b031614610bc7576001600160e01b0319610bd0565b630b135d3f60e11b5b935050505061094b565b5092915050565b60603415610c6c576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610c6391613779565b60405180910390a45b6000546201000090046001600160a01b031633819003610c9a57610c9286868686611bc7565b915050610ceb565b6000610ca582611d57565b90506000610cb588888888611bc7565b90508115610ce657610ce68382604051602001610cd291906133e6565b604051602081830303815290604052611f23565b925050505b949350505050565b60603415610d7e576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610d7591613779565b60405180910390a45b6000546201000090046001600160a01b031633819003610da457610c9286868686612059565b6000610daf82611d57565b90506000610dbf88888888612059565b90508115610ce657610ce68382604051602001610cd2919061349d565b606061094b8261187b565b60608167ffffffffffffffff811115610e0257610e02613061565b604051908082528060200260200182016040528015610e3557816020015b6060815260200190600190039081610e205790505b50905060005b82811015610bda5760008030868685818110610e5957610e596137a3565b9050602002810190610e6b91906137b9565b604051610e79929190613800565b600060405180830381855af49150503d8060008114610eb4576040519150601f19603f3d011682016040523d82523d6000602084013e610eb9565b606091505b509150915081610f1b57805115610ed35780518082602001fd5b60405162461bcd60e51b815260206004820152601960248201527f4c5350303a20626174636843616c6c73207265766572746564000000000000006044820152606401610895565b80848481518110610f2e57610f2e6137a3565b60209081029190910101525050600101610e3b565b6000546201000090046001600160a01b031633819003610ff8576000546201000090046001600160a01b0316610f776121af565b6000546201000090046001600160a01b0316610ff457604080516001600160a01b0384166020820152600091810191909152610ff4907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b03841691906122bb565b5050565b600061100382611d57565b905060006110206000546001600160a01b03620100009091041690565b905061102a6121af565b6000546201000090046001600160a01b031661108a57604080516001600160a01b038516602082015260009181019190915261108a907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f81490606001610fd3565b81156110a9576110a98360405180602001604052806000815250611f23565b50505b50565b600354600160a01b900460ff16156110f3576040517f5758dd0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546003546001600160a01b03620100009092048216929116903382146111445761111f82611d57565b905061112a8261234f565b600380546001600160a01b0319169055600060025561114c565b61114c6123e6565b604080516001600160a01b0380861660208301528416918101919091526111b4907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b03861691906122bb565b604080516001600160a01b03808616602083015284169181019190915261121c907fceca317f109c43507871523e82dc2a3cc64dfa18f12da0b6db14f6e23f995538906060015b60408051601f198184030181529190526001600160a01b03851691906122bb565b80156110a9576110a98260405180602001604052806000815250611f23565b34156112c4576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f19818403018152908290526112bb91613779565b60405180910390a45b6000546201000090046001600160a01b0316338190036112e8576110a9838361244c565b60006112f382611d57565b90506112ff848461244c565b801561131e5761131e8260405180602001604052806000815250611f23565b50505050565b34156113ad576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f19818403018152908290526113a491613779565b60405180910390a45b80518251146113e8576040517f3bcc897900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8151600003611423576040517f97da5f9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546201000090046001600160a01b03163381900361148d5760005b835181101561131e5761148584828151811061145e5761145e6137a3565b6020026020010151848381518110611478576114786137a3565b602002602001015161244c565b600101611440565b600061149882611d57565b905060005b84518110156114dd576114d58582815181106114bb576114bb6137a3565b6020026020010151858381518110611478576114786137a3565b60010161149d565b50801561131e5761131e8260405180602001604052806000815250611f23565b600054610100900460ff161580801561151d5750600054600160ff909116105b806115375750303b158015611537575060005460ff166001145b6115a95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610895565b6000805460ff1916600117905580156115cc576000805461ff0019166101001790555b6115d5826124a1565b8015610ff4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6060815167ffffffffffffffff81111561163a5761163a613061565b60405190808252806020026020018201604052801561166d57816020015b60608152602001906001900390816116585790505b50905060005b82518110156116c35761169e838281518110611691576116916137a3565b602002602001015161187b565b8282815181106116b0576116b06137a3565b6020908102919091010152600101611673565b50919050565b6000546201000090046001600160a01b03163381900361179b576003805460ff60a01b1916600160a01b1790556116ff82612577565b816001600160a01b0316816001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b03808416602083015284169181019190915261178a907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac6926906060016111fb565b6003805460ff60a01b191690555050565b60006117a682611d57565b6003805460ff60a01b1916600160a01b17905590506117c483612577565b826001600160a01b0316826001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b03808516602083015285169181019190915261184f907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac692690606001611193565b6003805460ff60a01b1916905580156110a9576110a98260405180602001604052806000815250611f23565b600081815260016020526040902080546060919061189890613810565b80601f01602080910402602001604051908101604052809291908181526020018280546118c490613810565b80156119115780601f106118e657610100808354040283529160200191611911565b820191906000526020600020905b8154815290600101906020018083116118f457829003601f168201915b50505050509050919050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561198f575060208210155b801561199b5750600081115b979650505050505050565b604080517fffffffffffffffffffff00000000000000000000000000000000000000000000841660208201526000602a82018190526bffffffffffffffffffffffff198416602c83015291829101604051602081830303815290604052905080610ceb90613844565b60008080611a477fcee78b4094da86011096000000000000000000000000000000000000000000006001600160e01b031986166119a6565b90506000611a548261187b565b9050601481511015611a6d575060009485945092505050565b8051601503611aee5780601481518110611a8957611a896137a3565b01602001517fff00000000000000000000000000000000000000000000000000000000000000167f010000000000000000000000000000000000000000000000000000000000000003611aee57611adf816135e8565b60601c95600195509350505050565b611af7816135e8565b60601c95600095509350505050565b60006001600160e01b031982167fa918fa6b00000000000000000000000000000000000000000000000000000000148061094b575061094b826125e0565b600080611b576301ffc9a760e01b611a0f565b5090506001600160a01b038116611b715750600092915050565b611b7b818461191d565b9392505050565b6000808251604103611bb85760208301516040840151606085015160001a611bac8782858561261e565b94509450505050611bc0565b506000905060025b9250929050565b606083518551141580611be8575082518451141580611be857508151835114155b15611c1f576040517f3ff55f4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451600003611c5a576040517fe9ad2b5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000855167ffffffffffffffff811115611c7657611c76613061565b604051908082528060200260200182016040528015611ca957816020015b6060815260200190600190039081611c945790505b50905060005b8651811015611d4d57611d28878281518110611ccd57611ccd6137a3565b6020026020010151878381518110611ce757611ce76137a3565b6020026020010151878481518110611d0157611d016137a3565b6020026020010151878581518110611d1b57611d1b6137a3565b6020026020010151612059565b828281518110611d3a57611d3a6137a3565b6020908102919091010152600101611caf565b5095945050505050565b6000816001600160a01b03163b600003611da8576040517f0c3923010000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610895565b6040517fde928f140000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063de928f1490611df89033903090829034906000903690600401613868565b6020604051808303816000875af1925050508015611e33575060408051601f3d908101601f19168201909252611e30918101906138c5565b60015b611e72573d808015611e61576040519150601f19603f3d011682016040523d82523d6000602084013e611e66565b606091505b506116c36000826126e2565b7fffffff000000000000000000000000000000000000000000000000000000000081167fde928f000000000000000000000000000000000000000000000000000000000014611ee757604051639d6741e360e01b8152600060048201526001600160e01b031982166024820152604401610895565b8060031a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14915050919050565b919050565b816001600160a01b031663d3fc45d333303334600036604051602001611f4e969594939291906138e2565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b8152600401611f82929190613731565b6020604051808303816000875af1925050508015611fbd575060408051601f3d908101601f19168201909252611fba918101906138c5565b60015b611ffc573d808015611feb576040519150601f19603f3d011682016040523d82523d6000602084013e611ff0565b606091505b506110a96001826126e2565b6001600160e01b031981167fd3fc45d300000000000000000000000000000000000000000000000000000000146110a957604051639d6741e360e01b8152600160048201526001600160e01b031982166024820152604401610895565b6060846120725761206b848484612728565b9050610ceb565b600185036120ac576001600160a01b038416156120a257604051631820c12560e11b815260040160405180910390fd5b61206b8383612859565b600285036120e6576001600160a01b038416156120dc57604051631820c12560e11b815260040160405180910390fd5b61206b8383612973565b60038503612130578215612126576040517f72f2bc6a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61206b8483612a5d565b6004850361217a578215612170576040517f5ac8313500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61206b8483612b61565b6040517f7583b3bc00000000000000000000000000000000000000000000000000000000815260048101869052602401610895565b60025443906000906121c39060c890613948565b905060006121d260c883613948565b9050808311806121e25750600254155b1561222a576002839055600380546001600160a01b03191690556040517f81b7f830f1f0084db6497c486cbe6974c86488dcc4e3738eab94ab6d6b1653e790600090a1505050565b8183101561226e576040517f1b0809420000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610895565b612278600061234f565b60006002819055600380546001600160a01b03191690556040517fd1f66c3d2bc1993a86be5e3d33709d98f0442381befcedd29f578b9b2506b1ce9190a1505050565b6122d56001600160a01b038416631aed5a8560e21b61191d565b156110a957604051631aed5a8560e21b81526001600160a01b03841690636bb56a14906123089085908590600401613731565b6000604051808303816000875af1158015612327573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261131e9190810190613652565b6000546001600160a01b038281166201000090920416146110ac57600080546040516001600160a01b03808516936201000090930416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03831662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90911617905550565b6003546001600160a01b0316331461242c576040517f451e4528000000000000000000000000000000000000000000000000000000008152336004820152602401610895565b6124353361234f565b600380546001600160a01b03191690556000600255565b600082815260016020526040902061246482826139a9565b50817fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b282604051612495919061349d565b60405180910390a25050565b600054610100900460ff1661250c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610895565b61251581612c12565b6110ac7feafec4d89fa9619884b600005ef83ad9559033e6e941db7d7c495acdce61634760001b6040518060400160405280600481526020017f5ef83ad90000000000000000000000000000000000000000000000000000000081525061244c565b306001600160a01b038216036125b9576040517fe052a6f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b03929092169190911790556000600255565b60006001600160e01b031982167f629aa69400000000000000000000000000000000000000000000000000000000148061094b575061094b82612d0b565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561265557506000905060036126d9565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156126a9573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166126d2576000600192509250506126d9565b9150600090505b94509492505050565b8051156126f25780518082602001fd5b6040517f8c6a8ae30000000000000000000000000000000000000000000000000000000081528215156004820152602401610895565b606082471015612754576040516301bf351f60e31b815247600482015260248101849052604401610895565b61275d82613a69565b6001600160e01b031916846001600160a01b031660007f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e866040516127a491815260200190565b60405180910390a4600080856001600160a01b031685856040516127c89190613715565b60006040518083038185875af1925050503d8060008114612805576040519150601f19603f3d011682016040523d82523d6000602084013e61280a565b606091505b509150915061284f82826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612d59565b9695505050505050565b606082471015612885576040516301bf351f60e31b815247600482015260248101849052604401610895565b81516000036128a75760405163b81cd8d960e01b815260040160405180910390fd5b600082516020840185f090506001600160a01b0381166128f3576040517f0b07489b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000801b816001600160a01b031660017fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c38760405161293491815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b16602082015260340160405160208183030381529060405291505092915050565b606081516000036129975760405163b81cd8d960e01b815260040160405180910390fd5b60006129b083602085516129ab9190613a9d565b612d72565b905060006129cd846000602087516129c89190613a9d565b612dd8565b905060006129dc868484612f00565b905082816001600160a01b031660027fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c389604051612a1c91815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b166020820152603401604051602081830303815290604052935050505092915050565b6060612a6882613a69565b6001600160e01b031916836001600160a01b031660037f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612ab091815260200190565b60405180910390a4600080846001600160a01b031684604051612ad39190613715565b600060405180830381855afa9150503d8060008114612b0e576040519150601f19603f3d011682016040523d82523d6000602084013e612b13565b606091505b5091509150612b5882826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612d59565b95945050505050565b6060612b6c82613a69565b6001600160e01b031916836001600160a01b031660047f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612bb491815260200190565b60405180910390a4600080846001600160a01b031684604051612bd79190613715565b600060405180830381855af49150503d8060008114612b0e576040519150601f19603f3d011682016040523d82523d6000602084013e612b13565b600054610100900460ff16612c7d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610895565b3415612d02577f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b34336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c2604051612cf9906040808252600090820181905260606020830181905282015260800190565b60405180910390a45b6110ac8161234f565b60006001600160e01b031982167f7545acac00000000000000000000000000000000000000000000000000000000148061094b57506301ffc9a760e01b6001600160e01b031983161461094b565b60608315612d68575081611b7b565b611b7b8383613004565b6000612d7f826020613948565b83511015612dcf5760405162461bcd60e51b815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e647300000000000000000000006044820152606401610895565b50016020015190565b606081612de681601f613948565b1015612e345760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610895565b612e3e8284613948565b84511015612e8e5760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610895565b606082158015612ead5760405191506000825260208201604052612ef7565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612ee6578051835260209283019201612ece565b5050858452601f01601f1916604052505b50949350505050565b600083471015612f525760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610895565b8151600003612fa35760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610895565b8282516020840186f590506001600160a01b038116611b7b5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610895565b8151156130145781518083602001fd5b8060405162461bcd60e51b8152600401610895919061349d565b6001600160e01b0319811681146110ac57600080fd5b60006020828403121561305657600080fd5b8135611b7b8161302e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156130a0576130a0613061565b604052919050565b600067ffffffffffffffff8211156130c2576130c2613061565b50601f01601f191660200190565b600082601f8301126130e157600080fd5b81356130f46130ef826130a8565b613077565b81815284602083860101111561310957600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561313957600080fd5b82359150602083013567ffffffffffffffff81111561315757600080fd5b613163858286016130d0565b9150509250929050565b600067ffffffffffffffff82111561318757613187613061565b5060051b60200190565b600082601f8301126131a257600080fd5b813560206131b26130ef8361316d565b82815260059290921b840181019181810190868411156131d157600080fd5b8286015b848110156131ec57803583529183019183016131d5565b509695505050505050565b80356001600160a01b0381168114611f1e57600080fd5b600082601f83011261321f57600080fd5b8135602061322f6130ef8361316d565b82815260059290921b8401810191818101908684111561324e57600080fd5b8286015b848110156131ec57803567ffffffffffffffff8111156132725760008081fd5b6132808986838b01016130d0565b845250918301918301613252565b600080600080608085870312156132a457600080fd5b843567ffffffffffffffff808211156132bc57600080fd5b6132c888838901613191565b95506020915081870135818111156132df57600080fd5b8701601f810189136132f057600080fd5b80356132fe6130ef8261316d565b81815260059190911b8201840190848101908b83111561331d57600080fd5b928501925b8284101561334257613333846131f7565b82529285019290850190613322565b9750505050604087013591508082111561335b57600080fd5b61336788838901613191565b9350606087013591508082111561337d57600080fd5b5061338a8782880161320e565b91505092959194509250565b60005b838110156133b1578181015183820152602001613399565b50506000910152565b600081518084526133d2816020860160208601613396565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561343b57603f198886030184526134298583516133ba565b9450928501929085019060010161340d565b5092979650505050505050565b6000806000806080858703121561345e57600080fd5b8435935061346e602086016131f7565b925060408501359150606085013567ffffffffffffffff81111561349157600080fd5b61338a878288016130d0565b602081526000611b7b60208301846133ba565b6000602082840312156134c257600080fd5b5035919050565b600080602083850312156134dc57600080fd5b823567ffffffffffffffff808211156134f457600080fd5b818501915085601f83011261350857600080fd5b81358181111561351757600080fd5b8660208260051b850101111561352c57600080fd5b60209290920196919550909350505050565b6000806040838503121561355157600080fd5b823567ffffffffffffffff8082111561356957600080fd5b61357586838701613191565b9350602085013591508082111561358b57600080fd5b506131638582860161320e565b6000602082840312156135aa57600080fd5b611b7b826131f7565b6000602082840312156135c557600080fd5b813567ffffffffffffffff8111156135dc57600080fd5b610ceb84828501613191565b805160208201516bffffffffffffffffffffffff19808216929190601483101561361c5780818460140360031b1b83161693505b505050919050565b6001600160a01b038516815283602082015282604082015260806060820152600061284f60808301846133ba565b60006020828403121561366457600080fd5b815167ffffffffffffffff81111561367b57600080fd5b8201601f8101841361368c57600080fd5b805161369a6130ef826130a8565b8181528560208385010111156136af57600080fd5b612b58826020830160208601613396565b6040815260006136d360408301856133ba565b8281036020840152612b5881856133ba565b8385823760609290921b6bffffffffffffffffffffffff1916919092019081526014810191909152603401919050565b60008251613727818460208701613396565b9190910192915050565b828152604060208201526000610ceb60408301846133ba565b60006020828403121561375c57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b60408152600061378c60408301846133ba565b828103602093840152600081529190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126137d057600080fd5b83018035915067ffffffffffffffff8211156137eb57600080fd5b602001915036819003821315611bc057600080fd5b8183823760009101908152919050565b600181811c9082168061382457607f821691505b6020821081036116c357634e487b7160e01b600052602260045260246000fd5b805160208083015191908110156116c35760001960209190910360031b1b16919050565b60006001600160a01b038089168352808816602084015280871660408401525084606083015260a060808301528260a0830152828460c0840137600060c0848401015260c0601f19601f8501168301019050979650505050505050565b6000602082840312156138d757600080fd5b8151611b7b8161302e565b60006bffffffffffffffffffffffff19808960601b168352808860601b166014840152808760601b1660288401525084603c8301528284605c8401375060009101605c0190815295945050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561094b5761094b613932565b601f8211156110a957600081815260208120601f850160051c810160208610156139825750805b601f850160051c820191505b818110156139a15782815560010161398e565b505050505050565b815167ffffffffffffffff8111156139c3576139c3613061565b6139d7816139d18454613810565b8461395b565b602080601f831160018114613a0c57600084156139f45750858301515b600019600386901b1c1916600185901b1785556139a1565b600085815260208120601f198616915b82811015613a3b57888601518255948401946001909101908401613a1c565b5085821015613a595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000815160208301516001600160e01b03198082169350600483101561361c5760049290920360031b82901b161692915050565b8181038181111561094b5761094b61393256fea26469706673582212207811b92da1adacf4720204799087ced7d616ed0ff4634270007babf4beff36dc64736f6c63430008110033",
693
+ "deployedBytecode": "0x6080604052600436106101485760003560e01c806379ba5097116100c0578063dedff9c611610074578063ead3fbdf11610059578063ead3fbdf14610239578063f2fde38b14610436578063ffa1ad741461045657610193565b8063dedff9c6146103f8578063e30c39781461041857610193565b80638da5cb5b116100a55780638da5cb5b1461039a57806397902421146103d2578063c4d66de8146103e557610193565b806379ba5097146103725780637f23690c1461038757610193565b806344c028fe116101175780636963d438116100fc5780636963d4381461032a5780636bb56a141461034a578063715018a61461035d57610193565b806344c028fe146102ea57806354f6127f1461030a57610193565b806301bfba611461023957806301ffc9a7146102615780631626ba7e1461029157806331858452146102ca57610193565b366101935734156101915761018f7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b6040518060200160405280600081525061049f565b505b005b6000366060600482101561022157341561020c5761020a7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049f92505050565b505b5060408051602081019091526000815261022e565b61022b8383610775565b90505b915050805190602001f35b34801561024557600080fd5b5061024e60c881565b6040519081526020015b60405180910390f35b34801561026d57600080fd5b5061028161027c366004613044565b610951565b6040519015158152602001610258565b34801561029d57600080fd5b506102b16102ac366004613126565b610a3c565b6040516001600160e01b03199091168152602001610258565b6102dd6102d836600461328e565b610be1565b60405161025891906133e6565b6102fd6102f8366004613448565b610cf3565b604051610258919061349d565b34801561031657600080fd5b506102fd6103253660046134b0565b610ddc565b34801561033657600080fd5b506102dd6103453660046134c9565b610de7565b6102fd610358366004613126565b61049f565b34801561036957600080fd5b50610191610f43565b34801561037e57600080fd5b506101916110af565b610191610395366004613126565b61123b565b3480156103a657600080fd5b506000546201000090046001600160a01b03165b6040516001600160a01b039091168152602001610258565b6101916103e036600461353e565b611324565b6101916103f3366004613598565b6114fd565b34801561040457600080fd5b506102dd6104133660046135b3565b61161e565b34801561042457600080fd5b506003546001600160a01b03166103ba565b34801561044257600080fd5b50610191610451366004613598565b6116c9565b34801561046257600080fd5b506102fd6040518060400160405280600b81526020017f302e31352e302d72632e3400000000000000000000000000000000000000000081525081565b606034158015906104d057507f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d8314155b1561053b576105397f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b6000368080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049f92505050565b505b60006105667f0cfc51aec37c55a4d0b1a65c6255c4bf2fbdf6277f3cc0730c45b828b6db8b4761187b565b90506060601482511061061757600061057e836135e8565b60601c905061059481635122dded60e11b61191d565b1561061557604051635122dded60e11b81526001600160a01b0382169063a245bbda906105cb90339034908b908b90600401613624565b6000604051808303816000875af11580156105ea573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106129190810190613652565b91505b505b60006106437f0cfc51aec37c55a4d0b100000000000000000000000000000000000000000000876119a6565b905060006106508261187b565b905060606014825110610701576000610668836135e8565b60601c905061067e81635122dded60e11b61191d565b156106ff57604051635122dded60e11b81526001600160a01b0382169063a245bbda906106b590339034908e908e90600401613624565b6000604051808303816000875af11580156106d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106fc9190810190613652565b91505b505b83816040516020016107149291906136c0565b60405160208183030381529060405295508734336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c28a8a6040516107629291906136c0565b60405180910390a4505050505092915050565b606060008061078f6000356001600160e01b031916611a0f565b91509150346000141580156107a2575080155b1561080c5761080a7f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b86868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061049f92505050565b505b6000356001600160e01b03191615801561082d57506001600160a01b038216155b1561084b57604051806020016040528060008152509250505061094b565b6001600160a01b03821661089e576040517fbb370b2b0000000000000000000000000000000000000000000000000000000081526001600160e01b03196000351660048201526024015b60405180910390fd5b600080836001600160a01b0316836108b75760006108b9565b345b888833346040516020016108d094939291906136e5565b60408051601f19818403018152908290526108ea91613715565b60006040518083038185875af1925050503d8060008114610927576040519150601f19603f3d011682016040523d82523d6000602084013e61092c565b606091505b5091509150811561094257935061094b92505050565b80518060208301fd5b92915050565b60006001600160e01b03198216630b135d3f60e11b148061099b57506001600160e01b031982167f24871b3d00000000000000000000000000000000000000000000000000000000145b806109b657506001600160e01b03198216631aed5a8560e21b145b806109ea57506001600160e01b031982167f94be599900000000000000000000000000000000000000000000000000000000145b80610a1e57506001600160e01b031982167f1a0eb6a500000000000000000000000000000000000000000000000000000000145b80610a2d5750610a2d82611b06565b8061094b575061094b82611b44565b600080546201000090046001600160a01b0316803b15610b6157600080826001600160a01b0316631626ba7e60e01b8787604051602401610a7e929190613731565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610abc9190613715565b600060405180830381855afa9150503d8060008114610af7576040519150601f19603f3d011682016040523d82523d6000602084013e610afc565b606091505b50915091506000828015610b11575081516020145b8015610b3857508151630b135d3f60e11b90610b36908401602090810190850161374a565b145b905080610b4d576001600160e01b0319610b56565b630b135d3f60e11b5b94505050505061094b565b600080610b6e8686611b82565b90925090506000816004811115610b8757610b87613763565b14610ba057506001600160e01b0319925061094b915050565b826001600160a01b0316826001600160a01b031614610bc7576001600160e01b0319610bd0565b630b135d3f60e11b5b935050505061094b565b5092915050565b60603415610c6c576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610c6391613779565b60405180910390a45b6000546201000090046001600160a01b031633819003610c9a57610c9286868686611bc7565b915050610ceb565b6000610ca582611d57565b90506000610cb588888888611bc7565b90508115610ce657610ce68382604051602001610cd291906133e6565b604051602081830303815290604052611f23565b925050505b949350505050565b60603415610d7e576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f1981840301815290829052610d7591613779565b60405180910390a45b6000546201000090046001600160a01b031633819003610da457610c9286868686612059565b6000610daf82611d57565b90506000610dbf88888888612059565b90508115610ce657610ce68382604051602001610cd2919061349d565b606061094b8261187b565b60608167ffffffffffffffff811115610e0257610e02613061565b604051908082528060200260200182016040528015610e3557816020015b6060815260200190600190039081610e205790505b50905060005b82811015610bda5760008030868685818110610e5957610e596137a3565b9050602002810190610e6b91906137b9565b604051610e79929190613800565b600060405180830381855af49150503d8060008114610eb4576040519150601f19603f3d011682016040523d82523d6000602084013e610eb9565b606091505b509150915081610f1b57805115610ed35780518082602001fd5b60405162461bcd60e51b815260206004820152601960248201527f4c5350303a20626174636843616c6c73207265766572746564000000000000006044820152606401610895565b80848481518110610f2e57610f2e6137a3565b60209081029190910101525050600101610e3b565b6000546201000090046001600160a01b031633819003610ff8576000546201000090046001600160a01b0316610f776121af565b6000546201000090046001600160a01b0316610ff457604080516001600160a01b0384166020820152600091810191909152610ff4907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b03841691906122bb565b5050565b600061100382611d57565b905060006110206000546001600160a01b03620100009091041690565b905061102a6121af565b6000546201000090046001600160a01b031661108a57604080516001600160a01b038516602082015260009181019190915261108a907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f81490606001610fd3565b81156110a9576110a98360405180602001604052806000815250611f23565b50505b50565b600354600160a01b900460ff16156110f3576040517f5758dd0700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546003546001600160a01b03620100009092048216929116903382146111445761111f82611d57565b905061112a8261234f565b600380546001600160a01b0319169055600060025561114c565b61114c6123e6565b604080516001600160a01b0380861660208301528416918101919091526111b4907fa4e59c931d14f7c8a7a35027f92ee40b5f2886b9fdcdb78f30bc5ecce5a2f814906060015b60408051601f198184030181529190526001600160a01b03861691906122bb565b604080516001600160a01b03808616602083015284169181019190915261121c907fceca317f109c43507871523e82dc2a3cc64dfa18f12da0b6db14f6e23f995538906060015b60408051601f198184030181529190526001600160a01b03851691906122bb565b80156110a9576110a98260405180602001604052806000815250611f23565b34156112c4576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f19818403018152908290526112bb91613779565b60405180910390a45b6000546201000090046001600160a01b0316338190036112e8576110a9838361244c565b60006112f382611d57565b90506112ff848461244c565b801561131e5761131e8260405180602001604052806000815250611f23565b50505050565b34156113ad576040516001600160e01b03196000351660208201527f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d90349033907f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c29060240160408051601f19818403018152908290526113a491613779565b60405180910390a45b80518251146113e8576040517f3bcc897900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8151600003611423576040517f97da5f9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000546201000090046001600160a01b03163381900361148d5760005b835181101561131e5761148584828151811061145e5761145e6137a3565b6020026020010151848381518110611478576114786137a3565b602002602001015161244c565b600101611440565b600061149882611d57565b905060005b84518110156114dd576114d58582815181106114bb576114bb6137a3565b6020026020010151858381518110611478576114786137a3565b60010161149d565b50801561131e5761131e8260405180602001604052806000815250611f23565b600054610100900460ff161580801561151d5750600054600160ff909116105b806115375750303b158015611537575060005460ff166001145b6115a95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610895565b6000805460ff1916600117905580156115cc576000805461ff0019166101001790555b6115d5826124a1565b8015610ff4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6060815167ffffffffffffffff81111561163a5761163a613061565b60405190808252806020026020018201604052801561166d57816020015b60608152602001906001900390816116585790505b50905060005b82518110156116c35761169e838281518110611691576116916137a3565b602002602001015161187b565b8282815181106116b0576116b06137a3565b6020908102919091010152600101611673565b50919050565b6000546201000090046001600160a01b03163381900361179b576003805460ff60a01b1916600160a01b1790556116ff82612577565b816001600160a01b0316816001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b03808416602083015284169181019190915261178a907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac6926906060016111fb565b6003805460ff60a01b191690555050565b60006117a682611d57565b6003805460ff60a01b1916600160a01b17905590506117c483612577565b826001600160a01b0316826001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a3604080516001600160a01b03808516602083015285169181019190915261184f907fe17117c9d2665d1dbeb479ed8058bbebde3c50ac50e2e65619f60006caac692690606001611193565b6003805460ff60a01b1916905580156110a9576110a98260405180602001604052806000815250611f23565b600081815260016020526040902080546060919061189890613810565b80601f01602080910402602001604051908101604052809291908181526020018280546118c490613810565b80156119115780601f106118e657610100808354040283529160200191611911565b820191906000526020600020905b8154815290600101906020018083116118f457829003601f168201915b50505050509050919050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561198f575060208210155b801561199b5750600081115b979650505050505050565b604080517fffffffffffffffffffff00000000000000000000000000000000000000000000841660208201526000602a82018190526bffffffffffffffffffffffff198416602c83015291829101604051602081830303815290604052905080610ceb90613844565b60008080611a477fcee78b4094da86011096000000000000000000000000000000000000000000006001600160e01b031986166119a6565b90506000611a548261187b565b9050601481511015611a6d575060009485945092505050565b8051601503611aee5780601481518110611a8957611a896137a3565b01602001517fff00000000000000000000000000000000000000000000000000000000000000167f010000000000000000000000000000000000000000000000000000000000000003611aee57611adf816135e8565b60601c95600195509350505050565b611af7816135e8565b60601c95600095509350505050565b60006001600160e01b031982167fa918fa6b00000000000000000000000000000000000000000000000000000000148061094b575061094b826125e0565b600080611b576301ffc9a760e01b611a0f565b5090506001600160a01b038116611b715750600092915050565b611b7b818461191d565b9392505050565b6000808251604103611bb85760208301516040840151606085015160001a611bac8782858561261e565b94509450505050611bc0565b506000905060025b9250929050565b606083518551141580611be8575082518451141580611be857508151835114155b15611c1f576040517f3ff55f4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8451600003611c5a576040517fe9ad2b5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000855167ffffffffffffffff811115611c7657611c76613061565b604051908082528060200260200182016040528015611ca957816020015b6060815260200190600190039081611c945790505b50905060005b8651811015611d4d57611d28878281518110611ccd57611ccd6137a3565b6020026020010151878381518110611ce757611ce76137a3565b6020026020010151878481518110611d0157611d016137a3565b6020026020010151878581518110611d1b57611d1b6137a3565b6020026020010151612059565b828281518110611d3a57611d3a6137a3565b6020908102919091010152600101611caf565b5095945050505050565b6000816001600160a01b03163b600003611da8576040517f0c3923010000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610895565b6040517fde928f140000000000000000000000000000000000000000000000000000000081526001600160a01b0383169063de928f1490611df89033903090829034906000903690600401613868565b6020604051808303816000875af1925050508015611e33575060408051601f3d908101601f19168201909252611e30918101906138c5565b60015b611e72573d808015611e61576040519150601f19603f3d011682016040523d82523d6000602084013e611e66565b606091505b506116c36000826126e2565b7fffffff000000000000000000000000000000000000000000000000000000000081167fde928f000000000000000000000000000000000000000000000000000000000014611ee757604051639d6741e360e01b8152600060048201526001600160e01b031982166024820152604401610895565b8060031a60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600160f81b14915050919050565b919050565b816001600160a01b031663d3fc45d333303334600036604051602001611f4e969594939291906138e2565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b8152600401611f82929190613731565b6020604051808303816000875af1925050508015611fbd575060408051601f3d908101601f19168201909252611fba918101906138c5565b60015b611ffc573d808015611feb576040519150601f19603f3d011682016040523d82523d6000602084013e611ff0565b606091505b506110a96001826126e2565b6001600160e01b031981167fd3fc45d300000000000000000000000000000000000000000000000000000000146110a957604051639d6741e360e01b8152600160048201526001600160e01b031982166024820152604401610895565b6060846120725761206b848484612728565b9050610ceb565b600185036120ac576001600160a01b038416156120a257604051631820c12560e11b815260040160405180910390fd5b61206b8383612859565b600285036120e6576001600160a01b038416156120dc57604051631820c12560e11b815260040160405180910390fd5b61206b8383612973565b60038503612130578215612126576040517f72f2bc6a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61206b8483612a5d565b6004850361217a578215612170576040517f5ac8313500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61206b8483612b61565b6040517f7583b3bc00000000000000000000000000000000000000000000000000000000815260048101869052602401610895565b60025443906000906121c39060c890613948565b905060006121d260c883613948565b9050808311806121e25750600254155b1561222a576002839055600380546001600160a01b03191690556040517f81b7f830f1f0084db6497c486cbe6974c86488dcc4e3738eab94ab6d6b1653e790600090a1505050565b8183101561226e576040517f1b0809420000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610895565b612278600061234f565b60006002819055600380546001600160a01b03191690556040517fd1f66c3d2bc1993a86be5e3d33709d98f0442381befcedd29f578b9b2506b1ce9190a1505050565b6122d56001600160a01b038416631aed5a8560e21b61191d565b156110a957604051631aed5a8560e21b81526001600160a01b03841690636bb56a14906123089085908590600401613731565b6000604051808303816000875af1158015612327573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261131e9190810190613652565b6000546001600160a01b038281166201000090920416146110ac57600080546040516001600160a01b03808516936201000090930416917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03831662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff90911617905550565b6003546001600160a01b0316331461242c576040517f451e4528000000000000000000000000000000000000000000000000000000008152336004820152602401610895565b6124353361234f565b600380546001600160a01b03191690556000600255565b600082815260016020526040902061246482826139a9565b50817fece574603820d07bc9b91f2a932baadf4628aabcb8afba49776529c14a6104b282604051612495919061349d565b60405180910390a25050565b600054610100900460ff1661250c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610895565b61251581612c12565b6110ac7feafec4d89fa9619884b600005ef83ad9559033e6e941db7d7c495acdce61634760001b6040518060400160405280600481526020017f5ef83ad90000000000000000000000000000000000000000000000000000000081525061244c565b306001600160a01b038216036125b9576040517fe052a6f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b03929092169190911790556000600255565b60006001600160e01b031982167f629aa69400000000000000000000000000000000000000000000000000000000148061094b575061094b82612d0b565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561265557506000905060036126d9565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156126a9573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166126d2576000600192509250506126d9565b9150600090505b94509492505050565b8051156126f25780518082602001fd5b6040517f8c6a8ae30000000000000000000000000000000000000000000000000000000081528215156004820152602401610895565b606082471015612754576040516301bf351f60e31b815247600482015260248101849052604401610895565b61275d82613a69565b6001600160e01b031916846001600160a01b031660007f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e866040516127a491815260200190565b60405180910390a4600080856001600160a01b031685856040516127c89190613715565b60006040518083038185875af1925050503d8060008114612805576040519150601f19603f3d011682016040523d82523d6000602084013e61280a565b606091505b509150915061284f82826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612d59565b9695505050505050565b606082471015612885576040516301bf351f60e31b815247600482015260248101849052604401610895565b81516000036128a75760405163b81cd8d960e01b815260040160405180910390fd5b600082516020840185f090506001600160a01b0381166128f3576040517f0b07489b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000801b816001600160a01b031660017fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c38760405161293491815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b16602082015260340160405160208183030381529060405291505092915050565b606081516000036129975760405163b81cd8d960e01b815260040160405180910390fd5b60006129b083602085516129ab9190613a9d565b612d72565b905060006129cd846000602087516129c89190613a9d565b612dd8565b905060006129dc868484612f00565b905082816001600160a01b031660027fa1fb700aaee2ae4a2ff6f91ce7eba292f89c2f5488b8ec4c5c5c8150692595c389604051612a1c91815260200190565b60405180910390a46040516bffffffffffffffffffffffff19606083901b166020820152603401604051602081830303815290604052935050505092915050565b6060612a6882613a69565b6001600160e01b031916836001600160a01b031660037f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612ab091815260200190565b60405180910390a4600080846001600160a01b031684604051612ad39190613715565b600060405180830381855afa9150503d8060008114612b0e576040519150601f19603f3d011682016040523d82523d6000602084013e612b13565b606091505b5091509150612b5882826040518060400160405280601681526020017f455243373235583a20556e6b6e6f776e204572726f7200000000000000000000815250612d59565b95945050505050565b6060612b6c82613a69565b6001600160e01b031916836001600160a01b031660047f4810874456b8e6487bd861375cf6abd8e1c8bb5858c8ce36a86a04dabfac199e6000604051612bb491815260200190565b60405180910390a4600080846001600160a01b031684604051612bd79190613715565b600060405180830381855af49150503d8060008114612b0e576040519150601f19603f3d011682016040523d82523d6000602084013e612b13565b600054610100900460ff16612c7d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610895565b3415612d02577f9c4705229491d365fb5434052e12a386d6771d976bea61070a8c694e8affea3d60001b34336001600160a01b03167f9c3ba68eb5742b8e3961aea0afc7371a71bf433c8a67a831803b64c064a178c2604051612cf9906040808252600090820181905260606020830181905282015260800190565b60405180910390a45b6110ac8161234f565b60006001600160e01b031982167f7545acac00000000000000000000000000000000000000000000000000000000148061094b57506301ffc9a760e01b6001600160e01b031983161461094b565b60608315612d68575081611b7b565b611b7b8383613004565b6000612d7f826020613948565b83511015612dcf5760405162461bcd60e51b815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e647300000000000000000000006044820152606401610895565b50016020015190565b606081612de681601f613948565b1015612e345760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f770000000000000000000000000000000000006044820152606401610895565b612e3e8284613948565b84511015612e8e5760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e64730000000000000000000000000000006044820152606401610895565b606082158015612ead5760405191506000825260208201604052612ef7565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015612ee6578051835260209283019201612ece565b5050858452601f01601f1916604052505b50949350505050565b600083471015612f525760405162461bcd60e51b815260206004820152601d60248201527f437265617465323a20696e73756666696369656e742062616c616e63650000006044820152606401610895565b8151600003612fa35760405162461bcd60e51b815260206004820181905260248201527f437265617465323a2062797465636f6465206c656e677468206973207a65726f6044820152606401610895565b8282516020840186f590506001600160a01b038116611b7b5760405162461bcd60e51b815260206004820152601960248201527f437265617465323a204661696c6564206f6e206465706c6f79000000000000006044820152606401610895565b8151156130145781518083602001fd5b8060405162461bcd60e51b8152600401610895919061349d565b6001600160e01b0319811681146110ac57600080fd5b60006020828403121561305657600080fd5b8135611b7b8161302e565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156130a0576130a0613061565b604052919050565b600067ffffffffffffffff8211156130c2576130c2613061565b50601f01601f191660200190565b600082601f8301126130e157600080fd5b81356130f46130ef826130a8565b613077565b81815284602083860101111561310957600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561313957600080fd5b82359150602083013567ffffffffffffffff81111561315757600080fd5b613163858286016130d0565b9150509250929050565b600067ffffffffffffffff82111561318757613187613061565b5060051b60200190565b600082601f8301126131a257600080fd5b813560206131b26130ef8361316d565b82815260059290921b840181019181810190868411156131d157600080fd5b8286015b848110156131ec57803583529183019183016131d5565b509695505050505050565b80356001600160a01b0381168114611f1e57600080fd5b600082601f83011261321f57600080fd5b8135602061322f6130ef8361316d565b82815260059290921b8401810191818101908684111561324e57600080fd5b8286015b848110156131ec57803567ffffffffffffffff8111156132725760008081fd5b6132808986838b01016130d0565b845250918301918301613252565b600080600080608085870312156132a457600080fd5b843567ffffffffffffffff808211156132bc57600080fd5b6132c888838901613191565b95506020915081870135818111156132df57600080fd5b8701601f810189136132f057600080fd5b80356132fe6130ef8261316d565b81815260059190911b8201840190848101908b83111561331d57600080fd5b928501925b8284101561334257613333846131f7565b82529285019290850190613322565b9750505050604087013591508082111561335b57600080fd5b61336788838901613191565b9350606087013591508082111561337d57600080fd5b5061338a8782880161320e565b91505092959194509250565b60005b838110156133b1578181015183820152602001613399565b50506000910152565b600081518084526133d2816020860160208601613396565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561343b57603f198886030184526134298583516133ba565b9450928501929085019060010161340d565b5092979650505050505050565b6000806000806080858703121561345e57600080fd5b8435935061346e602086016131f7565b925060408501359150606085013567ffffffffffffffff81111561349157600080fd5b61338a878288016130d0565b602081526000611b7b60208301846133ba565b6000602082840312156134c257600080fd5b5035919050565b600080602083850312156134dc57600080fd5b823567ffffffffffffffff808211156134f457600080fd5b818501915085601f83011261350857600080fd5b81358181111561351757600080fd5b8660208260051b850101111561352c57600080fd5b60209290920196919550909350505050565b6000806040838503121561355157600080fd5b823567ffffffffffffffff8082111561356957600080fd5b61357586838701613191565b9350602085013591508082111561358b57600080fd5b506131638582860161320e565b6000602082840312156135aa57600080fd5b611b7b826131f7565b6000602082840312156135c557600080fd5b813567ffffffffffffffff8111156135dc57600080fd5b610ceb84828501613191565b805160208201516bffffffffffffffffffffffff19808216929190601483101561361c5780818460140360031b1b83161693505b505050919050565b6001600160a01b038516815283602082015282604082015260806060820152600061284f60808301846133ba565b60006020828403121561366457600080fd5b815167ffffffffffffffff81111561367b57600080fd5b8201601f8101841361368c57600080fd5b805161369a6130ef826130a8565b8181528560208385010111156136af57600080fd5b612b58826020830160208601613396565b6040815260006136d360408301856133ba565b8281036020840152612b5881856133ba565b8385823760609290921b6bffffffffffffffffffffffff1916919092019081526014810191909152603401919050565b60008251613727818460208701613396565b9190910192915050565b828152604060208201526000610ceb60408301846133ba565b60006020828403121561375c57600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b60408152600061378c60408301846133ba565b828103602093840152600081529190910192915050565b634e487b7160e01b600052603260045260246000fd5b6000808335601e198436030181126137d057600080fd5b83018035915067ffffffffffffffff8211156137eb57600080fd5b602001915036819003821315611bc057600080fd5b8183823760009101908152919050565b600181811c9082168061382457607f821691505b6020821081036116c357634e487b7160e01b600052602260045260246000fd5b805160208083015191908110156116c35760001960209190910360031b1b16919050565b60006001600160a01b038089168352808816602084015280871660408401525084606083015260a060808301528260a0830152828460c0840137600060c0848401015260c0601f19601f8501168301019050979650505050505050565b6000602082840312156138d757600080fd5b8151611b7b8161302e565b60006bffffffffffffffffffffffff19808960601b168352808860601b166014840152808760601b1660288401525084603c8301528284605c8401375060009101605c0190815295945050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561094b5761094b613932565b601f8211156110a957600081815260208120601f850160051c810160208610156139825750805b601f850160051c820191505b818110156139a15782815560010161398e565b505050505050565b815167ffffffffffffffff8111156139c3576139c3613061565b6139d7816139d18454613810565b8461395b565b602080601f831160018114613a0c57600084156139f45750858301515b600019600386901b1c1916600185901b1785556139a1565b600085815260208120601f198616915b82811015613a3b57888601518255948401946001909101908401613a1c565b5085821015613a595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000815160208301516001600160e01b03198082169350600483101561361c5760049290920360031b82901b161692915050565b8181038181111561094b5761094b61393256fea26469706673582212207811b92da1adacf4720204799087ced7d616ed0ff4634270007babf4beff36dc64736f6c63430008110033",
694
+ "linkReferences": {},
695
+ "deployedLinkReferences": {}
696
+ }