@ember-finance/sdk 1.1.4 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +169 -2
- package/dist/src/abis/ERC20Token.json +196 -2
- package/dist/src/abis/EmberVault.json +90 -7
- package/dist/src/evm-vaults/interfaces/index.d.ts +13 -0
- package/dist/src/evm-vaults/on-chain-calls/tx-builder.d.ts +19 -1
- package/dist/src/evm-vaults/on-chain-calls/tx-builder.js +50 -0
- package/dist/src/evm-vaults/on-chain-calls/user.d.ts +74 -4
- package/dist/src/evm-vaults/on-chain-calls/user.js +81 -3
- package/dist/src/evm-vaults/utils/index.d.ts +1 -0
- package/dist/src/evm-vaults/utils/index.js +1 -0
- package/dist/src/evm-vaults/utils/permit-utils.d.ts +112 -0
- package/dist/src/evm-vaults/utils/permit-utils.js +226 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -83,6 +83,8 @@ console.log("Deposit successful:", result);
|
|
|
83
83
|
The EVM vaults implement the ERC-4626 tokenized vault standard. The vault contract itself
|
|
84
84
|
is the share token, so there's no separate receipt token.
|
|
85
85
|
|
|
86
|
+
#### Traditional Approach (Two Transactions)
|
|
87
|
+
|
|
86
88
|
```typescript
|
|
87
89
|
import { EmberVaults } from "@ember-finance/sdk";
|
|
88
90
|
import { ethers } from "ethers";
|
|
@@ -148,6 +150,51 @@ const resultWithEvents = await ember.user.deposit(
|
|
|
148
150
|
console.log("Events:", resultWithEvents.events);
|
|
149
151
|
```
|
|
150
152
|
|
|
153
|
+
#### New Approach: Single Transaction with EIP-2612 Permit (Recommended)
|
|
154
|
+
|
|
155
|
+
The new `depositWithPermit` and `mintWithPermit` methods allow depositing in a **single
|
|
156
|
+
transaction** without requiring a separate approval transaction. This uses EIP-2612 permit
|
|
157
|
+
signatures.
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
import { EmberVaults, signPermitSimple } from "@ember-finance/sdk";
|
|
161
|
+
import { ethers } from "ethers";
|
|
162
|
+
|
|
163
|
+
// Setup (same as above)
|
|
164
|
+
const provider = new ethers.JsonRpcProvider("https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY");
|
|
165
|
+
const signer = new ethers.Wallet(privateKey, provider);
|
|
166
|
+
|
|
167
|
+
const ember = new EmberVaults({
|
|
168
|
+
chainType: "evm",
|
|
169
|
+
signer,
|
|
170
|
+
provider,
|
|
171
|
+
deployment,
|
|
172
|
+
environment: "prod"
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
const vaultAddress = deployment.contracts.vaults["USDC Vault"].proxyAddress;
|
|
176
|
+
const underlyingAsset = deployment.contracts.vaults["USDC Vault"].baseToken;
|
|
177
|
+
const depositAmount = "1000000"; // 1 USDC (6 decimals)
|
|
178
|
+
|
|
179
|
+
// Generate permit signature (off-chain, no gas cost)
|
|
180
|
+
const permitSig = await signPermitSimple(
|
|
181
|
+
signer,
|
|
182
|
+
underlyingAsset,
|
|
183
|
+
"USD Coin", // Token name (must match token's EIP-2612 name)
|
|
184
|
+
vaultAddress,
|
|
185
|
+
depositAmount
|
|
186
|
+
);
|
|
187
|
+
|
|
188
|
+
// Deposit with permit in a SINGLE transaction (no separate approval needed!)
|
|
189
|
+
const result = await ember.user.depositWithPermit(
|
|
190
|
+
vaultAddress,
|
|
191
|
+
depositAmount,
|
|
192
|
+
permitSig
|
|
193
|
+
);
|
|
194
|
+
|
|
195
|
+
console.log("Deposit successful:", result);
|
|
196
|
+
```
|
|
197
|
+
|
|
151
198
|
### EVM - Deposit to a Different Receiver
|
|
152
199
|
|
|
153
200
|
```typescript
|
|
@@ -161,10 +208,15 @@ const result = await ember.user.deposit(
|
|
|
161
208
|
|
|
162
209
|
### EVM - Mint Specific Shares (ERC-4626)
|
|
163
210
|
|
|
211
|
+
#### Traditional Approach (Requires Approval)
|
|
212
|
+
|
|
164
213
|
```typescript
|
|
165
214
|
// Mint a specific number of shares (vault will pull required assets)
|
|
166
215
|
const sharesToMint = "1000000000000000000"; // 1e18 shares
|
|
167
216
|
|
|
217
|
+
// Must approve first
|
|
218
|
+
await ember.user.approveTokenMax(underlyingAsset, vaultAddress);
|
|
219
|
+
|
|
168
220
|
await ember.user.mint(vaultAddress, sharesToMint);
|
|
169
221
|
|
|
170
222
|
// Mint to a different receiver
|
|
@@ -173,6 +225,31 @@ await ember.user.mint(vaultAddress, sharesToMint, {
|
|
|
173
225
|
});
|
|
174
226
|
```
|
|
175
227
|
|
|
228
|
+
#### Single Transaction with Permit
|
|
229
|
+
|
|
230
|
+
```typescript
|
|
231
|
+
import { signPermitSimple } from "@ember-finance/sdk";
|
|
232
|
+
|
|
233
|
+
const sharesToMint = "1000000000000000000"; // 1e18 shares
|
|
234
|
+
|
|
235
|
+
// Generate permit signature for a high amount (vault will pull exact amount needed)
|
|
236
|
+
const permitSig = await signPermitSimple(
|
|
237
|
+
signer,
|
|
238
|
+
underlyingAsset,
|
|
239
|
+
"USD Coin",
|
|
240
|
+
vaultAddress,
|
|
241
|
+
"115792089237316195423570985008687907853269984665640564039457584007913129639935" // max uint256
|
|
242
|
+
);
|
|
243
|
+
|
|
244
|
+
// Mint with permit in single transaction
|
|
245
|
+
await ember.user.mintWithPermit(vaultAddress, sharesToMint, permitSig);
|
|
246
|
+
|
|
247
|
+
// Mint to a different receiver
|
|
248
|
+
await ember.user.mintWithPermit(vaultAddress, sharesToMint, permitSig, {
|
|
249
|
+
receiver: "0xRecipientAddress..."
|
|
250
|
+
});
|
|
251
|
+
```
|
|
252
|
+
|
|
176
253
|
### EVM - Redeem Shares (Initiate Withdrawal)
|
|
177
254
|
|
|
178
255
|
```typescript
|
|
@@ -236,13 +313,25 @@ Handle user-facing vault operations:
|
|
|
236
313
|
|
|
237
314
|
**EVM (ERC-4626):**
|
|
238
315
|
|
|
239
|
-
- **deposit**: Deposit assets and receive shares (ERC-4626 standard)
|
|
240
|
-
- **
|
|
316
|
+
- **deposit**: Deposit assets and receive shares (ERC-4626 standard, requires approval)
|
|
317
|
+
- **depositWithPermit**: Deposit assets using EIP-2612 permit (single transaction, no
|
|
318
|
+
approval needed) ✨ **NEW**
|
|
319
|
+
- **mint**: Mint specific shares by depositing required assets (ERC-4626 standard,
|
|
320
|
+
requires approval)
|
|
321
|
+
- **mintWithPermit**: Mint shares using EIP-2612 permit (single transaction, no approval
|
|
322
|
+
needed) ✨ **NEW**
|
|
241
323
|
- **redeemShares**: Redeem shares to initiate withdrawal request
|
|
242
324
|
- **cancelPendingWithdrawalRequest**: Cancel pending withdrawal requests
|
|
243
325
|
- **approveToken**: Approve token spending
|
|
244
326
|
- **approveTokenMax**: Approve maximum token spending
|
|
245
327
|
|
|
328
|
+
**Permit Utilities (EVM):** ✨ **NEW**
|
|
329
|
+
|
|
330
|
+
- **signPermitSimple**: Generate EIP-2612 permit signature with automatic nonce and
|
|
331
|
+
deadline
|
|
332
|
+
- **signPermit**: Generate EIP-2612 permit signature with custom parameters
|
|
333
|
+
- **getPermitNonce**: Get current permit nonce for a user
|
|
334
|
+
|
|
246
335
|
**SUI:**
|
|
247
336
|
|
|
248
337
|
- **depositAsset**: Deposit assets into a vault
|
|
@@ -283,6 +372,84 @@ Vault-specific administrative controls (called via ProtocolConfig on EVM):
|
|
|
283
372
|
- **updateVaultRateUpdateInterval**: Update rate update interval
|
|
284
373
|
- **updateVaultName**: Update vault name
|
|
285
374
|
|
|
375
|
+
## EIP-2612 Permit Support (EVM) ✨ **NEW**
|
|
376
|
+
|
|
377
|
+
The Ember vaults now support **EIP-2612 permit signatures**, allowing users to deposit or
|
|
378
|
+
mint shares in a **single transaction** without requiring a separate approval transaction.
|
|
379
|
+
This significantly improves the user experience by:
|
|
380
|
+
|
|
381
|
+
- Reducing gas costs (one transaction instead of two)
|
|
382
|
+
- Eliminating the need to wait for approval transaction confirmation
|
|
383
|
+
- Providing a smoother, faster deposit flow
|
|
384
|
+
|
|
385
|
+
### How Permit Works
|
|
386
|
+
|
|
387
|
+
EIP-2612 allows users to sign an off-chain message (no gas cost) that authorizes the vault
|
|
388
|
+
to spend their tokens. This signature is then included in the deposit/mint transaction,
|
|
389
|
+
which handles both the approval and the deposit atomically.
|
|
390
|
+
|
|
391
|
+
### Using Permit with the SDK
|
|
392
|
+
|
|
393
|
+
```typescript
|
|
394
|
+
import { EmberVaults, signPermitSimple } from "@ember-finance/sdk";
|
|
395
|
+
|
|
396
|
+
// 1. Generate permit signature (off-chain, no gas)
|
|
397
|
+
const permitSig = await signPermitSimple(
|
|
398
|
+
signer,
|
|
399
|
+
tokenAddress,
|
|
400
|
+
"USD Coin", // Token name (must match EIP-2612 name)
|
|
401
|
+
vaultAddress,
|
|
402
|
+
amount
|
|
403
|
+
);
|
|
404
|
+
|
|
405
|
+
// 2. Deposit with permit (single transaction)
|
|
406
|
+
await ember.user.depositWithPermit(vaultAddress, amount, permitSig);
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
### Advanced Permit Usage
|
|
410
|
+
|
|
411
|
+
For more control over the permit parameters:
|
|
412
|
+
|
|
413
|
+
```typescript
|
|
414
|
+
import { signPermit, getPermitNonce } from "@ember-finance/sdk";
|
|
415
|
+
|
|
416
|
+
// Get current nonce for the user
|
|
417
|
+
const nonce = await getPermitNonce(tokenAddress, userAddress, provider);
|
|
418
|
+
|
|
419
|
+
// Set custom deadline (e.g., 24 hours from now)
|
|
420
|
+
const deadline = BigInt(Math.floor(Date.now() / 1000) + 86400);
|
|
421
|
+
|
|
422
|
+
// Get chain ID
|
|
423
|
+
const network = await provider.getNetwork();
|
|
424
|
+
const chainId = network.chainId;
|
|
425
|
+
|
|
426
|
+
// Sign permit with custom parameters
|
|
427
|
+
const permitSig = await signPermit(
|
|
428
|
+
signer,
|
|
429
|
+
tokenAddress,
|
|
430
|
+
"USD Coin",
|
|
431
|
+
vaultAddress,
|
|
432
|
+
amount,
|
|
433
|
+
deadline,
|
|
434
|
+
nonce,
|
|
435
|
+
chainId
|
|
436
|
+
);
|
|
437
|
+
|
|
438
|
+
// Use the permit
|
|
439
|
+
await ember.user.depositWithPermit(vaultAddress, amount, permitSig);
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### Important Notes
|
|
443
|
+
|
|
444
|
+
- **Token Support**: The underlying token must support EIP-2612 permit. Most modern
|
|
445
|
+
tokens (USDC, DAI, etc.) support this standard.
|
|
446
|
+
- **Token Name**: The token name passed to `signPermit` must match the token's EIP-2612
|
|
447
|
+
domain name exactly.
|
|
448
|
+
- **Deadline**: Permit signatures have a deadline. After the deadline, the signature
|
|
449
|
+
becomes invalid.
|
|
450
|
+
- **Nonce**: Each permit signature uses a nonce. Once used, the nonce increments and the
|
|
451
|
+
signature cannot be reused.
|
|
452
|
+
|
|
286
453
|
## ERC-4626 Compatibility (EVM)
|
|
287
454
|
|
|
288
455
|
The EVM vaults are fully ERC-4626 compliant:
|
|
@@ -19,6 +19,33 @@
|
|
|
19
19
|
"name": "AddressEmptyCode",
|
|
20
20
|
"type": "error"
|
|
21
21
|
},
|
|
22
|
+
{
|
|
23
|
+
"inputs": [],
|
|
24
|
+
"name": "ECDSAInvalidSignature",
|
|
25
|
+
"type": "error"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"inputs": [
|
|
29
|
+
{
|
|
30
|
+
"internalType": "uint256",
|
|
31
|
+
"name": "length",
|
|
32
|
+
"type": "uint256"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"name": "ECDSAInvalidSignatureLength",
|
|
36
|
+
"type": "error"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"inputs": [
|
|
40
|
+
{
|
|
41
|
+
"internalType": "bytes32",
|
|
42
|
+
"name": "s",
|
|
43
|
+
"type": "bytes32"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"name": "ECDSAInvalidSignatureS",
|
|
47
|
+
"type": "error"
|
|
48
|
+
},
|
|
22
49
|
{
|
|
23
50
|
"inputs": [
|
|
24
51
|
{
|
|
@@ -121,11 +148,54 @@
|
|
|
121
148
|
"name": "ERC20InvalidSpender",
|
|
122
149
|
"type": "error"
|
|
123
150
|
},
|
|
151
|
+
{
|
|
152
|
+
"inputs": [
|
|
153
|
+
{
|
|
154
|
+
"internalType": "uint256",
|
|
155
|
+
"name": "deadline",
|
|
156
|
+
"type": "uint256"
|
|
157
|
+
}
|
|
158
|
+
],
|
|
159
|
+
"name": "ERC2612ExpiredSignature",
|
|
160
|
+
"type": "error"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"inputs": [
|
|
164
|
+
{
|
|
165
|
+
"internalType": "address",
|
|
166
|
+
"name": "signer",
|
|
167
|
+
"type": "address"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"internalType": "address",
|
|
171
|
+
"name": "owner",
|
|
172
|
+
"type": "address"
|
|
173
|
+
}
|
|
174
|
+
],
|
|
175
|
+
"name": "ERC2612InvalidSigner",
|
|
176
|
+
"type": "error"
|
|
177
|
+
},
|
|
124
178
|
{
|
|
125
179
|
"inputs": [],
|
|
126
180
|
"name": "FailedCall",
|
|
127
181
|
"type": "error"
|
|
128
182
|
},
|
|
183
|
+
{
|
|
184
|
+
"inputs": [
|
|
185
|
+
{
|
|
186
|
+
"internalType": "address",
|
|
187
|
+
"name": "account",
|
|
188
|
+
"type": "address"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"internalType": "uint256",
|
|
192
|
+
"name": "currentNonce",
|
|
193
|
+
"type": "uint256"
|
|
194
|
+
}
|
|
195
|
+
],
|
|
196
|
+
"name": "InvalidAccountNonce",
|
|
197
|
+
"type": "error"
|
|
198
|
+
},
|
|
129
199
|
{
|
|
130
200
|
"inputs": [],
|
|
131
201
|
"name": "InvalidInitialization",
|
|
@@ -199,6 +269,12 @@
|
|
|
199
269
|
"name": "Approval",
|
|
200
270
|
"type": "event"
|
|
201
271
|
},
|
|
272
|
+
{
|
|
273
|
+
"anonymous": false,
|
|
274
|
+
"inputs": [],
|
|
275
|
+
"name": "EIP712DomainChanged",
|
|
276
|
+
"type": "event"
|
|
277
|
+
},
|
|
202
278
|
{
|
|
203
279
|
"anonymous": false,
|
|
204
280
|
"inputs": [
|
|
@@ -307,6 +383,19 @@
|
|
|
307
383
|
"name": "Upgraded",
|
|
308
384
|
"type": "event"
|
|
309
385
|
},
|
|
386
|
+
{
|
|
387
|
+
"inputs": [],
|
|
388
|
+
"name": "DOMAIN_SEPARATOR",
|
|
389
|
+
"outputs": [
|
|
390
|
+
{
|
|
391
|
+
"internalType": "bytes32",
|
|
392
|
+
"name": "",
|
|
393
|
+
"type": "bytes32"
|
|
394
|
+
}
|
|
395
|
+
],
|
|
396
|
+
"stateMutability": "view",
|
|
397
|
+
"type": "function"
|
|
398
|
+
},
|
|
310
399
|
{
|
|
311
400
|
"inputs": [],
|
|
312
401
|
"name": "UPGRADE_INTERFACE_VERSION",
|
|
@@ -431,6 +520,49 @@
|
|
|
431
520
|
"stateMutability": "view",
|
|
432
521
|
"type": "function"
|
|
433
522
|
},
|
|
523
|
+
{
|
|
524
|
+
"inputs": [],
|
|
525
|
+
"name": "eip712Domain",
|
|
526
|
+
"outputs": [
|
|
527
|
+
{
|
|
528
|
+
"internalType": "bytes1",
|
|
529
|
+
"name": "fields",
|
|
530
|
+
"type": "bytes1"
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"internalType": "string",
|
|
534
|
+
"name": "name",
|
|
535
|
+
"type": "string"
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"internalType": "string",
|
|
539
|
+
"name": "version",
|
|
540
|
+
"type": "string"
|
|
541
|
+
},
|
|
542
|
+
{
|
|
543
|
+
"internalType": "uint256",
|
|
544
|
+
"name": "chainId",
|
|
545
|
+
"type": "uint256"
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"internalType": "address",
|
|
549
|
+
"name": "verifyingContract",
|
|
550
|
+
"type": "address"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"internalType": "bytes32",
|
|
554
|
+
"name": "salt",
|
|
555
|
+
"type": "bytes32"
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"internalType": "uint256[]",
|
|
559
|
+
"name": "extensions",
|
|
560
|
+
"type": "uint256[]"
|
|
561
|
+
}
|
|
562
|
+
],
|
|
563
|
+
"stateMutability": "view",
|
|
564
|
+
"type": "function"
|
|
565
|
+
},
|
|
434
566
|
{
|
|
435
567
|
"inputs": [
|
|
436
568
|
{
|
|
@@ -495,6 +627,25 @@
|
|
|
495
627
|
"stateMutability": "view",
|
|
496
628
|
"type": "function"
|
|
497
629
|
},
|
|
630
|
+
{
|
|
631
|
+
"inputs": [
|
|
632
|
+
{
|
|
633
|
+
"internalType": "address",
|
|
634
|
+
"name": "owner",
|
|
635
|
+
"type": "address"
|
|
636
|
+
}
|
|
637
|
+
],
|
|
638
|
+
"name": "nonces",
|
|
639
|
+
"outputs": [
|
|
640
|
+
{
|
|
641
|
+
"internalType": "uint256",
|
|
642
|
+
"name": "",
|
|
643
|
+
"type": "uint256"
|
|
644
|
+
}
|
|
645
|
+
],
|
|
646
|
+
"stateMutability": "view",
|
|
647
|
+
"type": "function"
|
|
648
|
+
},
|
|
498
649
|
{
|
|
499
650
|
"inputs": [],
|
|
500
651
|
"name": "owner",
|
|
@@ -508,6 +659,49 @@
|
|
|
508
659
|
"stateMutability": "view",
|
|
509
660
|
"type": "function"
|
|
510
661
|
},
|
|
662
|
+
{
|
|
663
|
+
"inputs": [
|
|
664
|
+
{
|
|
665
|
+
"internalType": "address",
|
|
666
|
+
"name": "owner",
|
|
667
|
+
"type": "address"
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
"internalType": "address",
|
|
671
|
+
"name": "spender",
|
|
672
|
+
"type": "address"
|
|
673
|
+
},
|
|
674
|
+
{
|
|
675
|
+
"internalType": "uint256",
|
|
676
|
+
"name": "value",
|
|
677
|
+
"type": "uint256"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"internalType": "uint256",
|
|
681
|
+
"name": "deadline",
|
|
682
|
+
"type": "uint256"
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
"internalType": "uint8",
|
|
686
|
+
"name": "v",
|
|
687
|
+
"type": "uint8"
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"internalType": "bytes32",
|
|
691
|
+
"name": "r",
|
|
692
|
+
"type": "bytes32"
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
"internalType": "bytes32",
|
|
696
|
+
"name": "s",
|
|
697
|
+
"type": "bytes32"
|
|
698
|
+
}
|
|
699
|
+
],
|
|
700
|
+
"name": "permit",
|
|
701
|
+
"outputs": [],
|
|
702
|
+
"stateMutability": "nonpayable",
|
|
703
|
+
"type": "function"
|
|
704
|
+
},
|
|
511
705
|
{
|
|
512
706
|
"inputs": [],
|
|
513
707
|
"name": "proxiableUUID",
|
|
@@ -652,8 +846,8 @@
|
|
|
652
846
|
"type": "function"
|
|
653
847
|
}
|
|
654
848
|
],
|
|
655
|
-
"bytecode": "0x60a080604052346100cc57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100bd57506001600160401b036002600160401b031982821601610078575b60405161143190816100d28239608051818181610a130152610aba0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1388080610059565b63f92ee8a960e01b8152600490fd5b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e6b57508063095ea7b314610dea57806318160ddd14610dbf57806323b872dd14610cda578063313ce5671461069957806340c10f1914610c755780634f1ef28614610a6b57806352d1902d14610a0057806354fd4d50146109c157806370a082311461097a578063715018a6146109105780638da5cb5b146108da57806395d89b41146107fc5780639dc29fac146106eb578063a9059cbb146106ba578063ace28fa514610699578063ad3cb1cc14610657578063d72bdc5314610174578063dd62ed3e1461012b5763f2fde38b146100fb57600080fd5b3461012657602036600319011261012657610124610117610f4e565b61011f6111d0565b611099565b005b600080fd5b3461012657604036600319011261012657610144610f4e565b61015561014f610f64565b91611060565b9060018060a01b03166000526020526020604060002054604051908152f35b346101265760a03660031901126101265761018d610f4e565b6024356001600160401b038111610126576101ac903690600401611008565b6044356001600160401b038111610126576101cb903690600401611008565b916064359260ff84168403610126576000805160206113dc83398151915254926001600160401b03841680159081610647575b600114908161063d575b159081610634575b506106225760016001600160401b03198516176000805160206113dc8339815191525560ff8460401c16156105f5575b610248611289565b610250611289565b8051906001600160401b0382116104d857819061027b60008051602061131c83398151915254611026565b601f811161057b575b50602090601f83116001146104f9576000926104ee575b50508160011b916000199060031b1c19161760008051602061131c833981519152555b80516001600160401b0381116104d8577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04916102fa8354611026565b601f8111610490575b50602090601f831160011461042457918060ff979392889593600092610419575b50508160011b916000199060031b1c19161790555b610341611289565b610349611289565b61035283611099565b61035a611289565b16831960005416176000556084356103cd575b5060401c161561037957005b60ff60401b196000805160206113dc83398151915254166000805160206113dc833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b6103d960843582611209565b60405160843581526001600160a01b03909116907fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a890602090a28261036d565b015190508880610324565b90601f1983169184600052816000209260005b818110610478575092600192859260ff9a968b98961061045f575b505050811b019055610339565b015160001960f88460031b161c19169055888080610452565b92936020600181928786015181550195019301610437565b836000526020600020601f840160051c810191602085106104ce575b601f0160051c01905b8181106104c25750610303565b600081556001016104b5565b90915081906104ac565b634e487b7160e01b600052604160045260246000fd5b01519050868061029b565b60008051602061131c83398151915260009081528281209350601f198516905b818110610563575090846001959493921061054a575b505050811b0160008051602061131c833981519152556102be565b015160001960f88460031b161c1916905586808061052f565b92936020600181928786015181550195019301610519565b60008051602061131c8339815191526000529091507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c8101602085106105ee575b90849392915b601f830160051c820181106105df575050610284565b600081558594506001016105c9565b50806105c3565b68ffffffffffffffffff19841668010000000000000001176000805160206113dc83398151915255610240565b60405163f92ee8a960e01b8152600490fd5b90501586610210565b303b159150610208565b604086901c60ff161591506101fe565b346101265760003660031901126101265761069560405161067781610f7a565b60058152640352e302e360dc1b602082015260405191829182610f05565b0390f35b3461012657600036600319011261012657602060ff60005416604051908152f35b34610126576040366003190112610126576106e06106d6610f4e565b602435903361110d565b602060405160018152f35b3461012657604036600319011261012657610704610f4e565b60243561070f6111d0565b6001600160a01b0382169081156107e3578160005260008051602061133c83398151915280602052604060002054938285106107b25750817f1af5163f80e79b5e554f61e1d052084d3a3fe1166e42a265798c4e2ddce8ffa292856020938660005284520360406000205560008051602061137c8339815191528181540390556000846000805160206113bc83398151915284604051858152a3604051908152a2005b60405163391434e360e21b81526001600160a01b039190911660048201526024810185905260448101839052606490fd5b604051634b637e8f60e11b815260006004820152602490fd5b34610126576000366003190112610126576040516000907f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04805461083f81611026565b908184526020926001916001811690816000146108b8575060011461087b575b6106958561086f81890382610f95565b60405191829182610f05565b6000908152838120939550925b8284106108a557505050816106959361086f92820101938561085f565b8054858501870152928501928101610888565b60ff191686860152505050151560051b820101915061086f816106958561085f565b346101265760003660031901126101265760008051602061135c833981519152546040516001600160a01b039091168152602090f35b34610126576000366003190112610126576109296111d0565b60008051602061135c83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610126576020366003190112610126576001600160a01b0361099b610f4e565b1660005260008051602061133c8339815191526020526020604060002054604051908152f35b34610126576000366003190112610126576106956040516109e181610f7a565b6006815265076312e302e360d41b602082015260405191829182610f05565b34610126576000366003190112610126577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610a5957602060405160008051602061139c8339815191528152f35b60405163703e46dd60e11b8152600490fd5b604036600319011261012657610a7f610f4e565b6024356001600160401b038111610126573660238201121561012657610aaf903690602481600401359101610fd1565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610c59575b50610a5957610af36111d0565b6040516352d1902d60e01b8152908216916020918281600481875afa60009181610c2a575b50610b3657604051634c9c8ce360e01b815260048101859052602490fd5b92849360008051602061139c83398151915290818103610c125750823b15610bf95780546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2835115610bdf5750600080848461012496519101845af4903d15610bd6573d610bb981610fb6565b90610bc76040519283610f95565b8152600081943d92013e6112b8565b606092506112b8565b9250505034610bea57005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101839052602490fd5b60249060405190632a87526960e21b82526004820152fd5b9091508381813d8311610c52575b610c428183610f95565b8101031261012657519086610b18565b503d610c38565b90508160008051602061139c8339815191525416141584610ae6565b3461012657604036600319011261012657610c8e610f4e565b7fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a8602060243592610cbd6111d0565b610cc78482611209565b6040519384526001600160a01b031692a2005b3461012657606036600319011261012657610cf3610f4e565b610cfb610f64565b60443590610d0883611060565b33600052602052604060002054926000198410610d2a575b6106e0935061110d565b828410610d99576001600160a01b03811615610d80573315610d6757826106e094610d5483611060565b3360005260205203604060002055610d20565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b3461012657600036600319011261012657602060008051602061137c83398151915254604051908152f35b3461012657604036600319011261012657610e03610f4e565b602435903315610d80576001600160a01b0316908115610d6757610e2633611060565b82600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101265760003660031901126101265760009060008051602061131c8339815191528054610e9981611026565b908184526020926001916001811690816000146108b85750600114610ec8576106958561086f81890382610f95565b6000908152838120939550925b828410610ef257505050816106959361086f92820101938561085f565b8054858501870152928501928101610ed5565b6020808252825181830181905290939260005b828110610f3a57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610f18565b600435906001600160a01b038216820361012657565b602435906001600160a01b038216820361012657565b604081019081106001600160401b038211176104d857604052565b90601f801991011681019081106001600160401b038211176104d857604052565b6001600160401b0381116104d857601f01601f191660200190565b929192610fdd82610fb6565b91610feb6040519384610f95565b829481845281830111610126578281602093846000960137010152565b9080601f830112156101265781602061102393359101610fd1565b90565b90600182811c92168015611056575b602083101461104057565b634e487b7160e01b600052602260045260246000fd5b91607f1691611035565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b039081169081156110f45760008051602061135c83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b916001600160a01b038084169283156107e357169283156111b75760009083825260008051602061133c83398151915280602052604083205491848310611184575082846000805160206113bc833981519152959360409388602097528652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b0391909116600482015260248101929092525060448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b60008051602061135c833981519152546001600160a01b031633036111f157565b60405163118cdaa760e01b8152336004820152602490fd5b6001600160a01b03169081156111b75760008051602061137c833981519152805490828201809211611273576000926000805160206113bc833981519152926020925584845260008051602061133c833981519152825260408420818154019055604051908152a3565b634e487b7160e01b600052601160045260246000fd5b60ff6000805160206113dc8339815191525460401c16156112a657565b604051631afcd79f60e31b8152600490fd5b906112df57508051156112cd57602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580611312575b6112f0575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156112e856fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace009016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3eff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202e728f8d0d4fb0fdb61b5a41d5faea56d248660ee1067da3fe6a3f457f40283664736f6c63430008160033",
|
|
656
|
-
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816306fdde0314610e6b57508063095ea7b314610dea57806318160ddd14610dbf57806323b872dd14610cda578063313ce5671461069957806340c10f1914610c755780634f1ef28614610a6b57806352d1902d14610a0057806354fd4d50146109c157806370a082311461097a578063715018a6146109105780638da5cb5b146108da57806395d89b41146107fc5780639dc29fac146106eb578063a9059cbb146106ba578063ace28fa514610699578063ad3cb1cc14610657578063d72bdc5314610174578063dd62ed3e1461012b5763f2fde38b146100fb57600080fd5b3461012657602036600319011261012657610124610117610f4e565b61011f6111d0565b611099565b005b600080fd5b3461012657604036600319011261012657610144610f4e565b61015561014f610f64565b91611060565b9060018060a01b03166000526020526020604060002054604051908152f35b346101265760a03660031901126101265761018d610f4e565b6024356001600160401b038111610126576101ac903690600401611008565b6044356001600160401b038111610126576101cb903690600401611008565b916064359260ff84168403610126576000805160206113dc83398151915254926001600160401b03841680159081610647575b600114908161063d575b159081610634575b506106225760016001600160401b03198516176000805160206113dc8339815191525560ff8460401c16156105f5575b610248611289565b610250611289565b8051906001600160401b0382116104d857819061027b60008051602061131c83398151915254611026565b601f811161057b575b50602090601f83116001146104f9576000926104ee575b50508160011b916000199060031b1c19161760008051602061131c833981519152555b80516001600160401b0381116104d8577f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04916102fa8354611026565b601f8111610490575b50602090601f831160011461042457918060ff979392889593600092610419575b50508160011b916000199060031b1c19161790555b610341611289565b610349611289565b61035283611099565b61035a611289565b16831960005416176000556084356103cd575b5060401c161561037957005b60ff60401b196000805160206113dc83398151915254166000805160206113dc833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b6103d960843582611209565b60405160843581526001600160a01b03909116907fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a890602090a28261036d565b015190508880610324565b90601f1983169184600052816000209260005b818110610478575092600192859260ff9a968b98961061045f575b505050811b019055610339565b015160001960f88460031b161c19169055888080610452565b92936020600181928786015181550195019301610437565b836000526020600020601f840160051c810191602085106104ce575b601f0160051c01905b8181106104c25750610303565b600081556001016104b5565b90915081906104ac565b634e487b7160e01b600052604160045260246000fd5b01519050868061029b565b60008051602061131c83398151915260009081528281209350601f198516905b818110610563575090846001959493921061054a575b505050811b0160008051602061131c833981519152556102be565b015160001960f88460031b161c1916905586808061052f565b92936020600181928786015181550195019301610519565b60008051602061131c8339815191526000529091507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c8101602085106105ee575b90849392915b601f830160051c820181106105df575050610284565b600081558594506001016105c9565b50806105c3565b68ffffffffffffffffff19841668010000000000000001176000805160206113dc83398151915255610240565b60405163f92ee8a960e01b8152600490fd5b90501586610210565b303b159150610208565b604086901c60ff161591506101fe565b346101265760003660031901126101265761069560405161067781610f7a565b60058152640352e302e360dc1b602082015260405191829182610f05565b0390f35b3461012657600036600319011261012657602060ff60005416604051908152f35b34610126576040366003190112610126576106e06106d6610f4e565b602435903361110d565b602060405160018152f35b3461012657604036600319011261012657610704610f4e565b60243561070f6111d0565b6001600160a01b0382169081156107e3578160005260008051602061133c83398151915280602052604060002054938285106107b25750817f1af5163f80e79b5e554f61e1d052084d3a3fe1166e42a265798c4e2ddce8ffa292856020938660005284520360406000205560008051602061137c8339815191528181540390556000846000805160206113bc83398151915284604051858152a3604051908152a2005b60405163391434e360e21b81526001600160a01b039190911660048201526024810185905260448101839052606490fd5b604051634b637e8f60e11b815260006004820152602490fd5b34610126576000366003190112610126576040516000907f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04805461083f81611026565b908184526020926001916001811690816000146108b8575060011461087b575b6106958561086f81890382610f95565b60405191829182610f05565b6000908152838120939550925b8284106108a557505050816106959361086f92820101938561085f565b8054858501870152928501928101610888565b60ff191686860152505050151560051b820101915061086f816106958561085f565b346101265760003660031901126101265760008051602061135c833981519152546040516001600160a01b039091168152602090f35b34610126576000366003190112610126576109296111d0565b60008051602061135c83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610126576020366003190112610126576001600160a01b0361099b610f4e565b1660005260008051602061133c8339815191526020526020604060002054604051908152f35b34610126576000366003190112610126576106956040516109e181610f7a565b6006815265076312e302e360d41b602082015260405191829182610f05565b34610126576000366003190112610126577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610a5957602060405160008051602061139c8339815191528152f35b60405163703e46dd60e11b8152600490fd5b604036600319011261012657610a7f610f4e565b6024356001600160401b038111610126573660238201121561012657610aaf903690602481600401359101610fd1565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610c59575b50610a5957610af36111d0565b6040516352d1902d60e01b8152908216916020918281600481875afa60009181610c2a575b50610b3657604051634c9c8ce360e01b815260048101859052602490fd5b92849360008051602061139c83398151915290818103610c125750823b15610bf95780546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a2835115610bdf5750600080848461012496519101845af4903d15610bd6573d610bb981610fb6565b90610bc76040519283610f95565b8152600081943d92013e6112b8565b606092506112b8565b9250505034610bea57005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101839052602490fd5b60249060405190632a87526960e21b82526004820152fd5b9091508381813d8311610c52575b610c428183610f95565b8101031261012657519086610b18565b503d610c38565b90508160008051602061139c8339815191525416141584610ae6565b3461012657604036600319011261012657610c8e610f4e565b7fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a8602060243592610cbd6111d0565b610cc78482611209565b6040519384526001600160a01b031692a2005b3461012657606036600319011261012657610cf3610f4e565b610cfb610f64565b60443590610d0883611060565b33600052602052604060002054926000198410610d2a575b6106e0935061110d565b828410610d99576001600160a01b03811615610d80573315610d6757826106e094610d5483611060565b3360005260205203604060002055610d20565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b3461012657600036600319011261012657602060008051602061137c83398151915254604051908152f35b3461012657604036600319011261012657610e03610f4e565b602435903315610d80576001600160a01b0316908115610d6757610e2633611060565b82600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101265760003660031901126101265760009060008051602061131c8339815191528054610e9981611026565b908184526020926001916001811690816000146108b85750600114610ec8576106958561086f81890382610f95565b6000908152838120939550925b828410610ef257505050816106959361086f92820101938561085f565b8054858501870152928501928101610ed5565b6020808252825181830181905290939260005b828110610f3a57505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501610f18565b600435906001600160a01b038216820361012657565b602435906001600160a01b038216820361012657565b604081019081106001600160401b038211176104d857604052565b90601f801991011681019081106001600160401b038211176104d857604052565b6001600160401b0381116104d857601f01601f191660200190565b929192610fdd82610fb6565b91610feb6040519384610f95565b829481845281830111610126578281602093846000960137010152565b9080601f830112156101265781602061102393359101610fd1565b90565b90600182811c92168015611056575b602083101461104057565b634e487b7160e01b600052602260045260246000fd5b91607f1691611035565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b039081169081156110f45760008051602061135c83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b916001600160a01b038084169283156107e357169283156111b75760009083825260008051602061133c83398151915280602052604083205491848310611184575082846000805160206113bc833981519152959360409388602097528652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b0391909116600482015260248101929092525060448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b60008051602061135c833981519152546001600160a01b031633036111f157565b60405163118cdaa760e01b8152336004820152602490fd5b6001600160a01b03169081156111b75760008051602061137c833981519152805490828201809211611273576000926000805160206113bc833981519152926020925584845260008051602061133c833981519152825260408420818154019055604051908152a3565b634e487b7160e01b600052601160045260246000fd5b60ff6000805160206113dc8339815191525460401c16156112a657565b604051631afcd79f60e31b8152600490fd5b906112df57508051156112cd57602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580611312575b6112f0575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156112e856fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace009016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3eff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a26469706673582212202e728f8d0d4fb0fdb61b5a41d5faea56d248660ee1067da3fe6a3f457f40283664736f6c63430008160033",
|
|
849
|
+
"bytecode": "0x60a080604052346100cc57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100bd57506001600160401b036002600160401b031982821601610078575b604051611fe190816100d282396080518181816111a901526112500152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1388080610059565b63f92ee8a960e01b8152600490fd5b600080fdfe608080604052600436101561001357600080fd5b60003560e01c90816306fdde03146115c957508063095ea7b3146115a357806318160ddd1461157857806323b872dd14611493578063313ce56714610b585780633644e5151461147057806340c10f191461140b5780634f1ef2861461120157806352d1902d1461119657806354fd4d501461114f57806370a0823114611108578063715018a61461109e5780637ecebe001461104557806384b0196e14610dc75780638da5cb5b14610d9157806395d89b4114610cbb5780639dc29fac14610baa578063a9059cbb14610b79578063ace28fa514610b58578063ad3cb1cc14610b0e578063d505accf14610999578063d72bdc53146101a0578063dd62ed3e146101575763f2fde38b1461012757600080fd5b34610152576020366003190112610152576101506101436116a5565b61014b611927565b6117f0565b005b600080fd5b34610152576040366003190112610152576101706116a5565b61018161017b6116bb565b916117b7565b9060018060a01b03166000526020526020604060002054604051908152f35b346101525760a0366003190112610152576101b96116a5565b6024356001600160401b038111610152576101d890369060040161175f565b906044356001600160401b038111610152576101f890369060040161175f565b906064359260ff8416840361015257600080516020611f6c83398151915254926001600160401b03841680159081610989575b600114908161097f575b159081610976575b506109645760016001600160401b0319851617600080516020611f6c8339815191525560ff8460401c1615610937575b610275611bbe565b61027d611bbe565b81516001600160401b03811161061a576102a5600080516020611e2c8339815191525461177d565b601f81116108c9575b50806020601f82116001146108495760009161083e575b508160011b916000199060031b1c191617600080516020611e2c833981519152555b8051906001600160401b03821161061a578190610312600080516020611e8c8339815191525461177d565b601f81116107c4575b50602090601f831160011461074257600092610737575b50508160011b916000199060031b1c191617600080516020611e8c833981519152555b61035d611bbe565b6040519061036a826116d1565b60018252603160f81b6020830152610380611bbe565b8051906001600160401b03821161061a5781906103ab600080516020611e6c8339815191525461177d565b601f81116106bd575b50602090601f831160011461063b57600092610630575b50508160011b916000199060031b1c191617600080516020611e6c833981519152555b80516001600160401b03811161061a57600080516020611eec83398151915291610418835461177d565b601f81116105d2575b50602090601f831160011461056657918060ff97939288959360009261055b575b50508160011b916000199060031b1c19161790555b6000600080516020611f0c833981519152556000600080516020611f8c83398151915255610483611bbe565b61048b611bbe565b610494836117f0565b61049c611bbe565b168319600054161760005560843561050f575b5060401c16156104bb57005b60ff60401b19600080516020611f6c8339815191525416600080516020611f6c833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b61051b60843582611960565b60405160843581526001600160a01b03909116907fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a890602090a2826104af565b015190508880610442565b90601f1983169184600052816000209260005b8181106105ba575092600192859260ff9a968b9896106105a1575b505050811b019055610457565b015160001960f88460031b161c19169055888080610594565b92936020600181928786015181550195019301610579565b836000526020600020601f840160051c81019160208510610610575b601f0160051c01905b8181106106045750610421565b600081556001016105f7565b90915081906105ee565b634e487b7160e01b600052604160045260246000fd5b0151905086806103cb565b600080516020611e6c83398151915260009081528281209350601f198516905b8181106106a5575090846001959493921061068c575b505050811b01600080516020611e6c833981519152556103ee565b015160001960f88460031b161c19169055868080610671565b9293602060018192878601518155019501930161065b565b600080516020611e6c8339815191526000529091507f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f840160051c810160208510610730575b90849392915b601f830160051c820181106107215750506103b4565b6000815585945060010161070b565b5080610705565b015190508680610332565b600080516020611e8c83398151915260009081528281209350601f198516905b8181106107ac5750908460019594939210610793575b505050811b01600080516020611e8c83398151915255610355565b015160001960f88460031b161c19169055868080610778565b92936020600181928786015181550195019301610762565b600080516020611e8c8339815191526000529091507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f840160051c810160208510610837575b90849392915b601f830160051c8201811061082857505061031b565b60008155859450600101610812565b508061080c565b9050830151876102c5565b600080516020611e2c83398151915260009081528181209250601f198416905b8181106108b157509083600194939210610898575b5050811b01600080516020611e2c833981519152556102e7565b85015160001960f88460031b161c19169055878061087e565b9192602060018192868a015181550194019201610869565b600080516020611e2c8339815191526000527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c810160208410610930575b601f830160051c820181106109245750506102ae565b6000815560010161090e565b508061090e565b68ffffffffffffffffff1984166801000000000000000117600080516020611f6c8339815191525561026d565b60405163f92ee8a960e01b8152600490fd5b9050158661023d565b303b159150610235565b604086901c60ff1615915061022b565b346101525760e0366003190112610152576109b26116a5565b6109ba6116bb565b60443590606435926084359360ff8516850361015257804211610af65760018060a01b039081831695866000527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040600020908154916001830190556040519260208401927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452896040860152858816606086015288608086015260a085015260c084015260c0835260e08301918383106001600160401b0384111761061a57610ac593610abc93604052519020610a95611a3e565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611ab3565b90929192611b39565b16848103610ad8575061015093506119e0565b60449085604051916325c0072360e11b835260048301526024820152fd5b6024906040519063313c898160e11b82526004820152fd5b3461015257600036600319011261015257610b54604051610b2e816116d1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611665565b0390f35b3461015257600036600319011261015257602060ff60005416604051908152f35b3461015257604036600319011261015257610b9f610b956116a5565b6024359033611864565b602060405160018152f35b3461015257604036600319011261015257610bc36116a5565b602435610bce611927565b6001600160a01b038216908115610ca25781600052600080516020611e4c8339815191528060205260406000205493828510610c715750817f1af5163f80e79b5e554f61e1d052084d3a3fe1166e42a265798c4e2ddce8ffa2928560209386600052845203604060002055600080516020611ecc833981519152818154039055600084600080516020611f4c83398151915284604051858152a3604051908152a2005b60405163391434e360e21b81526001600160a01b039190911660048201526024810185905260448101839052606490fd5b604051634b637e8f60e11b815260006004820152602490fd5b3461015257600036600319011261015257604051600080516020611e8c8339815191528054826000610cec8361177d565b9283835260209460019186600182169182600014610d6f575050600114610d30575b5050610d1c925003836116ec565b610b54604051928284938452830190611665565b85925060005281600020906000915b858310610d57575050610d1c93508201018580610d0e565b80548389018501528794508693909201918101610d3f565b9250935050610d1c94915060ff191682840152151560051b8201018580610d0e565b3461015257600036600319011261015257600080516020611eac833981519152546040516001600160a01b039091168152602090f35b3461015257600036600319011261015257600080516020611f0c83398151915254158061102e575b15610ff157604051600090600080516020611e6c83398151915280549282610e168561177d565b9182825260209360019685600182169182600014610fd1575050600114610f90575b50610e45925003836116ec565b60405190600082600080516020611eec83398151915291825492610e688461177d565b9384845285600182169182600014610f70575050600114610f2f575b50610e91925003836116ec565b60405190808201928284106001600160401b0385111761061a5790849281610ee888948760405260008452610eda60405197600f60f81b895260e0858a015260e0890190611665565b908782036040890152611665565b91466060870152306080870152600060a087015285830360c0870152519182815201949160005b828110610f1c5785870386f35b8351875295810195928101928401610f0f565b915050600052828280600020876000915b858310610f57575050610e91935082010187610e84565b8091929450548385890101520191018390878693610f40565b60ff191685820152610e9195151560051b8501019250899150610e849050565b915050600052828280600020866000915b858310610fb8575050610e45935082010186610e38565b8091929450548385890101520191018390868693610fa1565b60ff191685820152610e4595151560051b8501019250889150610e389050565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b50600080516020611f8c8339815191525415610def565b34610152576020366003190112610152576001600160a01b036110666116a5565b166000527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526020604060002054604051908152f35b34610152576000366003190112610152576110b7611927565b600080516020611eac83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610152576020366003190112610152576001600160a01b036111296116a5565b16600052600080516020611e4c8339815191526020526020604060002054604051908152f35b3461015257600036600319011261015257610b5460405161116f816116d1565b6006815265076312e302e360d41b6020820152604051918291602083526020830190611665565b34610152576000366003190112610152577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036111ef576020604051600080516020611f2c8339815191528152f35b60405163703e46dd60e11b8152600490fd5b6040366003190112610152576112156116a5565b6024356001600160401b038111610152573660238201121561015257611245903690602481600401359101611728565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163081149081156113ef575b506111ef57611289611927565b6040516352d1902d60e01b8152908216916020918281600481875afa600091816113c0575b506112cc57604051634c9c8ce360e01b815260048101859052602490fd5b928493600080516020611f2c833981519152908181036113a85750823b1561138f5780546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28351156113755750600080848461015096519101845af4903d1561136c573d61134f8161170d565b9061135d60405192836116ec565b8152600081943d92013e611dc8565b60609250611dc8565b925050503461138057005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101839052602490fd5b60249060405190632a87526960e21b82526004820152fd5b9091508381813d83116113e8575b6113d881836116ec565b81010312610152575190866112ae565b503d6113ce565b905081600080516020611f2c833981519152541614158461127c565b34610152576040366003190112610152576114246116a5565b7fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a8602060243592611453611927565b61145d8482611960565b6040519384526001600160a01b031692a2005b3461015257600036600319011261015257602061148b611a3e565b604051908152f35b34610152576060366003190112610152576114ac6116a5565b6114b46116bb565b604435906114c1836117b7565b336000526020526040600020549260001984106114e3575b610b9f9350611864565b828410611552576001600160a01b038116156115395733156115205782610b9f9461150d836117b7565b33600052602052036040600020556114d9565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610152576000366003190112610152576020600080516020611ecc83398151915254604051908152f35b3461015257604036600319011261015257610b9f6115bf6116a5565b60243590336119e0565b3461015257600036600319011261015257600080516020611e2c83398151915280548260006115f78361177d565b9283835260209460019186600182169182600014610d6f575050600114611626575050610d1c925003836116ec565b85925060005281600020906000915b85831061164d575050610d1c93508201018580610d0e565b80548389018501528794508693909201918101611635565b919082519283825260005b848110611691575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611670565b600435906001600160a01b038216820361015257565b602435906001600160a01b038216820361015257565b604081019081106001600160401b0382111761061a57604052565b90601f801991011681019081106001600160401b0382111761061a57604052565b6001600160401b03811161061a57601f01601f191660200190565b9291926117348261170d565b9161174260405193846116ec565b829481845281830111610152578281602093846000960137010152565b9080601f830112156101525781602061177a93359101611728565b90565b90600182811c921680156117ad575b602083101461179757565b634e487b7160e01b600052602260045260246000fd5b91607f169161178c565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0390811690811561184b57600080516020611eac83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b916001600160a01b03808416928315610ca2571692831561190e57600090838252600080516020611e4c833981519152806020526040832054918483106118db57508284600080516020611f4c833981519152959360409388602097528652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b0391909116600482015260248101929092525060448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b600080516020611eac833981519152546001600160a01b0316330361194857565b60405163118cdaa760e01b8152336004820152602490fd5b6001600160a01b031690811561190e57600080516020611ecc8339815191528054908282018092116119ca57600092600080516020611f4c8339815191529260209255848452600080516020611e4c833981519152825260408420818154019055604051908152a3565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156115395716928315611520577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591611a286020926117b7565b85600052825280604060002055604051908152a3565b611a46611bed565b611a4e611ced565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c081018181106001600160401b0382111761061a5760405251902090565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411611b2d57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15611b215780516001600160a01b03811615611b1857918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6004811015611ba85780611b4b575050565b60018103611b655760405163f645eedf60e01b8152600490fd5b60028103611b865760405163fce698f760e01b815260048101839052602490fd5b600314611b905750565b602490604051906335e2f38360e21b82526004820152fd5b634e487b7160e01b600052602160045260246000fd5b60ff600080516020611f6c8339815191525460401c1615611bdb57565b604051631afcd79f60e31b8152600490fd5b604051600090600080516020611e6c8339815191529181835491611c108361177d565b80835260209384840196600191600181169081600014611ccd5750600114611c8e575b505050611c42925003826116ec565b51908115611c4e572090565b5050600080516020611f0c833981519152548015611c695790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b600090815285812095935091905b818310611cb5575050611c429350820101388080611c33565b85548784018501529485019486945091830191611c9c565b92505050611c4294925060ff19168652151560051b820101388080611c33565b604051600090600080516020611eec8339815191529181835491611d108361177d565b80835260209384840196600191600181169081600014611da85750600114611d69575b505050611d42925003826116ec565b51908115611d4e572090565b5050600080516020611f8c833981519152548015611c695790565b600090815285812095935091905b818310611d90575050611d429350820101388080611d33565b85548784018501529485019486945091830191611d77565b92505050611d4294925060ff19168652151560051b820101388080611d33565b90611def5750805115611ddd57602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580611e22575b611e00575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15611df856fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3eff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101a26469706673582212200f36ce6031bc6788cb8f446035d15fdd277e1e3be043c194596d8e5009fffea464736f6c63430008160033",
|
|
850
|
+
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816306fdde03146115c957508063095ea7b3146115a357806318160ddd1461157857806323b872dd14611493578063313ce56714610b585780633644e5151461147057806340c10f191461140b5780634f1ef2861461120157806352d1902d1461119657806354fd4d501461114f57806370a0823114611108578063715018a61461109e5780637ecebe001461104557806384b0196e14610dc75780638da5cb5b14610d9157806395d89b4114610cbb5780639dc29fac14610baa578063a9059cbb14610b79578063ace28fa514610b58578063ad3cb1cc14610b0e578063d505accf14610999578063d72bdc53146101a0578063dd62ed3e146101575763f2fde38b1461012757600080fd5b34610152576020366003190112610152576101506101436116a5565b61014b611927565b6117f0565b005b600080fd5b34610152576040366003190112610152576101706116a5565b61018161017b6116bb565b916117b7565b9060018060a01b03166000526020526020604060002054604051908152f35b346101525760a0366003190112610152576101b96116a5565b6024356001600160401b038111610152576101d890369060040161175f565b906044356001600160401b038111610152576101f890369060040161175f565b906064359260ff8416840361015257600080516020611f6c83398151915254926001600160401b03841680159081610989575b600114908161097f575b159081610976575b506109645760016001600160401b0319851617600080516020611f6c8339815191525560ff8460401c1615610937575b610275611bbe565b61027d611bbe565b81516001600160401b03811161061a576102a5600080516020611e2c8339815191525461177d565b601f81116108c9575b50806020601f82116001146108495760009161083e575b508160011b916000199060031b1c191617600080516020611e2c833981519152555b8051906001600160401b03821161061a578190610312600080516020611e8c8339815191525461177d565b601f81116107c4575b50602090601f831160011461074257600092610737575b50508160011b916000199060031b1c191617600080516020611e8c833981519152555b61035d611bbe565b6040519061036a826116d1565b60018252603160f81b6020830152610380611bbe565b8051906001600160401b03821161061a5781906103ab600080516020611e6c8339815191525461177d565b601f81116106bd575b50602090601f831160011461063b57600092610630575b50508160011b916000199060031b1c191617600080516020611e6c833981519152555b80516001600160401b03811161061a57600080516020611eec83398151915291610418835461177d565b601f81116105d2575b50602090601f831160011461056657918060ff97939288959360009261055b575b50508160011b916000199060031b1c19161790555b6000600080516020611f0c833981519152556000600080516020611f8c83398151915255610483611bbe565b61048b611bbe565b610494836117f0565b61049c611bbe565b168319600054161760005560843561050f575b5060401c16156104bb57005b60ff60401b19600080516020611f6c8339815191525416600080516020611f6c833981519152557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b61051b60843582611960565b60405160843581526001600160a01b03909116907fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a890602090a2826104af565b015190508880610442565b90601f1983169184600052816000209260005b8181106105ba575092600192859260ff9a968b9896106105a1575b505050811b019055610457565b015160001960f88460031b161c19169055888080610594565b92936020600181928786015181550195019301610579565b836000526020600020601f840160051c81019160208510610610575b601f0160051c01905b8181106106045750610421565b600081556001016105f7565b90915081906105ee565b634e487b7160e01b600052604160045260246000fd5b0151905086806103cb565b600080516020611e6c83398151915260009081528281209350601f198516905b8181106106a5575090846001959493921061068c575b505050811b01600080516020611e6c833981519152556103ee565b015160001960f88460031b161c19169055868080610671565b9293602060018192878601518155019501930161065b565b600080516020611e6c8339815191526000529091507f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d601f840160051c810160208510610730575b90849392915b601f830160051c820181106107215750506103b4565b6000815585945060010161070b565b5080610705565b015190508680610332565b600080516020611e8c83398151915260009081528281209350601f198516905b8181106107ac5750908460019594939210610793575b505050811b01600080516020611e8c83398151915255610355565b015160001960f88460031b161c19169055868080610778565b92936020600181928786015181550195019301610762565b600080516020611e8c8339815191526000529091507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f840160051c810160208510610837575b90849392915b601f830160051c8201811061082857505061031b565b60008155859450600101610812565b508061080c565b9050830151876102c5565b600080516020611e2c83398151915260009081528181209250601f198416905b8181106108b157509083600194939210610898575b5050811b01600080516020611e2c833981519152556102e7565b85015160001960f88460031b161c19169055878061087e565b9192602060018192868a015181550194019201610869565b600080516020611e2c8339815191526000527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f830160051c810160208410610930575b601f830160051c820181106109245750506102ae565b6000815560010161090e565b508061090e565b68ffffffffffffffffff1984166801000000000000000117600080516020611f6c8339815191525561026d565b60405163f92ee8a960e01b8152600490fd5b9050158661023d565b303b159150610235565b604086901c60ff1615915061022b565b346101525760e0366003190112610152576109b26116a5565b6109ba6116bb565b60443590606435926084359360ff8516850361015257804211610af65760018060a01b039081831695866000527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040600020908154916001830190556040519260208401927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98452896040860152858816606086015288608086015260a085015260c084015260c0835260e08301918383106001600160401b0384111761061a57610ac593610abc93604052519020610a95611a3e565b906040519161190160f01b83526002830152602282015260c43591604260a4359220611ab3565b90929192611b39565b16848103610ad8575061015093506119e0565b60449085604051916325c0072360e11b835260048301526024820152fd5b6024906040519063313c898160e11b82526004820152fd5b3461015257600036600319011261015257610b54604051610b2e816116d1565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611665565b0390f35b3461015257600036600319011261015257602060ff60005416604051908152f35b3461015257604036600319011261015257610b9f610b956116a5565b6024359033611864565b602060405160018152f35b3461015257604036600319011261015257610bc36116a5565b602435610bce611927565b6001600160a01b038216908115610ca25781600052600080516020611e4c8339815191528060205260406000205493828510610c715750817f1af5163f80e79b5e554f61e1d052084d3a3fe1166e42a265798c4e2ddce8ffa2928560209386600052845203604060002055600080516020611ecc833981519152818154039055600084600080516020611f4c83398151915284604051858152a3604051908152a2005b60405163391434e360e21b81526001600160a01b039190911660048201526024810185905260448101839052606490fd5b604051634b637e8f60e11b815260006004820152602490fd5b3461015257600036600319011261015257604051600080516020611e8c8339815191528054826000610cec8361177d565b9283835260209460019186600182169182600014610d6f575050600114610d30575b5050610d1c925003836116ec565b610b54604051928284938452830190611665565b85925060005281600020906000915b858310610d57575050610d1c93508201018580610d0e565b80548389018501528794508693909201918101610d3f565b9250935050610d1c94915060ff191682840152151560051b8201018580610d0e565b3461015257600036600319011261015257600080516020611eac833981519152546040516001600160a01b039091168152602090f35b3461015257600036600319011261015257600080516020611f0c83398151915254158061102e575b15610ff157604051600090600080516020611e6c83398151915280549282610e168561177d565b9182825260209360019685600182169182600014610fd1575050600114610f90575b50610e45925003836116ec565b60405190600082600080516020611eec83398151915291825492610e688461177d565b9384845285600182169182600014610f70575050600114610f2f575b50610e91925003836116ec565b60405190808201928284106001600160401b0385111761061a5790849281610ee888948760405260008452610eda60405197600f60f81b895260e0858a015260e0890190611665565b908782036040890152611665565b91466060870152306080870152600060a087015285830360c0870152519182815201949160005b828110610f1c5785870386f35b8351875295810195928101928401610f0f565b915050600052828280600020876000915b858310610f57575050610e91935082010187610e84565b8091929450548385890101520191018390878693610f40565b60ff191685820152610e9195151560051b8501019250899150610e849050565b915050600052828280600020866000915b858310610fb8575050610e45935082010186610e38565b8091929450548385890101520191018390868693610fa1565b60ff191685820152610e4595151560051b8501019250889150610e389050565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b50600080516020611f8c8339815191525415610def565b34610152576020366003190112610152576001600160a01b036110666116a5565b166000527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526020604060002054604051908152f35b34610152576000366003190112610152576110b7611927565b600080516020611eac83398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b34610152576020366003190112610152576001600160a01b036111296116a5565b16600052600080516020611e4c8339815191526020526020604060002054604051908152f35b3461015257600036600319011261015257610b5460405161116f816116d1565b6006815265076312e302e360d41b6020820152604051918291602083526020830190611665565b34610152576000366003190112610152577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036111ef576020604051600080516020611f2c8339815191528152f35b60405163703e46dd60e11b8152600490fd5b6040366003190112610152576112156116a5565b6024356001600160401b038111610152573660238201121561015257611245903690602481600401359101611728565b906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163081149081156113ef575b506111ef57611289611927565b6040516352d1902d60e01b8152908216916020918281600481875afa600091816113c0575b506112cc57604051634c9c8ce360e01b815260048101859052602490fd5b928493600080516020611f2c833981519152908181036113a85750823b1561138f5780546001600160a01b03191682179055604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b600080a28351156113755750600080848461015096519101845af4903d1561136c573d61134f8161170d565b9061135d60405192836116ec565b8152600081943d92013e611dc8565b60609250611dc8565b925050503461138057005b63b398979f60e01b8152600490fd5b604051634c9c8ce360e01b815260048101839052602490fd5b60249060405190632a87526960e21b82526004820152fd5b9091508381813d83116113e8575b6113d881836116ec565b81010312610152575190866112ae565b503d6113ce565b905081600080516020611f2c833981519152541614158461127c565b34610152576040366003190112610152576114246116a5565b7fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a8602060243592611453611927565b61145d8482611960565b6040519384526001600160a01b031692a2005b3461015257600036600319011261015257602061148b611a3e565b604051908152f35b34610152576060366003190112610152576114ac6116a5565b6114b46116bb565b604435906114c1836117b7565b336000526020526040600020549260001984106114e3575b610b9f9350611864565b828410611552576001600160a01b038116156115395733156115205782610b9f9461150d836117b7565b33600052602052036040600020556114d9565b604051634a1406b160e11b815260006004820152602490fd5b60405163e602df0560e01b815260006004820152602490fd5b604051637dc7a0d960e11b81523360048201526024810185905260448101849052606490fd5b34610152576000366003190112610152576020600080516020611ecc83398151915254604051908152f35b3461015257604036600319011261015257610b9f6115bf6116a5565b60243590336119e0565b3461015257600036600319011261015257600080516020611e2c83398151915280548260006115f78361177d565b9283835260209460019186600182169182600014610d6f575050600114611626575050610d1c925003836116ec565b85925060005281600020906000915b85831061164d575050610d1c93508201018580610d0e565b80548389018501528794508693909201918101611635565b919082519283825260005b848110611691575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611670565b600435906001600160a01b038216820361015257565b602435906001600160a01b038216820361015257565b604081019081106001600160401b0382111761061a57604052565b90601f801991011681019081106001600160401b0382111761061a57604052565b6001600160401b03811161061a57601f01601f191660200190565b9291926117348261170d565b9161174260405193846116ec565b829481845281830111610152578281602093846000960137010152565b9080601f830112156101525781602061177a93359101611728565b90565b90600182811c921680156117ad575b602083101461179757565b634e487b7160e01b600052602260045260246000fd5b91607f169161178c565b6001600160a01b031660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b0390811690811561184b57600080516020611eac83398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b916001600160a01b03808416928315610ca2571692831561190e57600090838252600080516020611e4c833981519152806020526040832054918483106118db57508284600080516020611f4c833981519152959360409388602097528652038282205586815220818154019055604051908152a3565b60405163391434e360e21b81526001600160a01b0391909116600482015260248101929092525060448101839052606490fd5b60405163ec442f0560e01b815260006004820152602490fd5b600080516020611eac833981519152546001600160a01b0316330361194857565b60405163118cdaa760e01b8152336004820152602490fd5b6001600160a01b031690811561190e57600080516020611ecc8339815191528054908282018092116119ca57600092600080516020611f4c8339815191529260209255848452600080516020611e4c833981519152825260408420818154019055604051908152a3565b634e487b7160e01b600052601160045260246000fd5b916001600160a01b038084169283156115395716928315611520577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591611a286020926117b7565b85600052825280604060002055604051908152a3565b611a46611bed565b611a4e611ced565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c081018181106001600160401b0382111761061a5760405251902090565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411611b2d57926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa15611b215780516001600160a01b03811615611b1857918190565b50809160019190565b604051903d90823e3d90fd5b50505060009160039190565b6004811015611ba85780611b4b575050565b60018103611b655760405163f645eedf60e01b8152600490fd5b60028103611b865760405163fce698f760e01b815260048101839052602490fd5b600314611b905750565b602490604051906335e2f38360e21b82526004820152fd5b634e487b7160e01b600052602160045260246000fd5b60ff600080516020611f6c8339815191525460401c1615611bdb57565b604051631afcd79f60e31b8152600490fd5b604051600090600080516020611e6c8339815191529181835491611c108361177d565b80835260209384840196600191600181169081600014611ccd5750600114611c8e575b505050611c42925003826116ec565b51908115611c4e572090565b5050600080516020611f0c833981519152548015611c695790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b600090815285812095935091905b818310611cb5575050611c429350820101388080611c33565b85548784018501529485019486945091830191611c9c565b92505050611c4294925060ff19168652151560051b820101388080611c33565b604051600090600080516020611eec8339815191529181835491611d108361177d565b80835260209384840196600191600181169081600014611da85750600114611d69575b505050611d42925003826116ec565b51908115611d4e572090565b5050600080516020611f8c833981519152548015611c695790565b600090815285812095935091905b818310611d90575050611d429350820101388080611d33565b85548784018501529485019486945091830191611d77565b92505050611d4294925060ff19168652151560051b820101388080611d33565b90611def5750805115611ddd57602081519101fd5b60405163d6bda27560e01b8152600490fd5b81511580611e22575b611e00575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15611df856fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3eff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101a26469706673582212200f36ce6031bc6788cb8f446035d15fdd277e1e3be043c194596d8e5009fffea464736f6c63430008160033",
|
|
657
851
|
"linkReferences": {},
|
|
658
852
|
"deployedLinkReferences": {}
|
|
659
853
|
}
|