@meterio/sumer-js 0.2.150 → 0.2.152
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/dist/nodejs/abi.js +47 -0
- package/dist/nodejs/abi.js.map +1 -1
- package/dist/nodejs/comptroller.d.ts +10 -0
- package/dist/nodejs/comptroller.js +104 -1
- package/dist/nodejs/comptroller.js.map +1 -1
- package/dist/nodejs/typechain/contracts/Comptroller/CompoundLens.d.ts +17 -1
- package/dist/nodejs/typechain/contracts/Interfaces/ICTokenExternal.sol/ICToken.d.ts +5 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.d.ts +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompLogic__factory.js +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.d.ts +27 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js +35 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/CompoundLens__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.d.ts +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/Comptroller__factory.js +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/MockComptroller__factory.d.ts +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/MockComptroller__factory.js +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.d.ts +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/RedemptionManager__factory.js +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/SortedBorrows__factory.d.ts +1 -1
- package/dist/nodejs/typechain/factories/contracts/Comptroller/SortedBorrows__factory.js +1 -1
- package/dist/nodejs/typechain/factories/contracts/Interfaces/ICTokenExternal.sol/ICToken__factory.d.ts +10 -0
- package/dist/nodejs/typechain/factories/contracts/Interfaces/ICTokenExternal.sol/ICToken__factory.js +13 -0
- package/dist/nodejs/typechain/factories/contracts/Interfaces/ICTokenExternal.sol/ICToken__factory.js.map +1 -1
- package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.d.ts +1 -1
- package/dist/nodejs/typechain/factories/contracts/Oracle/FeedPriceOracle__factory.js +1 -1
- package/dist/nodejs/typechain/factories/contracts/Timelock__factory.d.ts +1 -1
- package/dist/nodejs/typechain/factories/contracts/Timelock__factory.js +1 -1
- package/package.json +1 -1
- package/dist/browser/sumer.min.js +0 -18
|
@@ -77,4 +77,14 @@ export interface SignedRedeemPreview {
|
|
|
77
77
|
error?: string;
|
|
78
78
|
}
|
|
79
79
|
export declare function redeemFaceValuePreview(chainId: string, redeemer: string, market: string, amount: string | number): Promise<SignedRedeemPreview>;
|
|
80
|
+
export declare function calcPlan(account: string, seizeTokenAddress: string, repayTokenAddress: string): Promise<{
|
|
81
|
+
account: string;
|
|
82
|
+
repayTokenPrice: string;
|
|
83
|
+
repayTokenAddress: string;
|
|
84
|
+
repayTokens: string;
|
|
85
|
+
seizeTokenPrice: string;
|
|
86
|
+
seizeTokenAddress: string;
|
|
87
|
+
seizeTokens: string;
|
|
88
|
+
profitUSD: number;
|
|
89
|
+
}>;
|
|
80
90
|
export {};
|
|
@@ -31,13 +31,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
31
31
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
32
32
|
};
|
|
33
33
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
-
exports.redeemFaceValuePreview = exports.redeemFaceValueWithPermit = exports.redeemFaceValue = exports.exitMarket = exports.enterMarkets = void 0;
|
|
34
|
+
exports.calcPlan = exports.redeemFaceValuePreview = exports.redeemFaceValueWithPermit = exports.redeemFaceValue = exports.exitMarket = exports.enterMarkets = void 0;
|
|
35
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
35
36
|
const eth = __importStar(require("./eth"));
|
|
36
37
|
const helpers_1 = require("./helpers");
|
|
37
38
|
const constants_1 = require("./constants");
|
|
38
39
|
const abi_1 = require("./abi");
|
|
39
40
|
const axios_1 = __importDefault(require("axios"));
|
|
40
41
|
const util_1 = require("./util");
|
|
42
|
+
const typechain_1 = require("./typechain");
|
|
43
|
+
const _1 = __importDefault(require("."));
|
|
41
44
|
const toSDRSymbol = (name) => {
|
|
42
45
|
if (!name.startsWith('sdr')) {
|
|
43
46
|
return 'sdr' + name;
|
|
@@ -197,4 +200,104 @@ async function redeemFaceValuePreview(chainId, redeemer, market, amount) {
|
|
|
197
200
|
return response.data;
|
|
198
201
|
}
|
|
199
202
|
exports.redeemFaceValuePreview = redeemFaceValuePreview;
|
|
203
|
+
async function calcPlan(account, seizeTokenAddress, repayTokenAddress) {
|
|
204
|
+
const comptrollerAddress = (0, constants_1.getAddress)(this._network.name, 'Comptroller');
|
|
205
|
+
const comptroller = typechain_1.Comptroller__factory.connect(comptrollerAddress, this._provider);
|
|
206
|
+
const seizeToken = typechain_1.CErc20__factory.connect(seizeTokenAddress, this._provider);
|
|
207
|
+
const repayToken = typechain_1.CErc20__factory.connect(repayTokenAddress, this._provider);
|
|
208
|
+
// read price data
|
|
209
|
+
const oracleAddress = await comptroller.oracle();
|
|
210
|
+
const oracle = typechain_1.FeedPriceOracle__factory.connect(oracleAddress, this._provider);
|
|
211
|
+
const prices = await oracle.getUnderlyingPrices([seizeTokenAddress, repayTokenAddress]);
|
|
212
|
+
const seizeTokenPrice = new bignumber_js_1.default(prices[0].toString()).div(1e18); // unit: 1
|
|
213
|
+
const repayTokenPrice = new bignumber_js_1.default(prices[1].toString()).div(1e18); // unit: 1
|
|
214
|
+
// read groupId
|
|
215
|
+
const seizeMarket = await comptroller.markets(seizeTokenAddress);
|
|
216
|
+
const repayMarket = await comptroller.markets(repayTokenAddress);
|
|
217
|
+
const seizeGroupId = Number(seizeMarket[1]);
|
|
218
|
+
const repayGroupId = Number(repayMarket[1]);
|
|
219
|
+
// read is ctoken
|
|
220
|
+
const repayIsCToken = await repayToken.isCToken();
|
|
221
|
+
// read exchange rate
|
|
222
|
+
const exchangeRate = new bignumber_js_1.default((await seizeToken.exchangeRateCurrent.staticCall()).toString()).div(1e18); // unit: 1
|
|
223
|
+
// read minCloseValue and closeFactor
|
|
224
|
+
const globalConfig = await comptroller.globalConfig();
|
|
225
|
+
const minCloseValue = new bignumber_js_1.default(globalConfig[1].toString());
|
|
226
|
+
const closeFactor = new bignumber_js_1.default(globalConfig[0].toString()).div(1e18); // unit: 1
|
|
227
|
+
console.log(`minCloseValue: ${minCloseValue}, closeFactor: ${closeFactor}`);
|
|
228
|
+
// protocol share
|
|
229
|
+
const protocolShare = new bignumber_js_1.default(await seizeToken.protocolSeizeShareMantissa()).div(1e18); // unit:1
|
|
230
|
+
const userShare = new bignumber_js_1.default(1).minus(protocolShare);
|
|
231
|
+
// read liquidation incentive
|
|
232
|
+
const incentive = await comptroller.liquidationIncentive();
|
|
233
|
+
let liquidationIncentive = new bignumber_js_1.default(incentive[0].toString()).div(1e4);
|
|
234
|
+
if (repayGroupId == seizeGroupId) {
|
|
235
|
+
if (repayIsCToken) {
|
|
236
|
+
liquidationIncentive = new bignumber_js_1.default(incentive[1].toString()).div(1e4);
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
liquidationIncentive = new bignumber_js_1.default(incentive[2].toString()).div(1e4);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
console.log(`liquidation incentive: ${liquidationIncentive}`);
|
|
243
|
+
const seizePair = _1.default.getTokenPairByAddress(this._network.name, seizeTokenAddress);
|
|
244
|
+
const repayPair = _1.default.getTokenPairByAddress(this._network.name, repayTokenAddress);
|
|
245
|
+
const seizeDecimals = seizePair.ctokenDecimal;
|
|
246
|
+
const repayDecimals = repayPair.ctokenDecimal;
|
|
247
|
+
const seizeSymbol = seizePair.ctokenSym;
|
|
248
|
+
const repaySymbol = repayPair.ctokenSym;
|
|
249
|
+
const seizeSnapshot = await seizeToken.getAccountSnapshot(account);
|
|
250
|
+
const repaySnapshot = await repayToken.getAccountSnapshot(account);
|
|
251
|
+
const seizePosSupply = new bignumber_js_1.default(seizeSnapshot[0].toString()).div(`1e${seizeDecimals}`);
|
|
252
|
+
const repayPosBorrow = new bignumber_js_1.default(repaySnapshot[1].toString()).div(`1e${repayDecimals}`);
|
|
253
|
+
// const price = this.priceListener.getPriceFor(pos.tokenAddress);
|
|
254
|
+
console.log(`seize - ${seizeSymbol} deposit: ${seizePosSupply}, decimals: ${seizeDecimals}, price: ${seizeTokenPrice}`);
|
|
255
|
+
console.log(`repay - ${repaySymbol} borrow: ${repayPosBorrow}, decimals: ${repayDecimals}, price: ${repayTokenPrice}`);
|
|
256
|
+
const maxSeizeTokens = new bignumber_js_1.default(seizePosSupply).times(exchangeRate);
|
|
257
|
+
const maxSeizeUSD = maxSeizeTokens.times(seizeTokenPrice);
|
|
258
|
+
const actualCloseFactor = closeFactor.isGreaterThan(1) ? 1 : closeFactor;
|
|
259
|
+
let maxRepayTokens = repayPosBorrow.times(actualCloseFactor);
|
|
260
|
+
let maxRepayUSD = maxRepayTokens.times(repayTokenPrice);
|
|
261
|
+
if (maxRepayUSD.lt(minCloseValue)) {
|
|
262
|
+
maxRepayTokens = repayPosBorrow;
|
|
263
|
+
maxRepayUSD = repayPosBorrow.times(repayTokenPrice);
|
|
264
|
+
}
|
|
265
|
+
let profitUSD = new bignumber_js_1.default(0);
|
|
266
|
+
let actualRepay = new bignumber_js_1.default(0);
|
|
267
|
+
let actualSeize = new bignumber_js_1.default(0);
|
|
268
|
+
console.log(`maxRepayUSD:${maxRepayUSD.toFixed()}, maxSeizeUSD:${maxSeizeUSD.toFixed()}`);
|
|
269
|
+
const actualMaxRepayUSD = maxRepayUSD.times(liquidationIncentive.plus(1));
|
|
270
|
+
if (actualMaxRepayUSD.gt(maxSeizeUSD)) {
|
|
271
|
+
console.log(`use maxSeizeUSD to calculate`);
|
|
272
|
+
actualSeize = maxSeizeTokens.div(liquidationIncentive.plus(1)).times(liquidationIncentive.times(userShare).plus(1));
|
|
273
|
+
actualRepay = maxSeizeUSD.div(liquidationIncentive.plus(1)).div(repayTokenPrice);
|
|
274
|
+
profitUSD = maxSeizeUSD.div(liquidationIncentive.plus(1)).times(liquidationIncentive).times(userShare);
|
|
275
|
+
console.log(`actual seize: ${actualSeize}`);
|
|
276
|
+
console.log(`actual repay: ${actualRepay}, liquidationIncentive: ${liquidationIncentive}, ${userShare}`);
|
|
277
|
+
console.log(`repayTokenPrice: ${repayTokenPrice} ${repayTokenAddress}`);
|
|
278
|
+
console.log(`actualRepay: ${actualRepay.toFixed()}, profit:${profitUSD.toFixed()} `);
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
console.log(`use maxRepayUSD to calculate`);
|
|
282
|
+
actualRepay = maxRepayTokens;
|
|
283
|
+
actualSeize = maxRepayUSD.times(liquidationIncentive.times(userShare).plus(1)).div(seizeTokenPrice);
|
|
284
|
+
profitUSD = maxRepayUSD.times(liquidationIncentive).times(userShare);
|
|
285
|
+
console.log(`actual repay: ${actualRepay}`);
|
|
286
|
+
console.log(`seizeTokenPrice: ${seizeTokenPrice}, ${seizeTokenAddress}`);
|
|
287
|
+
console.log(`actual seize: ${actualSeize}, liquidationIncentive: ${liquidationIncentive}, ${userShare}`);
|
|
288
|
+
console.log(`actualSeize: ${actualRepay.toFixed()}, profit:${profitUSD.toFixed()} `);
|
|
289
|
+
}
|
|
290
|
+
const plan = {
|
|
291
|
+
account,
|
|
292
|
+
repayTokenPrice: repayTokenPrice.toFixed(),
|
|
293
|
+
repayTokenAddress,
|
|
294
|
+
repayTokens: actualRepay.times(`1e${repayDecimals}`).toFixed(0),
|
|
295
|
+
seizeTokenPrice: seizeTokenPrice.toFixed(),
|
|
296
|
+
seizeTokenAddress,
|
|
297
|
+
seizeTokens: actualSeize.times(`1e${seizeDecimals}`).toFixed(0),
|
|
298
|
+
profitUSD: profitUSD.toNumber(),
|
|
299
|
+
};
|
|
300
|
+
return plan;
|
|
301
|
+
}
|
|
302
|
+
exports.calcPlan = calcPlan;
|
|
200
303
|
//# sourceMappingURL=comptroller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comptroller.js","sourceRoot":"","sources":["../../src/comptroller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"comptroller.js","sourceRoot":"","sources":["../../src/comptroller.ts"],"names":[],"mappings":"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"}
|
|
@@ -304,7 +304,7 @@ export declare namespace CompoundLens {
|
|
|
304
304
|
};
|
|
305
305
|
}
|
|
306
306
|
export interface CompoundLensInterface extends Interface {
|
|
307
|
-
getFunction(nameOrSignature: "cTokenBalances" | "cTokenBalancesAll" | "cTokenMetadata" | "cTokenMetadataAll" | "cTokenUnderlyingPrice" | "cTokenUnderlyingPriceAll" | "calcBorrowAmountForProtectedMint" | "getAccountLimits" | "getCollateralRate" | "getCompBalanceMetadata" | "getCompBalanceMetadataExt" | "getCompVotes" | "getGovBravoProposals" | "getGovBravoReceipts" | "getGovProposals" | "getGovReceipts" | "percentScale" | "version"): FunctionFragment;
|
|
307
|
+
getFunction(nameOrSignature: "cTokenBalances" | "cTokenBalancesAll" | "cTokenMetadata" | "cTokenMetadataAll" | "cTokenUnderlyingPrice" | "cTokenUnderlyingPriceAll" | "calcBorrowAmountForProtectedMint" | "calcPlan" | "getAccountLimits" | "getCollateralRate" | "getCompBalanceMetadata" | "getCompBalanceMetadataExt" | "getCompVotes" | "getGovBravoProposals" | "getGovBravoReceipts" | "getGovProposals" | "getGovReceipts" | "percentScale" | "version"): FunctionFragment;
|
|
308
308
|
encodeFunctionData(functionFragment: "cTokenBalances", values: [AddressLike, AddressLike]): string;
|
|
309
309
|
encodeFunctionData(functionFragment: "cTokenBalancesAll", values: [AddressLike[], AddressLike]): string;
|
|
310
310
|
encodeFunctionData(functionFragment: "cTokenMetadata", values: [AddressLike]): string;
|
|
@@ -312,6 +312,7 @@ export interface CompoundLensInterface extends Interface {
|
|
|
312
312
|
encodeFunctionData(functionFragment: "cTokenUnderlyingPrice", values: [AddressLike]): string;
|
|
313
313
|
encodeFunctionData(functionFragment: "cTokenUnderlyingPriceAll", values: [AddressLike[]]): string;
|
|
314
314
|
encodeFunctionData(functionFragment: "calcBorrowAmountForProtectedMint", values: [AddressLike, AddressLike, AddressLike, BigNumberish]): string;
|
|
315
|
+
encodeFunctionData(functionFragment: "calcPlan", values: [AddressLike, AddressLike, AddressLike]): string;
|
|
315
316
|
encodeFunctionData(functionFragment: "getAccountLimits", values: [AddressLike, AddressLike]): string;
|
|
316
317
|
encodeFunctionData(functionFragment: "getCollateralRate", values: [AddressLike, AddressLike, AddressLike]): string;
|
|
317
318
|
encodeFunctionData(functionFragment: "getCompBalanceMetadata", values: [AddressLike, AddressLike]): string;
|
|
@@ -330,6 +331,7 @@ export interface CompoundLensInterface extends Interface {
|
|
|
330
331
|
decodeFunctionResult(functionFragment: "cTokenUnderlyingPrice", data: BytesLike): Result;
|
|
331
332
|
decodeFunctionResult(functionFragment: "cTokenUnderlyingPriceAll", data: BytesLike): Result;
|
|
332
333
|
decodeFunctionResult(functionFragment: "calcBorrowAmountForProtectedMint", data: BytesLike): Result;
|
|
334
|
+
decodeFunctionResult(functionFragment: "calcPlan", data: BytesLike): Result;
|
|
333
335
|
decodeFunctionResult(functionFragment: "getAccountLimits", data: BytesLike): Result;
|
|
334
336
|
decodeFunctionResult(functionFragment: "getCollateralRate", data: BytesLike): Result;
|
|
335
337
|
decodeFunctionResult(functionFragment: "getCompBalanceMetadata", data: BytesLike): Result;
|
|
@@ -395,6 +397,13 @@ export interface CompoundLens extends BaseContract {
|
|
|
395
397
|
], [
|
|
396
398
|
[bigint, bigint]
|
|
397
399
|
], "view">;
|
|
400
|
+
calcPlan: TypedContractMethod<[
|
|
401
|
+
account: AddressLike,
|
|
402
|
+
repayTokenAddress: AddressLike,
|
|
403
|
+
seizeTokenAddress: AddressLike
|
|
404
|
+
], [
|
|
405
|
+
[bigint, bigint]
|
|
406
|
+
], "view">;
|
|
398
407
|
getAccountLimits: TypedContractMethod<[
|
|
399
408
|
comptroller: AddressLike,
|
|
400
409
|
account: AddressLike
|
|
@@ -497,6 +506,13 @@ export interface CompoundLens extends BaseContract {
|
|
|
497
506
|
], [
|
|
498
507
|
[bigint, bigint]
|
|
499
508
|
], "view">;
|
|
509
|
+
getFunction(nameOrSignature: "calcPlan"): TypedContractMethod<[
|
|
510
|
+
account: AddressLike,
|
|
511
|
+
repayTokenAddress: AddressLike,
|
|
512
|
+
seizeTokenAddress: AddressLike
|
|
513
|
+
], [
|
|
514
|
+
[bigint, bigint]
|
|
515
|
+
], "view">;
|
|
500
516
|
getFunction(nameOrSignature: "getAccountLimits"): TypedContractMethod<[
|
|
501
517
|
comptroller: AddressLike,
|
|
502
518
|
account: AddressLike
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
|
|
2
2
|
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedListener, TypedContractMethod } from "../../../common";
|
|
3
3
|
export interface ICTokenInterface extends Interface {
|
|
4
|
-
getFunction(nameOrSignature: "accrueInterest" | "allowance" | "balanceOf" | "balanceOfUnderlying" | "borrowBalanceCurrent" | "borrowBalanceStored" | "borrowIndex" | "borrowRatePerBlock" | "comptroller" | "decimals" | "delegates" | "discountRateMantissa" | "exchangeRateCurrent" | "exchangeRateStored" | "executeRedemption" | "getAccountSnapshot" | "getCash" | "getCurrentVotes" | "getPriorVotes" | "isCEther" | "isCToken" | "isDeprecated" | "liquidateCalculateSeizeTokens" | "reserveFactorMantissa" | "supplyRatePerBlock" | "totalBorrows" | "totalReserves" | "totalSupply" | "underlying"): FunctionFragment;
|
|
4
|
+
getFunction(nameOrSignature: "accrueInterest" | "allowance" | "balanceOf" | "balanceOfUnderlying" | "borrowBalanceCurrent" | "borrowBalanceStored" | "borrowIndex" | "borrowRatePerBlock" | "comptroller" | "decimals" | "delegates" | "discountRateMantissa" | "exchangeRateCurrent" | "exchangeRateStored" | "executeRedemption" | "getAccountSnapshot" | "getCash" | "getCurrentVotes" | "getPriorVotes" | "isCEther" | "isCToken" | "isDeprecated" | "liquidateCalculateSeizeTokens" | "protocolSeizeShareMantissa" | "reserveFactorMantissa" | "supplyRatePerBlock" | "totalBorrows" | "totalReserves" | "totalSupply" | "underlying"): FunctionFragment;
|
|
5
5
|
encodeFunctionData(functionFragment: "accrueInterest", values?: undefined): string;
|
|
6
6
|
encodeFunctionData(functionFragment: "allowance", values: [AddressLike, AddressLike]): string;
|
|
7
7
|
encodeFunctionData(functionFragment: "balanceOf", values: [AddressLike]): string;
|
|
@@ -32,6 +32,7 @@ export interface ICTokenInterface extends Interface {
|
|
|
32
32
|
encodeFunctionData(functionFragment: "isCToken", values?: undefined): string;
|
|
33
33
|
encodeFunctionData(functionFragment: "isDeprecated", values?: undefined): string;
|
|
34
34
|
encodeFunctionData(functionFragment: "liquidateCalculateSeizeTokens", values: [AddressLike, BigNumberish]): string;
|
|
35
|
+
encodeFunctionData(functionFragment: "protocolSeizeShareMantissa", values?: undefined): string;
|
|
35
36
|
encodeFunctionData(functionFragment: "reserveFactorMantissa", values?: undefined): string;
|
|
36
37
|
encodeFunctionData(functionFragment: "supplyRatePerBlock", values?: undefined): string;
|
|
37
38
|
encodeFunctionData(functionFragment: "totalBorrows", values?: undefined): string;
|
|
@@ -61,6 +62,7 @@ export interface ICTokenInterface extends Interface {
|
|
|
61
62
|
decodeFunctionResult(functionFragment: "isCToken", data: BytesLike): Result;
|
|
62
63
|
decodeFunctionResult(functionFragment: "isDeprecated", data: BytesLike): Result;
|
|
63
64
|
decodeFunctionResult(functionFragment: "liquidateCalculateSeizeTokens", data: BytesLike): Result;
|
|
65
|
+
decodeFunctionResult(functionFragment: "protocolSeizeShareMantissa", data: BytesLike): Result;
|
|
64
66
|
decodeFunctionResult(functionFragment: "reserveFactorMantissa", data: BytesLike): Result;
|
|
65
67
|
decodeFunctionResult(functionFragment: "supplyRatePerBlock", data: BytesLike): Result;
|
|
66
68
|
decodeFunctionResult(functionFragment: "totalBorrows", data: BytesLike): Result;
|
|
@@ -148,6 +150,7 @@ export interface ICToken extends BaseContract {
|
|
|
148
150
|
], [
|
|
149
151
|
[bigint, bigint]
|
|
150
152
|
], "view">;
|
|
153
|
+
protocolSeizeShareMantissa: TypedContractMethod<[], [bigint], "view">;
|
|
151
154
|
reserveFactorMantissa: TypedContractMethod<[], [bigint], "view">;
|
|
152
155
|
supplyRatePerBlock: TypedContractMethod<[], [bigint], "view">;
|
|
153
156
|
totalBorrows: TypedContractMethod<[], [bigint], "view">;
|
|
@@ -206,6 +209,7 @@ export interface ICToken extends BaseContract {
|
|
|
206
209
|
], [
|
|
207
210
|
[bigint, bigint]
|
|
208
211
|
], "view">;
|
|
212
|
+
getFunction(nameOrSignature: "protocolSeizeShareMantissa"): TypedContractMethod<[], [bigint], "view">;
|
|
209
213
|
getFunction(nameOrSignature: "reserveFactorMantissa"): TypedContractMethod<[], [bigint], "view">;
|
|
210
214
|
getFunction(nameOrSignature: "supplyRatePerBlock"): TypedContractMethod<[], [bigint], "view">;
|
|
211
215
|
getFunction(nameOrSignature: "totalBorrows"): TypedContractMethod<[], [bigint], "view">;
|
|
@@ -14,7 +14,7 @@ export declare class CompLogic__factory extends ContractFactory {
|
|
|
14
14
|
deploymentTransaction(): ContractTransactionResponse;
|
|
15
15
|
}>;
|
|
16
16
|
connect(runner: ContractRunner | null): CompLogic__factory;
|
|
17
|
-
static readonly bytecode = "0x6080806040523460bd576000549060ff8260081c16606b575060ff808216106031575b604051613efc90816100c38239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386022565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe6101c080604052600436101561001457600080fd5b60003560e01c90816301ffc9a7146119715750806306fb2592146116ea578063082bc0ab146116b4578063109d0af81461168b578063248a9ca31461165e57806327efe3cb146115a85780632f2ff15d146114c857806336568abe14611436578063485cc955146112115780634f54b3c0146111d2578063598ee1cb146111215780635a2e013314610b615780635f87769b14610b235780635fe3b56714610afa57806365658c3e14610aa657806369063a5614610a1d5780636aa875b5146109e35780636b79c38d14610991578063741b252514610970578063759c082a146108595780638bad38dd146107ec5780638c57804e1461079a5780639010d07c1461075357806391d1485414610706578063986ab838146106cc578063a217fddf146106b0578063a7f0e23114610687578063a8b4394814610555578063a9e40a4214610519578063b21be7fd146104c8578063bea6b8b81461048e578063ca0af0431461043d578063ca15c87314610411578063cc7ebdc4146103d7578063d29424f214610395578063d547741f14610350578063d5e5cec514610298578063eac1fed014610277578063f47dbe02146102175763f4a433c0146101d857600080fd5b34610212576020366003190112610212576001600160a01b036101f9611a7e565b1660005260d16020526020604060002054604051908152f35b600080fd5b3461021257606036600319011261021257610230611a7e565b610238611a94565b906020366043190112610212576102759160405191610256836119de565b604435835261027060018060a01b0360ca54163314611c2a565b612fb4565b005b34610212576000366003190112610212576020604051655af3107a40008152f35b34610212576020366003190112610212576102b1611a7e565b6102c660018060a01b0360ca54163314611c2a565b6001600160a01b0316600081815260d260205260409020546001600160e01b03166a0c097ce7bc90715b34b9f160241b1461033b575b600081815260d260205260409020546001600160e01b03166a0c097ce7bc90715b34b9f160241b1461032a57005b600090815260d36020526040812055005b8060005260d2602052600060408120556102fc565b346102125760403660031901126102125761027560043561036f611a94565b9061039061038b82600052606560205260016040600020015490565b6136ad565b6136ed565b34610212576040366003190112610212576103ae611a7e565b602435906001600160401b038211610212576103d1610275923690600401611aaa565b90612c07565b34610212576020366003190112610212576001600160a01b036103f8611a7e565b1660005260cb6020526020604060002054604051908152f35b346102125760203660031901126102125760043560005260976020526020604060002054604051908152f35b3461021257604036600319011261021257610456611a7e565b61045e611a94565b6001600160a01b03918216600090815260cf60209081526040808320949093168252928352819020549051908152f35b34610212576020366003190112610212576001600160a01b036104af611a7e565b1660005260cd6020526020604060002054604051908152f35b34610212576040366003190112610212576104e1611a7e565b6104e9611a94565b6001600160a01b03918216600090815260ce60209081526040808320949093168252928352819020549051908152f35b3461021257608036600319011261021257602061054d610537611a7e565b61053f611a94565b906064359160443591611edc565b604051908152f35b34610212576060366003190112610212576004356001600160401b03811161021257610585903690600401611aaa565b6024356001600160401b038111610212576105a4903690600401611b18565b6044356001600160401b038111610212576105c3903690600401611b18565b916105cc6135bb565b805191805183148061067d575b156106265760005b8381106105ea57005b6001906106206001600160a01b036106028387611b75565b511661060e8386611b75565b51610619848a611b75565b51916138aa565b016105e1565b60405162461bcd60e51b815260206004820152602960248201527f436f6d7074726f6c6c65723a3a5f736574436f6d7053706565647320696e76616044820152681b1a59081a5b9c1d5d60ba1b6064820152608490fd5b50835183146105d9565b346102125760003660031901126102125760206040516a0c097ce7bc90715b34b9f160241b8152f35b3461021257600036600319011261021257602060405160008152f35b34610212576020366003190112610212576001600160a01b036106ed611a7e565b1660005260cc6020526020604060002054604051908152f35b346102125760403660031901126102125761071f611a94565b600435600052606560205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461021257604036600319011261021257600435600052609760205260206107816024356040600020613b70565b905460405160039290921b1c6001600160a01b03168152f35b34610212576020366003190112610212576001600160a01b036107bb611a7e565b16600090815260d360209081526040918290205482516001600160e01b038216815260e09190911c91810191909152f35b34610212576020366003190112610212576004356001600160a01b038116908190036102125760207f51e0228fe901c430722ddefd46e1d63fd4127597ef3ae7c79ae73d2de14fbf389161083e6135bb565b60ca80546001600160a01b03191682179055604051908152a1005b3461021257604036600319011261021257610872611a7e565b60243563ffffffff81168103610212576102759161089b60018060a01b0360ca54163314611c2a565b6001600160a01b0316600090815260d26020908152604080832060d390925290912081546109079184916001600160e01b03161561094d575b80546001600160e01b03161561092a5780546001600160e01b031660e09290921b6001600160e01b031916919091179055565b80546001600160e01b031660e09290921b6001600160e01b031916919091179055565b80546001600160e01b0319166a0c097ce7bc90715b34b9f160241b178155610907565b83546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1784556108d4565b346102125760203660031901126102125761027561098c611a7e565b611dc7565b34610212576020366003190112610212576001600160a01b036109b2611a7e565b16600090815260d260209081526040918290205482516001600160e01b038216815260e09190911c91810191909152f35b34610212576020366003190112610212576001600160a01b03610a04611a7e565b1660005260d06020526020604060002054604051908152f35b34610212576020366003190112610212576004610a38611a7e565b60ca5460405163b0772d0b60e01b81529260009184919082906001600160a01b03165afa908115610a9a5761027592600092610a75575b50612c07565b610a939192503d806000833e610a8b8183611a46565b810190611c69565b9083610a6f565b6040513d6000823e3d90fd5b3461021257604036600319011261021257610abf611a7e565b60203660231901126102125760405161027591610adb826119de565b6024358252610af560018060a01b0360ca54163314611c2a565b612e33565b346102125760003660031901126102125760ca546040516001600160a01b039091168152602090f35b3461021257606036600319011261021257610275610b3f611a7e565b610b5460018060a01b0360ca54163314611c2a565b60443590602435906138aa565b34610212576020366003190112610212576004610b7c611a7e565b60ca5460405163b0772d0b60e01b81529260009184919082906001600160a01b03165afa918215610a9a57600092611104575b506001600160a01b0316600081815260cb60205260408120544363ffffffff811694936401000000009091109290915b84518210156110f9576001600160a01b03610bfa8387611b75565b51169060405163aa5af0fd60e01b8152602081600481865afa908115610a9a576000916110c8575b5060405190610c30826119de565b81528260005260d3602052604060002060405190610c4d82611a0f565b546001600160e01b038116825260e01c6020808301918252600086815260d190915260409020549190610c87610c81611d0e565b8a6137e5565b610c9863ffffffff8251168c611d49565b908b82151580806110bf575b156110a35750506040516308f7a6e360e31b8152916020836004818b5afa948515610a9a57868e94600097611063575b50610d239291610cea610cf092610d7e99613809565b92611d6c565b600091908115610fb057610d049250613835565b8451604051906001600160e01b0316610d1c826119de565b815261388d565b51610d3b610d2f611d7f565b600160e01b83106137e5565b6001600160e01b03168352525b51600085815260cf602090815260408083208a8452909152902054906001600160e01b0316811580610f98575b610f8257611d49565b9060405191610d8c836119de565b82526040516395dd919360e01b815260048101879052602081602481885afa908115610a9a57600091611030575b50610deb9392610ddc6a0c097ce7bc90715b34b9f160241b93610de493613809565b905190611d6c565b0490611dba565b908060005260d2602052604060002060405190610e0782611a0f565b5460018060e01b0381168252602082019060e01c81528260005260d060205260406000205490610e3e63ffffffff8251168b611d49565b8a8115158080611027575b156110045750506040516318160ddd60e01b815292602084600481895afa918215610a9a578c94600093610fc6575b5092610e926024979693610cf060209794610edc97611d6c565b51610e9e610d2f611d7f565b6001600160e01b03168352525b51600084815260ce845260408082208a83528552902054906001600160e01b0316811580610f9857610f8257611d49565b9160405192610eea846119de565b8352604051938480926370a0823160e01b82528960048301525afa918215610a9a57600092610f3e575b50916a0c097ce7bc90715b34b9f160241b610de4610f36936001955190611d6c565b910190610bdf565b90916020823d8211610f7a575b81610f5860209383611a46565b81010312610f77575051906a0c097ce7bc90715b34b9f160241b610f14565b80fd5b3d9150610f4b565b6a0c097ce7bc90715b34b9f160241b9150611d49565b506a0c097ce7bc90715b34b9f160241b811015610d75565b505060405190610fbf826119de565b8152610d04565b9192909394506020823d8211610ffc575b81610fe460209383611a46565b81010312610f775750518b9392909190610e92610e78565b3d9150610fd7565b6020945060249695925092610edc9361101f575b5050610eab565b528a8c611018565b50841515610e49565b906020823d821161105b575b8161104960209383611a46565b81010312610f77575051610deb610dba565b3d915061103c565b929450509193946020823d821161109b575b8161108260209383611a46565b81010312610f7757505193928c92909186610d23610cd4565b3d9150611075565b909250610d7e94506110b7575b5050610d48565b52898b6110b0565b50851515610ca4565b906020823d82116110f1575b816110e160209383611a46565b81010312610f7757505188610c22565b3d91506110d4565b602090604051908152f35b61111a9192503d806000833e610a8b8183611a46565b9082610baf565b346102125760403660031901126102125761113a611a7e565b7f386537fa92edc3319af95f1f904dcf1900021e4f3f4e08169a577a09076e66b36020602435926111696135bb565b61117281611dc7565b836111b3576001600160a01b038116600090815260cd835260408120555b6001600160a01b0316600081815260cc83526040908190208590555193845292a2005b6001600160a01b038116600090815260cd835260409020439055611190565b34610212576040366003190112610212576102756111ee611a7e565b6111f6611a94565b9061120c60018060a01b0360ca54163314611c2a565b613211565b346102125760403660031901126102125761122a611a7e565b611232611a94565b906000549060ff8260081c161592838094611429575b8015611412575b156113b65760ff1983166001176000556112f792846113a4575b5060c980546001600160a01b0319166001600160a01b03928316179055811660009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff1615611336575b6000805260976020526001600160a01b03167f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c7613d85565b506112fe57005b61ff0019600054166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b6001600160a01b03811660008181527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a46112bf565b61ffff19166101011760005584611269565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561124f5750600160ff84161461124f565b50600160ff841610611248565b346102125760403660031901126102125761144f611a94565b336001600160a01b0382160361146b57610275906004356136ed565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b34610212576040366003190112610212576102756004356114e7611a94565b9061150361038b82600052606560205260016040600020015490565b806000526065602052604060002060018060a01b03831660005260205260ff604060002054161561154e575b60009081526097602052604090206001600160a01b0390911690613d85565b60008181526065602090815260408083206001600160a01b03861680855292528220805460ff19166001179055339183907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a461152f565b34610212576040366003190112610212576115c1611a7e565b6024356115cc6135bb565b6115d68183613363565b61161957604080516001600160a01b0393909316835260208301919091527f98b2f82a3a07f223a0be64b3d0f47711c64dccd1feafb94aa28156b38cd9695c91a1005b60405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420636f6d7020666f72206772616e7400000000006044820152606490fd5b3461021257602036600319011261021257602061054d600435600052606560205260016040600020015490565b346102125760003660031901126102125760c9546040516001600160a01b039091168152602090f35b34610212576020366003190112610212576102756116d0611a7e565b6116e560018060a01b0360ca54163314611c2a565b613135565b34610212576080366003190112610212576004356001600160401b0381116102125761171a903690600401611aaa565b6024356001600160401b03811161021257611739903690600401611aaa565b6044359182151583036102125760643580151581036102125760005b83518110156118fe576001600160a01b036117708286611b75565b51166024606060018060a01b0360ca541660405192838092638e8f294b60e01b82528660048301525afa908115610a9a5787916117b5916000916118ce575b50611bea565b611816575b826117c9575b50600101611755565b919490936117d683613135565b60005b8451811015611808576001906118026001600160a01b036117fa8389611b75565b511686613211565b016117d9565b5093600191959250906117c0565b90939491926040519263aa5af0fd60e01b8452602084600481865afa938415610a9a5760009461189b575b506040519361184f856119de565b845261185b8484612e33565b60005b825181101561188e57600190611888866001600160a01b036118808488611b75565b511687612fb4565b0161185e565b50959490939250906117ba565b90936020823d82116118c6575b816118b560209383611a46565b81010312610f775750519287611841565b3d91506118a8565b6118ef915060603d81116118f7575b6118e78183611a46565b810190611bba565b5050896117af565b503d6118dd565b8260005b81518110156102755760019061194b6001600160a01b036119238386611b75565b5116838060a01b036119358487611b75565b511660005260cb60205260406000205490613363565b828060a01b0361195b8386611b75565b511660005260cb60205260406000205501611902565b34610212576020366003190112610212576004359063ffffffff60e01b821680920361021257602091635a05180f60e01b81149081156119b3575b5015158152f35b637965db0b60e01b8114915081156119cd575b50836119ac565b6301ffc9a760e01b149050836119c6565b602081019081106001600160401b038211176119f957604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176119f957604052565b61014081019081106001600160401b038211176119f957604052565b90601f801991011681019081106001600160401b038211176119f957604052565b6001600160401b0381116119f95760051b60200190565b600435906001600160a01b038216820361021257565b602435906001600160a01b038216820361021257565b9080601f8301121561021257813590611ac282611a67565b92611ad06040519485611a46565b82845260208085019360051b82010191821161021257602001915b818310611af85750505090565b82356001600160a01b038116810361021257815260209283019201611aeb565b9080601f83011215610212578135611b2f81611a67565b92611b3d6040519485611a46565b81845260208085019260051b82010192831161021257602001905b828210611b655750505090565b8135815260209182019101611b58565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b5190811515820361021257565b519060ff8216820361021257565b9081606091031261021257611bce81611b9f565b91611be76040611be060208501611bac565b9301611b9f565b90565b15611bf157565b60405162461bcd60e51b81526020600482015260116024820152701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6044820152606490fd5b15611c3157565b60405162461bcd60e51b815260206004820152601060248201526f37b7363c9031b7b6b83a3937b63632b960811b6044820152606490fd5b602081830312610212578051906001600160401b03821161021257019080601f8301121561021257815190611c9d82611a67565b92611cab6040519485611a46565b82845260208085019360051b82010191821161021257602001915b818310611cd35750505090565b82516001600160a01b038116810361021257815260209283019201611cc6565b6001600160401b0381116119f957601f01601f191660200190565b60405190611d1d604083611a46565b601c82527f626c6f636b206e756d62657220657863656564732033322062697473000000006020830152565b91908203918211611d5657565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715611d5657565b60405190611d8e604083611a46565b601a82527f6e657720696e64657820657863656564732032323420626974730000000000006020830152565b91908201809211611d5657565b6001600160a01b0316600081815260cc602090815260408083205460cd90925290912054611df59043611d49565b80151580611e48575b611e0757505050565b611e2891611e1491611d6c565b8260005260cb602052604060002054611dba565b8160005260cb60205260406000205560005260cd60205243604060002055565b50811515611dfe565b519061ffff8216820361021257565b519063ffffffff8216820361021257565b60405190611e7e82611a2a565b6000610120838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152565b8115611ec6570490565b634e487b7160e01b600052601260045260246000fd5b9392936101a0526101605260c05260018060a01b0360ca54166101005260405163db0846cb60e01b8152602081600481610100515afa8015610a9a57600061018052612bc4575b5060405163053e0d5f60e51b815260a081600481610100515afa908115610a9a57600091612b07575b5060ff6080600192015116019160ff8311611d5657611f80611f7060ff8516611a67565b6040516101405261014051611a46565b60ff83166101405152601f19611f9860ff8516611a67565b0160005b818110612aed575050610160516001600160a01b031615159283612a79575b6000610120819052608081905260a052611fd3611e71565b604051632aff3bff60e21b81526101a0516001600160a01b031660048201526101205161010051929592829060249082905afa8015612255576101205160e052612a5a575b50610120515b60e051518110156125a75760e0516001600160a01b0390612040908390611b75565b51169061012051506101205150604051638e8f294b60e01b8152826004820152606081602481610100515afa908115612255576101205191612586575b5060ff61208f81831661014051611b75565b51511615612343575b6040516361bfb47160e11b81526101a0516001600160a01b0316600482015290608082602481875afa8015612255576101205194859384928391906122f9575b50610160516001600160a01b0316821415806122f1575b806122e9575b6122db57604051946312bdd04160e31b8652826004870152602086602481610100515afa9586156122555761012051966122a0575b50670de0b6b3a76400006121598161215181958261214b612161978d611d6c565b04611d6c565b04998a611d6c565b049386611d6c565b6101605191900494906001600160a01b03168214612263575b50604051637f4e225760e11b81529550602090869060049082905afa8015612255576101205190612215575b60019550156121ee576121cf60ff836040936121d960206121cf856121e5991661014051611b75565b5101918251611dba565b90521661014051611b75565b90525b0161201e565b6121cf60ff836080936121d960606121cf8561220e991661014051611b75565b90526121e8565b506020853d821161224d575b8161222e60209383611a46565b8101031261224657612241600195611b9f565b6121a6565b6101205180fd5b3d9150612221565b6040513d61012051823e3d90fd5b91909395600190151715612286579015600117156122865760049492602061217a565b634e487b7160e01b61012051526011600452602461012051fd5b9095506020813d82116122d3575b816122bb60209383611a46565b81010312612246575194670de0b6b3a764000061212a565b3d91506122ae565b5050505050600191506121e8565b5082156120f5565b5086156120ef565b9450509450506080823d821161233b575b8161231760809383611a46565b810103126122465781516020830151604084015160609094015191959091386120d8565b3d915061230a565b604051631af1431b60e31b815260ff8216600482015260c081602481610100515afa9081156122555761012051916124be575b5060ff8151169061ffff60208201511680655af3107a4000810204655af3107a400014811517156122865761ffff6040830151169081655af3107a4000810204655af3107a400014821517156122865761ffff6060840151169283655af3107a4000810204655af3107a400014841517156122865761ffff6080820151169081655af3107a4000810204655af3107a400014821517156122865760a061ffff910151169283655af3107a4000810204655af3107a4000148415171561228657655af3107a400094858094928180946040519a6124518c611a2a565b8b526101205160208c01526101205160408c01526101205160608c01526101205160808c01520260a08a01520260c08801520260e086015202610100840152026101208201526124a760ff831661014051611b75565b526124b860ff821661014051611b75565b50612098565b905060c0813d821161257e575b816124d860c09383611a46565b81010312612246576040519060c082016001600160401b03811183821017612564576125599160a09160405261250d81611bac565b845261251b60208201611e51565b602085015261252c60408201611e51565b604085015261253d60608201611e51565b606085015261254e60808201611e51565b608085015201611e51565b60a082015238612376565b634e487b7160e01b61012051526041600452602461012051fd5b3d91506124cb565b61259e915060603d81116118f7576118e78183611a46565b5090503861207d565b509091929360405194638e8f294b60e01b865260018060a01b0361016051166004870152606086602481610100515afa958615612255576101205196612a36575b50610120515b60ff811660ff86168110156128075760ff61260c8261014051611b75565b515116156127fe576126219061014051611b75565b516080810151806127db575b506040810151806127b8575b50608081015180612795575b50604081015180612772575b50602081016126668151606084015190611dba565b151580612757575b6127135760ff82511660ff8a161460001461269b5750915060ff905b1660ff8114611d56576001016125ee565b6080826126ec6126cf670de0b6b3a76400006126c561270b9661010060ff9a990151905190611d6c565b0461012051611dba565b670de0b6b3a7640000610de4610120850151606086015190611d6c565b610120526126ff60408201518351611dba565b8252015160a051611dba565b60a05261268a565b8160ff60a4935116915190606081015160806040830151920151926040519463f523ae3d60e01b865260048601526024850152604484015260648301526084820152fd5b5061276b6040830151608084015190611dba565b151561266e565b612788606083019182519060e085015191613abf565b6040840152905238612651565b6127ab606083019182519060e085015191613abf565b6080840152905238612645565b6127ce602083019182519060a085015191613abf565b6040840152905238612639565b6127f1602083019182519060c085015191613abf565b608084015290523861262d565b5060ff9061268a565b505092509290935061289561288a61282460805161012051613b41565b9081608052806101205261018051612a1d575b50604085019061284b825161012051613b41565b8352806101205261018051612a00575b50806129de575b506080516129bc575b61018051612968575b61288260a051608051611dba565b905190611dba565b608084015190611dba565b61296057612913670de0b6b3a7640000928392611be79560001461292957836128ce6128f892610180511561291e575b61012051611d6c565b0484806128f060c08601516128eb60c05191602089015190611d6c565b611d6c565b040490611dba565b610120525b6128eb60e0820151606060c05193015190611d6c565b040461012051611dba565b6000610120526128c5565b8361293a6129579261012051611d6c565b0484806128f060a08601516128eb60c05191602089015190611d6c565b610120526128fd565b505050600090565b60a05161299a575b60a051156128745760608501805161012087015160a05161299092613abf565b60a0529052612874565b60208501805161010087015160a0516129b292613abf565b60a0529052612970565b6060850180516101208701516080516129d492613abf565b608052905261286b565b6129f5602087019182519061010089015191613abf565b608052905238612862565b612a106080880191825190613b41565b909152610120523861285b565b60a051612a2991613b41565b60a0526101205238612837565b612a5091965060603d6060116118f7576118e78183611a46565b50905094386125e8565b612a70903d8061012051833e610a8b8183611a46565b60e05238612018565b9250604051637f4e225760e11b815260208160048160018060a01b0361016051165afa908115610a9a57600091612ab3575b501592611fbb565b90506020813d602011612ae5575b81612ace60209383611a46565b8101031261021257612adf90611b9f565b38612aab565b3d9150612ac1565b602090612af8611e71565b82826101405101015201611f9c565b60a0813d60a011612bbc575b81612b2060a09383611a46565b81010312612bb8576040519160a08301908382106001600160401b03831117612ba45750600192612b98608060ff948194604052612b5d81611e51565b8452612b6b60208201611e60565b6020850152612b7c60408201611e60565b6040850152612b8d60608201611e60565b606085015201611bac565b82820152925050611f4c565b634e487b7160e01b81526041600452602490fd5b5080fd5b3d9150612b13565b6020813d602011612bff575b81612bdd60209383611a46565b81010312612bf857612bee90611b9f565b6101805238611f23565b6101805180fd5b3d9150612bd0565b919091604092835191612c1a8584611a46565b600183526020830190601f198601368337835115611b89576001600160a01b0316905291926000925b8051841015612dbb576001600160a01b03612c5e8583611b75565b5116906024606060018060a01b0360ca5416855192838092638e8f294b60e01b82528760048301525afa908115612db05790612ca191600091612d905750611bea565b825163aa5af0fd60e01b815292602084600481865afa938415612d8557600094612d52575b50805193612cd3856119de565b8452612cdf8484612e33565b60005b8551811015612d0a57600190612d04866001600160a01b03611880848b611b75565b01612ce2565b5091925094612d1883613135565b60005b8451811015612d4257600190612d3c6001600160a01b036117fa8389611b75565b01612d1b565b5094600190940193909150612c43565b90936020823d8211612d7d575b81612d6c60209383611a46565b81010312610f775750519238612cc6565b3d9150612d5f565b50513d6000823e3d90fd5b612da8915060603d81116118f7576118e78183611a46565b5050386117af565b84513d6000823e3d90fd5b50915060005b8151811015612e2e57600190612e096001600160a01b03612de28386611b75565b5116838060a01b03612df48487611b75565b511660005260cb602052856000205490613363565b828060a01b03612e198386611b75565b511660005260cb602052846000205501612dc1565b505050565b6001600160a01b0316600081815260d36020908152604080832060d1909252909120549291612e70612e63611d0e565b64010000000043106137e5565b63ffffffff431692612e86835460e01c85611d49565b918215158080612fab575b15612f7d57506020600491604051928380926308f7a6e360e31b82525afa908115610a9a57600091612f47575b5094610cea612ed092612f2b97613809565b8115612f2d57612efb91612ee391613835565b8254604051906001600160e01b0316610d1c826119de565b51612f07610d2f611d7f565b60e09290921b6001600160e01b0319166001600160e01b0392909216919091179055565b565b5050612efb604051612f3e816119de565b60008152612ee3565b9590506020863d602011612f75575b81612f6360209383611a46565b81010312610212579451610cea612ebe565b3d9150612f56565b939550505050612f8b575050565b81546001600160e01b031660e09190911b6001600160e01b031916179055565b50861515612e91565b6001600160a01b03908116600081815260d3602090815260408083205460cf8352818420958716845294909152902080546001600160e01b0390931690819055929390929180158061311d575b613108575b6130109083611d49565b906040519161301e836119de565b82526040516395dd919360e01b81526001600160a01b039095166004860181905294602081602481885afa908115610a9a576000916130ce575b5061309a604093610ddc7f1fc3ecc087d8d2d15e23d0032af5a47059c3892d003d8e139fdcb6bb327c99a696946a0c097ce7bc90715b34b9f160241b94613809565b04908560005260cb6020526130b3828460002054611dba565b8660005260cb602052836000205582519182526020820152a3565b90506020939193813d602011613100575b816130ec60209383611a46565b81010312610212575190929061309a613058565b3d91506130df565b506a0c097ce7bc90715b34b9f160241b613006565b506a0c097ce7bc90715b34b9f160241b831015613001565b6001600160a01b0316600081815260d26020908152604080832060d090925290912054929190613166612e63611d0e565b63ffffffff43169161317c825460e01c84611d49565b908115158080613208575b156131fa5750906020600492604051938480926318160ddd60e01b82525afa918215610a9a576000926131c4575b50612f2b9495612ed091611d6c565b90916020823d6020116131f2575b816131df60209383611a46565b81010312610f7757505190612f2b6131b5565b3d91506131d2565b929495505050612f8b575050565b50861515613187565b6001600160a01b03908116600081815260d2602090815260408083205460ce8352818420958716845294909152902080546001600160e01b0390931690819055909180158061334b575b613336575b61326a9082611d49565b9260405193613278856119de565b84526040516370a0823160e01b81526001600160a01b039091166004820181905293602082602481875afa918215610a9a576000926132f2575b50916a0c097ce7bc90715b34b9f160241b61309a6040937f2caecd17d02f56fa897705dcc740da2d237c373f70686f4e0d9bd3bf0400ea7a955190611d6c565b9150916020823d60201161332e575b8161330e60209383611a46565b8101031261021257905190916a0c097ce7bc90715b34b9f160241b6132b2565b3d9150613301565b506a0c097ce7bc90715b34b9f160241b613260565b506a0c097ce7bc90715b34b9f160241b82101561325b565b60ca54604051632aff3bff60e21b81526001600160a01b0380841660048301529093929160009185916024918391165afa928315610a9a5760009361359e575b5060005b835181101561345d576001600160a01b036133c28286611b75565b51168060005260d160205260406000205415809181613431575b81613406575b5081156133fe575b506133f7576001016133a7565b5050905090565b9050386133ea565b905060005260cf60205260408060002060009060018060a01b038616825260205220541515386133e2565b600081815260ce602090815260408083206001600160a01b0389168452909152902054151592506133dc565b5060c9546040516370a0823160e01b81523060048201529193506001600160a01b031690602081602481855afa908115610a9a5760009161356c575b508215159081613561575b506134af5750905090565b60405163a9059cbb60e01b602082019081526001600160a01b03949094166024820152604480820193909352918252600092839283906134f0606482611a46565b51925af13d1561355c573d61350481611cf3565b906135126040519283611a46565b8152600060203d92013e5b1561352757600090565b60405162461bcd60e51b815260206004820152600d60248201526c31b0b73a103a3930b739b332b960991b6044820152606490fd5b61351d565b9050821115386134a4565b90506020813d602011613596575b8161358760209383611a46565b81010312610212575138613499565b3d915061357a565b6135b49193503d806000833e610a8b8183611a46565b91386133a3565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff16156135f457565b6136a961360033613b99565b613691601161360f6000613cd9565b9260376040519485927f416363657373436f6e74726f6c3a206163636f756e742000000000000000000060208501526136518151809260208688019101613796565b83017001034b99036b4b9b9b4b733903937b6329607d1b83820152613680825180936020604885019101613796565b01010301601f198101835282611a46565b60405162461bcd60e51b8152918291600483016137b9565b0390fd5b600081815260656020908152604080832033845290915290205460ff16156136d25750565b6136a990613691601161360f6136e733613b99565b93613cd9565b9061373c91806000526065602052604060002060018060a01b03831660005260205260ff6040600020541661373f575b60009081526097602052604090206001600160a01b0390911690613df3565b50565b60008181526065602090815260408083206001600160a01b03861680855292528220805460ff19169055339183907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a461371d565b60005b8381106137a95750506000910152565b8181015183820152602001613799565b604091602082526137d98151809281602086015260208686019101613796565b601f01601f1916010190565b156137ed5750565b60405162461bcd60e51b81529081906136a990600483016137b9565b670de0b6b3a7640000810290808204670de0b6b3a76400001490151715611d5657611be7915190611ebc565b906000604051613844816119de565b526a0c097ce7bc90715b34b9f160241b8202918083046a0c097ce7bc90715b34b9f160241b1490151715611d565761387b91611ebc565b60405190613888826119de565b815290565b9061387b9160006040516138a0816119de565b5251905190611dba565b60ca54604051638e8f294b60e01b81526001600160a01b03808416600483018190529593949260609183916024918391165afa8015610a9a576138f491600091613aa65750611bea565b8015613a6b578115613a305783908160005260d060205280604060002054036139e6575b5060005260d1602052806040600020540361393257505050565b60405163aa5af0fd60e01b815291602083600481875afa928315610a9a576000936139ae575b50906139967f20af8e791cc98f74b2d7a391c80980ca8e5aebf3d4060bf581997b6acae2e537936020936040519161398f836119de565b8252612e33565b8360005260d1825280604060002055604051908152a2565b9250906020833d6020116139de575b816139ca60209383611a46565b810103126102125791519190613996613958565b3d91506139bd565b60207fdeafccd0c0b768b2529f7dcbbe58e155d6023059150b7490ed4535cc3744b92d91613a1386613135565b8360005260d0825280604060002055604051908152a28238613918565b60405162461bcd60e51b81526020600482015260136024820152721a5b9d9b185a5908189bdc9c9bddd4dc195959606a1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a59081cdd5c1c1b1e54dc195959606a1b6044820152606490fd5b612da8915060603d6060116118f7576118e78183611a46565b929190928115613b3957670de0b6b3a7640000613adc8284611d6c565b0491670de0b6b3a7640000850290858204670de0b6b3a76400001486151715611d5657613b0891611ebc565b91600090600095808211600014613b2a5750505090613b2691611d49565b9190565b9195509150611be79250611d49565b505060009190565b8115613b6d5781811115613b5f5790613b5991611d49565b90600090565b613b6891611d49565b600091565b91565b8054821015611b895760005260206000200190600090565b908151811015611b89570160200190565b600090613ba6602a611cf3565b91613bb46040519384611a46565b602a8352613bc2602a611cf3565b6020840190601f1901368237835115613cc55760309053825160011015613cb1576078602184015350602960005b60018211613c45575050613c015790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015613c9d576f181899199a1a9b1b9c1cb0b131b232b360811b901a613c748486613b88565b5360041c918015613c89576000190190613bf0565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b82526032600452602482fd5b600090613ce66042611cf3565b91613cf46040519384611a46565b60428352613d026042611cf3565b6020840190601f1901368237835115613cc55760309053825160011015613cb1576078602184015350604160005b60018211613d41575050613c015790565b9091600f81166010811015613c9d576f181899199a1a9b1b9c1cb0b131b232b360811b901a613d708486613b88565b5360041c918015613c89576000190190613d30565b6001810190826000528160205260406000205415600014612960578054680100000000000000008110156119f957613dde613dc7826001879401855584613b70565b819391549060031b91821b91600019901b19161790565b90555491600052602052604060002055600190565b9060018201918160005282602052604060002054801515600014613ebd576000198101818111611d56578254600019810191908211611d5657808203613e86575b50505080548015613e70576000190190613e4e8282613b70565b8154906000199060031b1b191690555560005260205260006040812055600190565b634e487b7160e01b600052603160045260246000fd5b613ea6613e96613dc79386613b70565b90549060031b1c92839286613b70565b905560005283602052604060002055388080613e34565b5050505060009056fea2646970667358221220016e6e45fc7b01a851a3fe76435177332ef436c63c542537604cb4901332443364736f6c634300081a0033";
|
|
17
|
+
static readonly bytecode = "0x6080806040523460bd576000549060ff8260081c16606b575060ff808216106031575b604051613efc90816100c38239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386022565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe6101c080604052600436101561001457600080fd5b60003560e01c90816301ffc9a7146119715750806306fb2592146116ea578063082bc0ab146116b4578063109d0af81461168b578063248a9ca31461165e57806327efe3cb146115a85780632f2ff15d146114c857806336568abe14611436578063485cc955146112115780634f54b3c0146111d2578063598ee1cb146111215780635a2e013314610b615780635f87769b14610b235780635fe3b56714610afa57806365658c3e14610aa657806369063a5614610a1d5780636aa875b5146109e35780636b79c38d14610991578063741b252514610970578063759c082a146108595780638bad38dd146107ec5780638c57804e1461079a5780639010d07c1461075357806391d1485414610706578063986ab838146106cc578063a217fddf146106b0578063a7f0e23114610687578063a8b4394814610555578063a9e40a4214610519578063b21be7fd146104c8578063bea6b8b81461048e578063ca0af0431461043d578063ca15c87314610411578063cc7ebdc4146103d7578063d29424f214610395578063d547741f14610350578063d5e5cec514610298578063eac1fed014610277578063f47dbe02146102175763f4a433c0146101d857600080fd5b34610212576020366003190112610212576001600160a01b036101f9611a7e565b1660005260d16020526020604060002054604051908152f35b600080fd5b3461021257606036600319011261021257610230611a7e565b610238611a94565b906020366043190112610212576102759160405191610256836119de565b604435835261027060018060a01b0360ca54163314611c2a565b612fb4565b005b34610212576000366003190112610212576020604051655af3107a40008152f35b34610212576020366003190112610212576102b1611a7e565b6102c660018060a01b0360ca54163314611c2a565b6001600160a01b0316600081815260d260205260409020546001600160e01b03166a0c097ce7bc90715b34b9f160241b1461033b575b600081815260d260205260409020546001600160e01b03166a0c097ce7bc90715b34b9f160241b1461032a57005b600090815260d36020526040812055005b8060005260d2602052600060408120556102fc565b346102125760403660031901126102125761027560043561036f611a94565b9061039061038b82600052606560205260016040600020015490565b6136ad565b6136ed565b34610212576040366003190112610212576103ae611a7e565b602435906001600160401b038211610212576103d1610275923690600401611aaa565b90612c07565b34610212576020366003190112610212576001600160a01b036103f8611a7e565b1660005260cb6020526020604060002054604051908152f35b346102125760203660031901126102125760043560005260976020526020604060002054604051908152f35b3461021257604036600319011261021257610456611a7e565b61045e611a94565b6001600160a01b03918216600090815260cf60209081526040808320949093168252928352819020549051908152f35b34610212576020366003190112610212576001600160a01b036104af611a7e565b1660005260cd6020526020604060002054604051908152f35b34610212576040366003190112610212576104e1611a7e565b6104e9611a94565b6001600160a01b03918216600090815260ce60209081526040808320949093168252928352819020549051908152f35b3461021257608036600319011261021257602061054d610537611a7e565b61053f611a94565b906064359160443591611edc565b604051908152f35b34610212576060366003190112610212576004356001600160401b03811161021257610585903690600401611aaa565b6024356001600160401b038111610212576105a4903690600401611b18565b6044356001600160401b038111610212576105c3903690600401611b18565b916105cc6135bb565b805191805183148061067d575b156106265760005b8381106105ea57005b6001906106206001600160a01b036106028387611b75565b511661060e8386611b75565b51610619848a611b75565b51916138aa565b016105e1565b60405162461bcd60e51b815260206004820152602960248201527f436f6d7074726f6c6c65723a3a5f736574436f6d7053706565647320696e76616044820152681b1a59081a5b9c1d5d60ba1b6064820152608490fd5b50835183146105d9565b346102125760003660031901126102125760206040516a0c097ce7bc90715b34b9f160241b8152f35b3461021257600036600319011261021257602060405160008152f35b34610212576020366003190112610212576001600160a01b036106ed611a7e565b1660005260cc6020526020604060002054604051908152f35b346102125760403660031901126102125761071f611a94565b600435600052606560205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461021257604036600319011261021257600435600052609760205260206107816024356040600020613b70565b905460405160039290921b1c6001600160a01b03168152f35b34610212576020366003190112610212576001600160a01b036107bb611a7e565b16600090815260d360209081526040918290205482516001600160e01b038216815260e09190911c91810191909152f35b34610212576020366003190112610212576004356001600160a01b038116908190036102125760207f51e0228fe901c430722ddefd46e1d63fd4127597ef3ae7c79ae73d2de14fbf389161083e6135bb565b60ca80546001600160a01b03191682179055604051908152a1005b3461021257604036600319011261021257610872611a7e565b60243563ffffffff81168103610212576102759161089b60018060a01b0360ca54163314611c2a565b6001600160a01b0316600090815260d26020908152604080832060d390925290912081546109079184916001600160e01b03161561094d575b80546001600160e01b03161561092a5780546001600160e01b031660e09290921b6001600160e01b031916919091179055565b80546001600160e01b031660e09290921b6001600160e01b031916919091179055565b80546001600160e01b0319166a0c097ce7bc90715b34b9f160241b178155610907565b83546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1784556108d4565b346102125760203660031901126102125761027561098c611a7e565b611dc7565b34610212576020366003190112610212576001600160a01b036109b2611a7e565b16600090815260d260209081526040918290205482516001600160e01b038216815260e09190911c91810191909152f35b34610212576020366003190112610212576001600160a01b03610a04611a7e565b1660005260d06020526020604060002054604051908152f35b34610212576020366003190112610212576004610a38611a7e565b60ca5460405163b0772d0b60e01b81529260009184919082906001600160a01b03165afa908115610a9a5761027592600092610a75575b50612c07565b610a939192503d806000833e610a8b8183611a46565b810190611c69565b9083610a6f565b6040513d6000823e3d90fd5b3461021257604036600319011261021257610abf611a7e565b60203660231901126102125760405161027591610adb826119de565b6024358252610af560018060a01b0360ca54163314611c2a565b612e33565b346102125760003660031901126102125760ca546040516001600160a01b039091168152602090f35b3461021257606036600319011261021257610275610b3f611a7e565b610b5460018060a01b0360ca54163314611c2a565b60443590602435906138aa565b34610212576020366003190112610212576004610b7c611a7e565b60ca5460405163b0772d0b60e01b81529260009184919082906001600160a01b03165afa918215610a9a57600092611104575b506001600160a01b0316600081815260cb60205260408120544363ffffffff811694936401000000009091109290915b84518210156110f9576001600160a01b03610bfa8387611b75565b51169060405163aa5af0fd60e01b8152602081600481865afa908115610a9a576000916110c8575b5060405190610c30826119de565b81528260005260d3602052604060002060405190610c4d82611a0f565b546001600160e01b038116825260e01c6020808301918252600086815260d190915260409020549190610c87610c81611d0e565b8a6137e5565b610c9863ffffffff8251168c611d49565b908b82151580806110bf575b156110a35750506040516308f7a6e360e31b8152916020836004818b5afa948515610a9a57868e94600097611063575b50610d239291610cea610cf092610d7e99613809565b92611d6c565b600091908115610fb057610d049250613835565b8451604051906001600160e01b0316610d1c826119de565b815261388d565b51610d3b610d2f611d7f565b600160e01b83106137e5565b6001600160e01b03168352525b51600085815260cf602090815260408083208a8452909152902054906001600160e01b0316811580610f98575b610f8257611d49565b9060405191610d8c836119de565b82526040516395dd919360e01b815260048101879052602081602481885afa908115610a9a57600091611030575b50610deb9392610ddc6a0c097ce7bc90715b34b9f160241b93610de493613809565b905190611d6c565b0490611dba565b908060005260d2602052604060002060405190610e0782611a0f565b5460018060e01b0381168252602082019060e01c81528260005260d060205260406000205490610e3e63ffffffff8251168b611d49565b8a8115158080611027575b156110045750506040516318160ddd60e01b815292602084600481895afa918215610a9a578c94600093610fc6575b5092610e926024979693610cf060209794610edc97611d6c565b51610e9e610d2f611d7f565b6001600160e01b03168352525b51600084815260ce845260408082208a83528552902054906001600160e01b0316811580610f9857610f8257611d49565b9160405192610eea846119de565b8352604051938480926370a0823160e01b82528960048301525afa918215610a9a57600092610f3e575b50916a0c097ce7bc90715b34b9f160241b610de4610f36936001955190611d6c565b910190610bdf565b90916020823d8211610f7a575b81610f5860209383611a46565b81010312610f77575051906a0c097ce7bc90715b34b9f160241b610f14565b80fd5b3d9150610f4b565b6a0c097ce7bc90715b34b9f160241b9150611d49565b506a0c097ce7bc90715b34b9f160241b811015610d75565b505060405190610fbf826119de565b8152610d04565b9192909394506020823d8211610ffc575b81610fe460209383611a46565b81010312610f775750518b9392909190610e92610e78565b3d9150610fd7565b6020945060249695925092610edc9361101f575b5050610eab565b528a8c611018565b50841515610e49565b906020823d821161105b575b8161104960209383611a46565b81010312610f77575051610deb610dba565b3d915061103c565b929450509193946020823d821161109b575b8161108260209383611a46565b81010312610f7757505193928c92909186610d23610cd4565b3d9150611075565b909250610d7e94506110b7575b5050610d48565b52898b6110b0565b50851515610ca4565b906020823d82116110f1575b816110e160209383611a46565b81010312610f7757505188610c22565b3d91506110d4565b602090604051908152f35b61111a9192503d806000833e610a8b8183611a46565b9082610baf565b346102125760403660031901126102125761113a611a7e565b7f386537fa92edc3319af95f1f904dcf1900021e4f3f4e08169a577a09076e66b36020602435926111696135bb565b61117281611dc7565b836111b3576001600160a01b038116600090815260cd835260408120555b6001600160a01b0316600081815260cc83526040908190208590555193845292a2005b6001600160a01b038116600090815260cd835260409020439055611190565b34610212576040366003190112610212576102756111ee611a7e565b6111f6611a94565b9061120c60018060a01b0360ca54163314611c2a565b613211565b346102125760403660031901126102125761122a611a7e565b611232611a94565b906000549060ff8260081c161592838094611429575b8015611412575b156113b65760ff1983166001176000556112f792846113a4575b5060c980546001600160a01b0319166001600160a01b03928316179055811660009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff1615611336575b6000805260976020526001600160a01b03167f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c7613d85565b506112fe57005b61ff0019600054166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b6001600160a01b03811660008181527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a46112bf565b61ffff19166101011760005584611269565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561124f5750600160ff84161461124f565b50600160ff841610611248565b346102125760403660031901126102125761144f611a94565b336001600160a01b0382160361146b57610275906004356136ed565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b34610212576040366003190112610212576102756004356114e7611a94565b9061150361038b82600052606560205260016040600020015490565b806000526065602052604060002060018060a01b03831660005260205260ff604060002054161561154e575b60009081526097602052604090206001600160a01b0390911690613d85565b60008181526065602090815260408083206001600160a01b03861680855292528220805460ff19166001179055339183907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a461152f565b34610212576040366003190112610212576115c1611a7e565b6024356115cc6135bb565b6115d68183613363565b61161957604080516001600160a01b0393909316835260208301919091527f98b2f82a3a07f223a0be64b3d0f47711c64dccd1feafb94aa28156b38cd9695c91a1005b60405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420636f6d7020666f72206772616e7400000000006044820152606490fd5b3461021257602036600319011261021257602061054d600435600052606560205260016040600020015490565b346102125760003660031901126102125760c9546040516001600160a01b039091168152602090f35b34610212576020366003190112610212576102756116d0611a7e565b6116e560018060a01b0360ca54163314611c2a565b613135565b34610212576080366003190112610212576004356001600160401b0381116102125761171a903690600401611aaa565b6024356001600160401b03811161021257611739903690600401611aaa565b6044359182151583036102125760643580151581036102125760005b83518110156118fe576001600160a01b036117708286611b75565b51166024606060018060a01b0360ca541660405192838092638e8f294b60e01b82528660048301525afa908115610a9a5787916117b5916000916118ce575b50611bea565b611816575b826117c9575b50600101611755565b919490936117d683613135565b60005b8451811015611808576001906118026001600160a01b036117fa8389611b75565b511686613211565b016117d9565b5093600191959250906117c0565b90939491926040519263aa5af0fd60e01b8452602084600481865afa938415610a9a5760009461189b575b506040519361184f856119de565b845261185b8484612e33565b60005b825181101561188e57600190611888866001600160a01b036118808488611b75565b511687612fb4565b0161185e565b50959490939250906117ba565b90936020823d82116118c6575b816118b560209383611a46565b81010312610f775750519287611841565b3d91506118a8565b6118ef915060603d81116118f7575b6118e78183611a46565b810190611bba565b5050896117af565b503d6118dd565b8260005b81518110156102755760019061194b6001600160a01b036119238386611b75565b5116838060a01b036119358487611b75565b511660005260cb60205260406000205490613363565b828060a01b0361195b8386611b75565b511660005260cb60205260406000205501611902565b34610212576020366003190112610212576004359063ffffffff60e01b821680920361021257602091635a05180f60e01b81149081156119b3575b5015158152f35b637965db0b60e01b8114915081156119cd575b50836119ac565b6301ffc9a760e01b149050836119c6565b602081019081106001600160401b038211176119f957604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176119f957604052565b61014081019081106001600160401b038211176119f957604052565b90601f801991011681019081106001600160401b038211176119f957604052565b6001600160401b0381116119f95760051b60200190565b600435906001600160a01b038216820361021257565b602435906001600160a01b038216820361021257565b9080601f8301121561021257813590611ac282611a67565b92611ad06040519485611a46565b82845260208085019360051b82010191821161021257602001915b818310611af85750505090565b82356001600160a01b038116810361021257815260209283019201611aeb565b9080601f83011215610212578135611b2f81611a67565b92611b3d6040519485611a46565b81845260208085019260051b82010192831161021257602001905b828210611b655750505090565b8135815260209182019101611b58565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b5190811515820361021257565b519060ff8216820361021257565b9081606091031261021257611bce81611b9f565b91611be76040611be060208501611bac565b9301611b9f565b90565b15611bf157565b60405162461bcd60e51b81526020600482015260116024820152701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6044820152606490fd5b15611c3157565b60405162461bcd60e51b815260206004820152601060248201526f37b7363c9031b7b6b83a3937b63632b960811b6044820152606490fd5b602081830312610212578051906001600160401b03821161021257019080601f8301121561021257815190611c9d82611a67565b92611cab6040519485611a46565b82845260208085019360051b82010191821161021257602001915b818310611cd35750505090565b82516001600160a01b038116810361021257815260209283019201611cc6565b6001600160401b0381116119f957601f01601f191660200190565b60405190611d1d604083611a46565b601c82527f626c6f636b206e756d62657220657863656564732033322062697473000000006020830152565b91908203918211611d5657565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715611d5657565b60405190611d8e604083611a46565b601a82527f6e657720696e64657820657863656564732032323420626974730000000000006020830152565b91908201809211611d5657565b6001600160a01b0316600081815260cc602090815260408083205460cd90925290912054611df59043611d49565b80151580611e48575b611e0757505050565b611e2891611e1491611d6c565b8260005260cb602052604060002054611dba565b8160005260cb60205260406000205560005260cd60205243604060002055565b50811515611dfe565b519061ffff8216820361021257565b519063ffffffff8216820361021257565b60405190611e7e82611a2a565b6000610120838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152565b8115611ec6570490565b634e487b7160e01b600052601260045260246000fd5b9392936101a0526101605260c05260018060a01b0360ca54166101005260405163db0846cb60e01b8152602081600481610100515afa8015610a9a57600061018052612bc4575b5060405163053e0d5f60e51b815260a081600481610100515afa908115610a9a57600091612b07575b5060ff6080600192015116019160ff8311611d5657611f80611f7060ff8516611a67565b6040516101405261014051611a46565b60ff83166101405152601f19611f9860ff8516611a67565b0160005b818110612aed575050610160516001600160a01b031615159283612a79575b6000610120819052608081905260a052611fd3611e71565b604051632aff3bff60e21b81526101a0516001600160a01b031660048201526101205161010051929592829060249082905afa8015612255576101205160e052612a5a575b50610120515b60e051518110156125a75760e0516001600160a01b0390612040908390611b75565b51169061012051506101205150604051638e8f294b60e01b8152826004820152606081602481610100515afa908115612255576101205191612586575b5060ff61208f81831661014051611b75565b51511615612343575b6040516361bfb47160e11b81526101a0516001600160a01b0316600482015290608082602481875afa8015612255576101205194859384928391906122f9575b50610160516001600160a01b0316821415806122f1575b806122e9575b6122db57604051946312bdd04160e31b8652826004870152602086602481610100515afa9586156122555761012051966122a0575b50670de0b6b3a76400006121598161215181958261214b612161978d611d6c565b04611d6c565b04998a611d6c565b049386611d6c565b6101605191900494906001600160a01b03168214612263575b50604051637f4e225760e11b81529550602090869060049082905afa8015612255576101205190612215575b60019550156121ee576121cf60ff836040936121d960206121cf856121e5991661014051611b75565b5101918251611dba565b90521661014051611b75565b90525b0161201e565b6121cf60ff836080936121d960606121cf8561220e991661014051611b75565b90526121e8565b506020853d821161224d575b8161222e60209383611a46565b8101031261224657612241600195611b9f565b6121a6565b6101205180fd5b3d9150612221565b6040513d61012051823e3d90fd5b91909395600190151715612286579015600117156122865760049492602061217a565b634e487b7160e01b61012051526011600452602461012051fd5b9095506020813d82116122d3575b816122bb60209383611a46565b81010312612246575194670de0b6b3a764000061212a565b3d91506122ae565b5050505050600191506121e8565b5082156120f5565b5086156120ef565b9450509450506080823d821161233b575b8161231760809383611a46565b810103126122465781516020830151604084015160609094015191959091386120d8565b3d915061230a565b604051631af1431b60e31b815260ff8216600482015260c081602481610100515afa9081156122555761012051916124be575b5060ff8151169061ffff60208201511680655af3107a4000810204655af3107a400014811517156122865761ffff6040830151169081655af3107a4000810204655af3107a400014821517156122865761ffff6060840151169283655af3107a4000810204655af3107a400014841517156122865761ffff6080820151169081655af3107a4000810204655af3107a400014821517156122865760a061ffff910151169283655af3107a4000810204655af3107a4000148415171561228657655af3107a400094858094928180946040519a6124518c611a2a565b8b526101205160208c01526101205160408c01526101205160608c01526101205160808c01520260a08a01520260c08801520260e086015202610100840152026101208201526124a760ff831661014051611b75565b526124b860ff821661014051611b75565b50612098565b905060c0813d821161257e575b816124d860c09383611a46565b81010312612246576040519060c082016001600160401b03811183821017612564576125599160a09160405261250d81611bac565b845261251b60208201611e51565b602085015261252c60408201611e51565b604085015261253d60608201611e51565b606085015261254e60808201611e51565b608085015201611e51565b60a082015238612376565b634e487b7160e01b61012051526041600452602461012051fd5b3d91506124cb565b61259e915060603d81116118f7576118e78183611a46565b5090503861207d565b509091929360405194638e8f294b60e01b865260018060a01b0361016051166004870152606086602481610100515afa958615612255576101205196612a36575b50610120515b60ff811660ff86168110156128075760ff61260c8261014051611b75565b515116156127fe576126219061014051611b75565b516080810151806127db575b506040810151806127b8575b50608081015180612795575b50604081015180612772575b50602081016126668151606084015190611dba565b151580612757575b6127135760ff82511660ff8a161460001461269b5750915060ff905b1660ff8114611d56576001016125ee565b6080826126ec6126cf670de0b6b3a76400006126c561270b9661010060ff9a990151905190611d6c565b0461012051611dba565b670de0b6b3a7640000610de4610120850151606086015190611d6c565b610120526126ff60408201518351611dba565b8252015160a051611dba565b60a05261268a565b8160ff60a4935116915190606081015160806040830151920151926040519463f523ae3d60e01b865260048601526024850152604484015260648301526084820152fd5b5061276b6040830151608084015190611dba565b151561266e565b612788606083019182519060e085015191613abf565b6040840152905238612651565b6127ab606083019182519060e085015191613abf565b6080840152905238612645565b6127ce602083019182519060a085015191613abf565b6040840152905238612639565b6127f1602083019182519060c085015191613abf565b608084015290523861262d565b5060ff9061268a565b505092509290935061289561288a61282460805161012051613b41565b9081608052806101205261018051612a1d575b50604085019061284b825161012051613b41565b8352806101205261018051612a00575b50806129de575b506080516129bc575b61018051612968575b61288260a051608051611dba565b905190611dba565b608084015190611dba565b61296057612913670de0b6b3a7640000928392611be79560001461292957836128ce6128f892610180511561291e575b61012051611d6c565b0484806128f060c08601516128eb60c05191602089015190611d6c565b611d6c565b040490611dba565b610120525b6128eb60e0820151606060c05193015190611d6c565b040461012051611dba565b6000610120526128c5565b8361293a6129579261012051611d6c565b0484806128f060a08601516128eb60c05191602089015190611d6c565b610120526128fd565b505050600090565b60a05161299a575b60a051156128745760608501805161012087015160a05161299092613abf565b60a0529052612874565b60208501805161010087015160a0516129b292613abf565b60a0529052612970565b6060850180516101208701516080516129d492613abf565b608052905261286b565b6129f5602087019182519061010089015191613abf565b608052905238612862565b612a106080880191825190613b41565b909152610120523861285b565b60a051612a2991613b41565b60a0526101205238612837565b612a5091965060603d6060116118f7576118e78183611a46565b50905094386125e8565b612a70903d8061012051833e610a8b8183611a46565b60e05238612018565b9250604051637f4e225760e11b815260208160048160018060a01b0361016051165afa908115610a9a57600091612ab3575b501592611fbb565b90506020813d602011612ae5575b81612ace60209383611a46565b8101031261021257612adf90611b9f565b38612aab565b3d9150612ac1565b602090612af8611e71565b82826101405101015201611f9c565b60a0813d60a011612bbc575b81612b2060a09383611a46565b81010312612bb8576040519160a08301908382106001600160401b03831117612ba45750600192612b98608060ff948194604052612b5d81611e51565b8452612b6b60208201611e60565b6020850152612b7c60408201611e60565b6040850152612b8d60608201611e60565b606085015201611bac565b82820152925050611f4c565b634e487b7160e01b81526041600452602490fd5b5080fd5b3d9150612b13565b6020813d602011612bff575b81612bdd60209383611a46565b81010312612bf857612bee90611b9f565b6101805238611f23565b6101805180fd5b3d9150612bd0565b919091604092835191612c1a8584611a46565b600183526020830190601f198601368337835115611b89576001600160a01b0316905291926000925b8051841015612dbb576001600160a01b03612c5e8583611b75565b5116906024606060018060a01b0360ca5416855192838092638e8f294b60e01b82528760048301525afa908115612db05790612ca191600091612d905750611bea565b825163aa5af0fd60e01b815292602084600481865afa938415612d8557600094612d52575b50805193612cd3856119de565b8452612cdf8484612e33565b60005b8551811015612d0a57600190612d04866001600160a01b03611880848b611b75565b01612ce2565b5091925094612d1883613135565b60005b8451811015612d4257600190612d3c6001600160a01b036117fa8389611b75565b01612d1b565b5094600190940193909150612c43565b90936020823d8211612d7d575b81612d6c60209383611a46565b81010312610f775750519238612cc6565b3d9150612d5f565b50513d6000823e3d90fd5b612da8915060603d81116118f7576118e78183611a46565b5050386117af565b84513d6000823e3d90fd5b50915060005b8151811015612e2e57600190612e096001600160a01b03612de28386611b75565b5116838060a01b03612df48487611b75565b511660005260cb602052856000205490613363565b828060a01b03612e198386611b75565b511660005260cb602052846000205501612dc1565b505050565b6001600160a01b0316600081815260d36020908152604080832060d1909252909120549291612e70612e63611d0e565b64010000000043106137e5565b63ffffffff431692612e86835460e01c85611d49565b918215158080612fab575b15612f7d57506020600491604051928380926308f7a6e360e31b82525afa908115610a9a57600091612f47575b5094610cea612ed092612f2b97613809565b8115612f2d57612efb91612ee391613835565b8254604051906001600160e01b0316610d1c826119de565b51612f07610d2f611d7f565b60e09290921b6001600160e01b0319166001600160e01b0392909216919091179055565b565b5050612efb604051612f3e816119de565b60008152612ee3565b9590506020863d602011612f75575b81612f6360209383611a46565b81010312610212579451610cea612ebe565b3d9150612f56565b939550505050612f8b575050565b81546001600160e01b031660e09190911b6001600160e01b031916179055565b50861515612e91565b6001600160a01b03908116600081815260d3602090815260408083205460cf8352818420958716845294909152902080546001600160e01b0390931690819055929390929180158061311d575b613108575b6130109083611d49565b906040519161301e836119de565b82526040516395dd919360e01b81526001600160a01b039095166004860181905294602081602481885afa908115610a9a576000916130ce575b5061309a604093610ddc7f1fc3ecc087d8d2d15e23d0032af5a47059c3892d003d8e139fdcb6bb327c99a696946a0c097ce7bc90715b34b9f160241b94613809565b04908560005260cb6020526130b3828460002054611dba565b8660005260cb602052836000205582519182526020820152a3565b90506020939193813d602011613100575b816130ec60209383611a46565b81010312610212575190929061309a613058565b3d91506130df565b506a0c097ce7bc90715b34b9f160241b613006565b506a0c097ce7bc90715b34b9f160241b831015613001565b6001600160a01b0316600081815260d26020908152604080832060d090925290912054929190613166612e63611d0e565b63ffffffff43169161317c825460e01c84611d49565b908115158080613208575b156131fa5750906020600492604051938480926318160ddd60e01b82525afa918215610a9a576000926131c4575b50612f2b9495612ed091611d6c565b90916020823d6020116131f2575b816131df60209383611a46565b81010312610f7757505190612f2b6131b5565b3d91506131d2565b929495505050612f8b575050565b50861515613187565b6001600160a01b03908116600081815260d2602090815260408083205460ce8352818420958716845294909152902080546001600160e01b0390931690819055909180158061334b575b613336575b61326a9082611d49565b9260405193613278856119de565b84526040516370a0823160e01b81526001600160a01b039091166004820181905293602082602481875afa918215610a9a576000926132f2575b50916a0c097ce7bc90715b34b9f160241b61309a6040937f2caecd17d02f56fa897705dcc740da2d237c373f70686f4e0d9bd3bf0400ea7a955190611d6c565b9150916020823d60201161332e575b8161330e60209383611a46565b8101031261021257905190916a0c097ce7bc90715b34b9f160241b6132b2565b3d9150613301565b506a0c097ce7bc90715b34b9f160241b613260565b506a0c097ce7bc90715b34b9f160241b82101561325b565b60ca54604051632aff3bff60e21b81526001600160a01b0380841660048301529093929160009185916024918391165afa928315610a9a5760009361359e575b5060005b835181101561345d576001600160a01b036133c28286611b75565b51168060005260d160205260406000205415809181613431575b81613406575b5081156133fe575b506133f7576001016133a7565b5050905090565b9050386133ea565b905060005260cf60205260408060002060009060018060a01b038616825260205220541515386133e2565b600081815260ce602090815260408083206001600160a01b0389168452909152902054151592506133dc565b5060c9546040516370a0823160e01b81523060048201529193506001600160a01b031690602081602481855afa908115610a9a5760009161356c575b508215159081613561575b506134af5750905090565b60405163a9059cbb60e01b602082019081526001600160a01b03949094166024820152604480820193909352918252600092839283906134f0606482611a46565b51925af13d1561355c573d61350481611cf3565b906135126040519283611a46565b8152600060203d92013e5b1561352757600090565b60405162461bcd60e51b815260206004820152600d60248201526c31b0b73a103a3930b739b332b960991b6044820152606490fd5b61351d565b9050821115386134a4565b90506020813d602011613596575b8161358760209383611a46565b81010312610212575138613499565b3d915061357a565b6135b49193503d806000833e610a8b8183611a46565b91386133a3565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff16156135f457565b6136a961360033613b99565b613691601161360f6000613cd9565b9260376040519485927f416363657373436f6e74726f6c3a206163636f756e742000000000000000000060208501526136518151809260208688019101613796565b83017001034b99036b4b9b9b4b733903937b6329607d1b83820152613680825180936020604885019101613796565b01010301601f198101835282611a46565b60405162461bcd60e51b8152918291600483016137b9565b0390fd5b600081815260656020908152604080832033845290915290205460ff16156136d25750565b6136a990613691601161360f6136e733613b99565b93613cd9565b9061373c91806000526065602052604060002060018060a01b03831660005260205260ff6040600020541661373f575b60009081526097602052604090206001600160a01b0390911690613df3565b50565b60008181526065602090815260408083206001600160a01b03861680855292528220805460ff19169055339183907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a461371d565b60005b8381106137a95750506000910152565b8181015183820152602001613799565b604091602082526137d98151809281602086015260208686019101613796565b601f01601f1916010190565b156137ed5750565b60405162461bcd60e51b81529081906136a990600483016137b9565b670de0b6b3a7640000810290808204670de0b6b3a76400001490151715611d5657611be7915190611ebc565b906000604051613844816119de565b526a0c097ce7bc90715b34b9f160241b8202918083046a0c097ce7bc90715b34b9f160241b1490151715611d565761387b91611ebc565b60405190613888826119de565b815290565b9061387b9160006040516138a0816119de565b5251905190611dba565b60ca54604051638e8f294b60e01b81526001600160a01b03808416600483018190529593949260609183916024918391165afa8015610a9a576138f491600091613aa65750611bea565b8015613a6b578115613a305783908160005260d060205280604060002054036139e6575b5060005260d1602052806040600020540361393257505050565b60405163aa5af0fd60e01b815291602083600481875afa928315610a9a576000936139ae575b50906139967f20af8e791cc98f74b2d7a391c80980ca8e5aebf3d4060bf581997b6acae2e537936020936040519161398f836119de565b8252612e33565b8360005260d1825280604060002055604051908152a2565b9250906020833d6020116139de575b816139ca60209383611a46565b810103126102125791519190613996613958565b3d91506139bd565b60207fdeafccd0c0b768b2529f7dcbbe58e155d6023059150b7490ed4535cc3744b92d91613a1386613135565b8360005260d0825280604060002055604051908152a28238613918565b60405162461bcd60e51b81526020600482015260136024820152721a5b9d9b185a5908189bdc9c9bddd4dc195959606a1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a59081cdd5c1c1b1e54dc195959606a1b6044820152606490fd5b612da8915060603d6060116118f7576118e78183611a46565b929190928115613b3957670de0b6b3a7640000613adc8284611d6c565b0491670de0b6b3a7640000850290858204670de0b6b3a76400001486151715611d5657613b0891611ebc565b91600090600095808211600014613b2a5750505090613b2691611d49565b9190565b9195509150611be79250611d49565b505060009190565b8115613b6d5781811115613b5f5790613b5991611d49565b90600090565b613b6891611d49565b600091565b91565b8054821015611b895760005260206000200190600090565b908151811015611b89570160200190565b600090613ba6602a611cf3565b91613bb46040519384611a46565b602a8352613bc2602a611cf3565b6020840190601f1901368237835115613cc55760309053825160011015613cb1576078602184015350602960005b60018211613c45575050613c015790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015613c9d576f181899199a1a9b1b9c1cb0b131b232b360811b901a613c748486613b88565b5360041c918015613c89576000190190613bf0565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b82526032600452602482fd5b600090613ce66042611cf3565b91613cf46040519384611a46565b60428352613d026042611cf3565b6020840190601f1901368237835115613cc55760309053825160011015613cb1576078602184015350604160005b60018211613d41575050613c015790565b9091600f81166010811015613c9d576f181899199a1a9b1b9c1cb0b131b232b360811b901a613d708486613b88565b5360041c918015613c89576000190190613d30565b6001810190826000528160205260406000205415600014612960578054680100000000000000008110156119f957613dde613dc7826001879401855584613b70565b819391549060031b91821b91600019901b19161790565b90555491600052602052604060002055600190565b9060018201918160005282602052604060002054801515600014613ebd576000198101818111611d56578254600019810191908211611d5657808203613e86575b50505080548015613e70576000190190613e4e8282613b70565b8154906000199060031b1b191690555560005260205260006040812055600190565b634e487b7160e01b600052603160045260246000fd5b613ea6613e96613dc79386613b70565b90549060031b1c92839286613b70565b905560005283602052604060002055388080613e34565b5050505060009056fea264697066735822122012db8b6ce2044f7cf73395f73ffbcb2018b062cbd63fdabf3bd4e6b9369c799f64736f6c634300081a0033";
|
|
18
18
|
static readonly abi: readonly [{
|
|
19
19
|
readonly inputs: readonly [];
|
|
20
20
|
readonly stateMutability: "nonpayable";
|
|
@@ -1543,7 +1543,7 @@ const _abi = [
|
|
|
1543
1543
|
type: "function",
|
|
1544
1544
|
},
|
|
1545
1545
|
];
|
|
1546
|
-
const _bytecode = "0x6080806040523460bd576000549060ff8260081c16606b575060ff808216106031575b604051613efc90816100c38239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386022565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe6101c080604052600436101561001457600080fd5b60003560e01c90816301ffc9a7146119715750806306fb2592146116ea578063082bc0ab146116b4578063109d0af81461168b578063248a9ca31461165e57806327efe3cb146115a85780632f2ff15d146114c857806336568abe14611436578063485cc955146112115780634f54b3c0146111d2578063598ee1cb146111215780635a2e013314610b615780635f87769b14610b235780635fe3b56714610afa57806365658c3e14610aa657806369063a5614610a1d5780636aa875b5146109e35780636b79c38d14610991578063741b252514610970578063759c082a146108595780638bad38dd146107ec5780638c57804e1461079a5780639010d07c1461075357806391d1485414610706578063986ab838146106cc578063a217fddf146106b0578063a7f0e23114610687578063a8b4394814610555578063a9e40a4214610519578063b21be7fd146104c8578063bea6b8b81461048e578063ca0af0431461043d578063ca15c87314610411578063cc7ebdc4146103d7578063d29424f214610395578063d547741f14610350578063d5e5cec514610298578063eac1fed014610277578063f47dbe02146102175763f4a433c0146101d857600080fd5b34610212576020366003190112610212576001600160a01b036101f9611a7e565b1660005260d16020526020604060002054604051908152f35b600080fd5b3461021257606036600319011261021257610230611a7e565b610238611a94565b906020366043190112610212576102759160405191610256836119de565b604435835261027060018060a01b0360ca54163314611c2a565b612fb4565b005b34610212576000366003190112610212576020604051655af3107a40008152f35b34610212576020366003190112610212576102b1611a7e565b6102c660018060a01b0360ca54163314611c2a565b6001600160a01b0316600081815260d260205260409020546001600160e01b03166a0c097ce7bc90715b34b9f160241b1461033b575b600081815260d260205260409020546001600160e01b03166a0c097ce7bc90715b34b9f160241b1461032a57005b600090815260d36020526040812055005b8060005260d2602052600060408120556102fc565b346102125760403660031901126102125761027560043561036f611a94565b9061039061038b82600052606560205260016040600020015490565b6136ad565b6136ed565b34610212576040366003190112610212576103ae611a7e565b602435906001600160401b038211610212576103d1610275923690600401611aaa565b90612c07565b34610212576020366003190112610212576001600160a01b036103f8611a7e565b1660005260cb6020526020604060002054604051908152f35b346102125760203660031901126102125760043560005260976020526020604060002054604051908152f35b3461021257604036600319011261021257610456611a7e565b61045e611a94565b6001600160a01b03918216600090815260cf60209081526040808320949093168252928352819020549051908152f35b34610212576020366003190112610212576001600160a01b036104af611a7e565b1660005260cd6020526020604060002054604051908152f35b34610212576040366003190112610212576104e1611a7e565b6104e9611a94565b6001600160a01b03918216600090815260ce60209081526040808320949093168252928352819020549051908152f35b3461021257608036600319011261021257602061054d610537611a7e565b61053f611a94565b906064359160443591611edc565b604051908152f35b34610212576060366003190112610212576004356001600160401b03811161021257610585903690600401611aaa565b6024356001600160401b038111610212576105a4903690600401611b18565b6044356001600160401b038111610212576105c3903690600401611b18565b916105cc6135bb565b805191805183148061067d575b156106265760005b8381106105ea57005b6001906106206001600160a01b036106028387611b75565b511661060e8386611b75565b51610619848a611b75565b51916138aa565b016105e1565b60405162461bcd60e51b815260206004820152602960248201527f436f6d7074726f6c6c65723a3a5f736574436f6d7053706565647320696e76616044820152681b1a59081a5b9c1d5d60ba1b6064820152608490fd5b50835183146105d9565b346102125760003660031901126102125760206040516a0c097ce7bc90715b34b9f160241b8152f35b3461021257600036600319011261021257602060405160008152f35b34610212576020366003190112610212576001600160a01b036106ed611a7e565b1660005260cc6020526020604060002054604051908152f35b346102125760403660031901126102125761071f611a94565b600435600052606560205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461021257604036600319011261021257600435600052609760205260206107816024356040600020613b70565b905460405160039290921b1c6001600160a01b03168152f35b34610212576020366003190112610212576001600160a01b036107bb611a7e565b16600090815260d360209081526040918290205482516001600160e01b038216815260e09190911c91810191909152f35b34610212576020366003190112610212576004356001600160a01b038116908190036102125760207f51e0228fe901c430722ddefd46e1d63fd4127597ef3ae7c79ae73d2de14fbf389161083e6135bb565b60ca80546001600160a01b03191682179055604051908152a1005b3461021257604036600319011261021257610872611a7e565b60243563ffffffff81168103610212576102759161089b60018060a01b0360ca54163314611c2a565b6001600160a01b0316600090815260d26020908152604080832060d390925290912081546109079184916001600160e01b03161561094d575b80546001600160e01b03161561092a5780546001600160e01b031660e09290921b6001600160e01b031916919091179055565b80546001600160e01b031660e09290921b6001600160e01b031916919091179055565b80546001600160e01b0319166a0c097ce7bc90715b34b9f160241b178155610907565b83546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1784556108d4565b346102125760203660031901126102125761027561098c611a7e565b611dc7565b34610212576020366003190112610212576001600160a01b036109b2611a7e565b16600090815260d260209081526040918290205482516001600160e01b038216815260e09190911c91810191909152f35b34610212576020366003190112610212576001600160a01b03610a04611a7e565b1660005260d06020526020604060002054604051908152f35b34610212576020366003190112610212576004610a38611a7e565b60ca5460405163b0772d0b60e01b81529260009184919082906001600160a01b03165afa908115610a9a5761027592600092610a75575b50612c07565b610a939192503d806000833e610a8b8183611a46565b810190611c69565b9083610a6f565b6040513d6000823e3d90fd5b3461021257604036600319011261021257610abf611a7e565b60203660231901126102125760405161027591610adb826119de565b6024358252610af560018060a01b0360ca54163314611c2a565b612e33565b346102125760003660031901126102125760ca546040516001600160a01b039091168152602090f35b3461021257606036600319011261021257610275610b3f611a7e565b610b5460018060a01b0360ca54163314611c2a565b60443590602435906138aa565b34610212576020366003190112610212576004610b7c611a7e565b60ca5460405163b0772d0b60e01b81529260009184919082906001600160a01b03165afa918215610a9a57600092611104575b506001600160a01b0316600081815260cb60205260408120544363ffffffff811694936401000000009091109290915b84518210156110f9576001600160a01b03610bfa8387611b75565b51169060405163aa5af0fd60e01b8152602081600481865afa908115610a9a576000916110c8575b5060405190610c30826119de565b81528260005260d3602052604060002060405190610c4d82611a0f565b546001600160e01b038116825260e01c6020808301918252600086815260d190915260409020549190610c87610c81611d0e565b8a6137e5565b610c9863ffffffff8251168c611d49565b908b82151580806110bf575b156110a35750506040516308f7a6e360e31b8152916020836004818b5afa948515610a9a57868e94600097611063575b50610d239291610cea610cf092610d7e99613809565b92611d6c565b600091908115610fb057610d049250613835565b8451604051906001600160e01b0316610d1c826119de565b815261388d565b51610d3b610d2f611d7f565b600160e01b83106137e5565b6001600160e01b03168352525b51600085815260cf602090815260408083208a8452909152902054906001600160e01b0316811580610f98575b610f8257611d49565b9060405191610d8c836119de565b82526040516395dd919360e01b815260048101879052602081602481885afa908115610a9a57600091611030575b50610deb9392610ddc6a0c097ce7bc90715b34b9f160241b93610de493613809565b905190611d6c565b0490611dba565b908060005260d2602052604060002060405190610e0782611a0f565b5460018060e01b0381168252602082019060e01c81528260005260d060205260406000205490610e3e63ffffffff8251168b611d49565b8a8115158080611027575b156110045750506040516318160ddd60e01b815292602084600481895afa918215610a9a578c94600093610fc6575b5092610e926024979693610cf060209794610edc97611d6c565b51610e9e610d2f611d7f565b6001600160e01b03168352525b51600084815260ce845260408082208a83528552902054906001600160e01b0316811580610f9857610f8257611d49565b9160405192610eea846119de565b8352604051938480926370a0823160e01b82528960048301525afa918215610a9a57600092610f3e575b50916a0c097ce7bc90715b34b9f160241b610de4610f36936001955190611d6c565b910190610bdf565b90916020823d8211610f7a575b81610f5860209383611a46565b81010312610f77575051906a0c097ce7bc90715b34b9f160241b610f14565b80fd5b3d9150610f4b565b6a0c097ce7bc90715b34b9f160241b9150611d49565b506a0c097ce7bc90715b34b9f160241b811015610d75565b505060405190610fbf826119de565b8152610d04565b9192909394506020823d8211610ffc575b81610fe460209383611a46565b81010312610f775750518b9392909190610e92610e78565b3d9150610fd7565b6020945060249695925092610edc9361101f575b5050610eab565b528a8c611018565b50841515610e49565b906020823d821161105b575b8161104960209383611a46565b81010312610f77575051610deb610dba565b3d915061103c565b929450509193946020823d821161109b575b8161108260209383611a46565b81010312610f7757505193928c92909186610d23610cd4565b3d9150611075565b909250610d7e94506110b7575b5050610d48565b52898b6110b0565b50851515610ca4565b906020823d82116110f1575b816110e160209383611a46565b81010312610f7757505188610c22565b3d91506110d4565b602090604051908152f35b61111a9192503d806000833e610a8b8183611a46565b9082610baf565b346102125760403660031901126102125761113a611a7e565b7f386537fa92edc3319af95f1f904dcf1900021e4f3f4e08169a577a09076e66b36020602435926111696135bb565b61117281611dc7565b836111b3576001600160a01b038116600090815260cd835260408120555b6001600160a01b0316600081815260cc83526040908190208590555193845292a2005b6001600160a01b038116600090815260cd835260409020439055611190565b34610212576040366003190112610212576102756111ee611a7e565b6111f6611a94565b9061120c60018060a01b0360ca54163314611c2a565b613211565b346102125760403660031901126102125761122a611a7e565b611232611a94565b906000549060ff8260081c161592838094611429575b8015611412575b156113b65760ff1983166001176000556112f792846113a4575b5060c980546001600160a01b0319166001600160a01b03928316179055811660009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff1615611336575b6000805260976020526001600160a01b03167f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c7613d85565b506112fe57005b61ff0019600054166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b6001600160a01b03811660008181527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a46112bf565b61ffff19166101011760005584611269565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561124f5750600160ff84161461124f565b50600160ff841610611248565b346102125760403660031901126102125761144f611a94565b336001600160a01b0382160361146b57610275906004356136ed565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b34610212576040366003190112610212576102756004356114e7611a94565b9061150361038b82600052606560205260016040600020015490565b806000526065602052604060002060018060a01b03831660005260205260ff604060002054161561154e575b60009081526097602052604090206001600160a01b0390911690613d85565b60008181526065602090815260408083206001600160a01b03861680855292528220805460ff19166001179055339183907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a461152f565b34610212576040366003190112610212576115c1611a7e565b6024356115cc6135bb565b6115d68183613363565b61161957604080516001600160a01b0393909316835260208301919091527f98b2f82a3a07f223a0be64b3d0f47711c64dccd1feafb94aa28156b38cd9695c91a1005b60405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420636f6d7020666f72206772616e7400000000006044820152606490fd5b3461021257602036600319011261021257602061054d600435600052606560205260016040600020015490565b346102125760003660031901126102125760c9546040516001600160a01b039091168152602090f35b34610212576020366003190112610212576102756116d0611a7e565b6116e560018060a01b0360ca54163314611c2a565b613135565b34610212576080366003190112610212576004356001600160401b0381116102125761171a903690600401611aaa565b6024356001600160401b03811161021257611739903690600401611aaa565b6044359182151583036102125760643580151581036102125760005b83518110156118fe576001600160a01b036117708286611b75565b51166024606060018060a01b0360ca541660405192838092638e8f294b60e01b82528660048301525afa908115610a9a5787916117b5916000916118ce575b50611bea565b611816575b826117c9575b50600101611755565b919490936117d683613135565b60005b8451811015611808576001906118026001600160a01b036117fa8389611b75565b511686613211565b016117d9565b5093600191959250906117c0565b90939491926040519263aa5af0fd60e01b8452602084600481865afa938415610a9a5760009461189b575b506040519361184f856119de565b845261185b8484612e33565b60005b825181101561188e57600190611888866001600160a01b036118808488611b75565b511687612fb4565b0161185e565b50959490939250906117ba565b90936020823d82116118c6575b816118b560209383611a46565b81010312610f775750519287611841565b3d91506118a8565b6118ef915060603d81116118f7575b6118e78183611a46565b810190611bba565b5050896117af565b503d6118dd565b8260005b81518110156102755760019061194b6001600160a01b036119238386611b75565b5116838060a01b036119358487611b75565b511660005260cb60205260406000205490613363565b828060a01b0361195b8386611b75565b511660005260cb60205260406000205501611902565b34610212576020366003190112610212576004359063ffffffff60e01b821680920361021257602091635a05180f60e01b81149081156119b3575b5015158152f35b637965db0b60e01b8114915081156119cd575b50836119ac565b6301ffc9a760e01b149050836119c6565b602081019081106001600160401b038211176119f957604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176119f957604052565b61014081019081106001600160401b038211176119f957604052565b90601f801991011681019081106001600160401b038211176119f957604052565b6001600160401b0381116119f95760051b60200190565b600435906001600160a01b038216820361021257565b602435906001600160a01b038216820361021257565b9080601f8301121561021257813590611ac282611a67565b92611ad06040519485611a46565b82845260208085019360051b82010191821161021257602001915b818310611af85750505090565b82356001600160a01b038116810361021257815260209283019201611aeb565b9080601f83011215610212578135611b2f81611a67565b92611b3d6040519485611a46565b81845260208085019260051b82010192831161021257602001905b828210611b655750505090565b8135815260209182019101611b58565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b5190811515820361021257565b519060ff8216820361021257565b9081606091031261021257611bce81611b9f565b91611be76040611be060208501611bac565b9301611b9f565b90565b15611bf157565b60405162461bcd60e51b81526020600482015260116024820152701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6044820152606490fd5b15611c3157565b60405162461bcd60e51b815260206004820152601060248201526f37b7363c9031b7b6b83a3937b63632b960811b6044820152606490fd5b602081830312610212578051906001600160401b03821161021257019080601f8301121561021257815190611c9d82611a67565b92611cab6040519485611a46565b82845260208085019360051b82010191821161021257602001915b818310611cd35750505090565b82516001600160a01b038116810361021257815260209283019201611cc6565b6001600160401b0381116119f957601f01601f191660200190565b60405190611d1d604083611a46565b601c82527f626c6f636b206e756d62657220657863656564732033322062697473000000006020830152565b91908203918211611d5657565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715611d5657565b60405190611d8e604083611a46565b601a82527f6e657720696e64657820657863656564732032323420626974730000000000006020830152565b91908201809211611d5657565b6001600160a01b0316600081815260cc602090815260408083205460cd90925290912054611df59043611d49565b80151580611e48575b611e0757505050565b611e2891611e1491611d6c565b8260005260cb602052604060002054611dba565b8160005260cb60205260406000205560005260cd60205243604060002055565b50811515611dfe565b519061ffff8216820361021257565b519063ffffffff8216820361021257565b60405190611e7e82611a2a565b6000610120838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152565b8115611ec6570490565b634e487b7160e01b600052601260045260246000fd5b9392936101a0526101605260c05260018060a01b0360ca54166101005260405163db0846cb60e01b8152602081600481610100515afa8015610a9a57600061018052612bc4575b5060405163053e0d5f60e51b815260a081600481610100515afa908115610a9a57600091612b07575b5060ff6080600192015116019160ff8311611d5657611f80611f7060ff8516611a67565b6040516101405261014051611a46565b60ff83166101405152601f19611f9860ff8516611a67565b0160005b818110612aed575050610160516001600160a01b031615159283612a79575b6000610120819052608081905260a052611fd3611e71565b604051632aff3bff60e21b81526101a0516001600160a01b031660048201526101205161010051929592829060249082905afa8015612255576101205160e052612a5a575b50610120515b60e051518110156125a75760e0516001600160a01b0390612040908390611b75565b51169061012051506101205150604051638e8f294b60e01b8152826004820152606081602481610100515afa908115612255576101205191612586575b5060ff61208f81831661014051611b75565b51511615612343575b6040516361bfb47160e11b81526101a0516001600160a01b0316600482015290608082602481875afa8015612255576101205194859384928391906122f9575b50610160516001600160a01b0316821415806122f1575b806122e9575b6122db57604051946312bdd04160e31b8652826004870152602086602481610100515afa9586156122555761012051966122a0575b50670de0b6b3a76400006121598161215181958261214b612161978d611d6c565b04611d6c565b04998a611d6c565b049386611d6c565b6101605191900494906001600160a01b03168214612263575b50604051637f4e225760e11b81529550602090869060049082905afa8015612255576101205190612215575b60019550156121ee576121cf60ff836040936121d960206121cf856121e5991661014051611b75565b5101918251611dba565b90521661014051611b75565b90525b0161201e565b6121cf60ff836080936121d960606121cf8561220e991661014051611b75565b90526121e8565b506020853d821161224d575b8161222e60209383611a46565b8101031261224657612241600195611b9f565b6121a6565b6101205180fd5b3d9150612221565b6040513d61012051823e3d90fd5b91909395600190151715612286579015600117156122865760049492602061217a565b634e487b7160e01b61012051526011600452602461012051fd5b9095506020813d82116122d3575b816122bb60209383611a46565b81010312612246575194670de0b6b3a764000061212a565b3d91506122ae565b5050505050600191506121e8565b5082156120f5565b5086156120ef565b9450509450506080823d821161233b575b8161231760809383611a46565b810103126122465781516020830151604084015160609094015191959091386120d8565b3d915061230a565b604051631af1431b60e31b815260ff8216600482015260c081602481610100515afa9081156122555761012051916124be575b5060ff8151169061ffff60208201511680655af3107a4000810204655af3107a400014811517156122865761ffff6040830151169081655af3107a4000810204655af3107a400014821517156122865761ffff6060840151169283655af3107a4000810204655af3107a400014841517156122865761ffff6080820151169081655af3107a4000810204655af3107a400014821517156122865760a061ffff910151169283655af3107a4000810204655af3107a4000148415171561228657655af3107a400094858094928180946040519a6124518c611a2a565b8b526101205160208c01526101205160408c01526101205160608c01526101205160808c01520260a08a01520260c08801520260e086015202610100840152026101208201526124a760ff831661014051611b75565b526124b860ff821661014051611b75565b50612098565b905060c0813d821161257e575b816124d860c09383611a46565b81010312612246576040519060c082016001600160401b03811183821017612564576125599160a09160405261250d81611bac565b845261251b60208201611e51565b602085015261252c60408201611e51565b604085015261253d60608201611e51565b606085015261254e60808201611e51565b608085015201611e51565b60a082015238612376565b634e487b7160e01b61012051526041600452602461012051fd5b3d91506124cb565b61259e915060603d81116118f7576118e78183611a46565b5090503861207d565b509091929360405194638e8f294b60e01b865260018060a01b0361016051166004870152606086602481610100515afa958615612255576101205196612a36575b50610120515b60ff811660ff86168110156128075760ff61260c8261014051611b75565b515116156127fe576126219061014051611b75565b516080810151806127db575b506040810151806127b8575b50608081015180612795575b50604081015180612772575b50602081016126668151606084015190611dba565b151580612757575b6127135760ff82511660ff8a161460001461269b5750915060ff905b1660ff8114611d56576001016125ee565b6080826126ec6126cf670de0b6b3a76400006126c561270b9661010060ff9a990151905190611d6c565b0461012051611dba565b670de0b6b3a7640000610de4610120850151606086015190611d6c565b610120526126ff60408201518351611dba565b8252015160a051611dba565b60a05261268a565b8160ff60a4935116915190606081015160806040830151920151926040519463f523ae3d60e01b865260048601526024850152604484015260648301526084820152fd5b5061276b6040830151608084015190611dba565b151561266e565b612788606083019182519060e085015191613abf565b6040840152905238612651565b6127ab606083019182519060e085015191613abf565b6080840152905238612645565b6127ce602083019182519060a085015191613abf565b6040840152905238612639565b6127f1602083019182519060c085015191613abf565b608084015290523861262d565b5060ff9061268a565b505092509290935061289561288a61282460805161012051613b41565b9081608052806101205261018051612a1d575b50604085019061284b825161012051613b41565b8352806101205261018051612a00575b50806129de575b506080516129bc575b61018051612968575b61288260a051608051611dba565b905190611dba565b608084015190611dba565b61296057612913670de0b6b3a7640000928392611be79560001461292957836128ce6128f892610180511561291e575b61012051611d6c565b0484806128f060c08601516128eb60c05191602089015190611d6c565b611d6c565b040490611dba565b610120525b6128eb60e0820151606060c05193015190611d6c565b040461012051611dba565b6000610120526128c5565b8361293a6129579261012051611d6c565b0484806128f060a08601516128eb60c05191602089015190611d6c565b610120526128fd565b505050600090565b60a05161299a575b60a051156128745760608501805161012087015160a05161299092613abf565b60a0529052612874565b60208501805161010087015160a0516129b292613abf565b60a0529052612970565b6060850180516101208701516080516129d492613abf565b608052905261286b565b6129f5602087019182519061010089015191613abf565b608052905238612862565b612a106080880191825190613b41565b909152610120523861285b565b60a051612a2991613b41565b60a0526101205238612837565b612a5091965060603d6060116118f7576118e78183611a46565b50905094386125e8565b612a70903d8061012051833e610a8b8183611a46565b60e05238612018565b9250604051637f4e225760e11b815260208160048160018060a01b0361016051165afa908115610a9a57600091612ab3575b501592611fbb565b90506020813d602011612ae5575b81612ace60209383611a46565b8101031261021257612adf90611b9f565b38612aab565b3d9150612ac1565b602090612af8611e71565b82826101405101015201611f9c565b60a0813d60a011612bbc575b81612b2060a09383611a46565b81010312612bb8576040519160a08301908382106001600160401b03831117612ba45750600192612b98608060ff948194604052612b5d81611e51565b8452612b6b60208201611e60565b6020850152612b7c60408201611e60565b6040850152612b8d60608201611e60565b606085015201611bac565b82820152925050611f4c565b634e487b7160e01b81526041600452602490fd5b5080fd5b3d9150612b13565b6020813d602011612bff575b81612bdd60209383611a46565b81010312612bf857612bee90611b9f565b6101805238611f23565b6101805180fd5b3d9150612bd0565b919091604092835191612c1a8584611a46565b600183526020830190601f198601368337835115611b89576001600160a01b0316905291926000925b8051841015612dbb576001600160a01b03612c5e8583611b75565b5116906024606060018060a01b0360ca5416855192838092638e8f294b60e01b82528760048301525afa908115612db05790612ca191600091612d905750611bea565b825163aa5af0fd60e01b815292602084600481865afa938415612d8557600094612d52575b50805193612cd3856119de565b8452612cdf8484612e33565b60005b8551811015612d0a57600190612d04866001600160a01b03611880848b611b75565b01612ce2565b5091925094612d1883613135565b60005b8451811015612d4257600190612d3c6001600160a01b036117fa8389611b75565b01612d1b565b5094600190940193909150612c43565b90936020823d8211612d7d575b81612d6c60209383611a46565b81010312610f775750519238612cc6565b3d9150612d5f565b50513d6000823e3d90fd5b612da8915060603d81116118f7576118e78183611a46565b5050386117af565b84513d6000823e3d90fd5b50915060005b8151811015612e2e57600190612e096001600160a01b03612de28386611b75565b5116838060a01b03612df48487611b75565b511660005260cb602052856000205490613363565b828060a01b03612e198386611b75565b511660005260cb602052846000205501612dc1565b505050565b6001600160a01b0316600081815260d36020908152604080832060d1909252909120549291612e70612e63611d0e565b64010000000043106137e5565b63ffffffff431692612e86835460e01c85611d49565b918215158080612fab575b15612f7d57506020600491604051928380926308f7a6e360e31b82525afa908115610a9a57600091612f47575b5094610cea612ed092612f2b97613809565b8115612f2d57612efb91612ee391613835565b8254604051906001600160e01b0316610d1c826119de565b51612f07610d2f611d7f565b60e09290921b6001600160e01b0319166001600160e01b0392909216919091179055565b565b5050612efb604051612f3e816119de565b60008152612ee3565b9590506020863d602011612f75575b81612f6360209383611a46565b81010312610212579451610cea612ebe565b3d9150612f56565b939550505050612f8b575050565b81546001600160e01b031660e09190911b6001600160e01b031916179055565b50861515612e91565b6001600160a01b03908116600081815260d3602090815260408083205460cf8352818420958716845294909152902080546001600160e01b0390931690819055929390929180158061311d575b613108575b6130109083611d49565b906040519161301e836119de565b82526040516395dd919360e01b81526001600160a01b039095166004860181905294602081602481885afa908115610a9a576000916130ce575b5061309a604093610ddc7f1fc3ecc087d8d2d15e23d0032af5a47059c3892d003d8e139fdcb6bb327c99a696946a0c097ce7bc90715b34b9f160241b94613809565b04908560005260cb6020526130b3828460002054611dba565b8660005260cb602052836000205582519182526020820152a3565b90506020939193813d602011613100575b816130ec60209383611a46565b81010312610212575190929061309a613058565b3d91506130df565b506a0c097ce7bc90715b34b9f160241b613006565b506a0c097ce7bc90715b34b9f160241b831015613001565b6001600160a01b0316600081815260d26020908152604080832060d090925290912054929190613166612e63611d0e565b63ffffffff43169161317c825460e01c84611d49565b908115158080613208575b156131fa5750906020600492604051938480926318160ddd60e01b82525afa918215610a9a576000926131c4575b50612f2b9495612ed091611d6c565b90916020823d6020116131f2575b816131df60209383611a46565b81010312610f7757505190612f2b6131b5565b3d91506131d2565b929495505050612f8b575050565b50861515613187565b6001600160a01b03908116600081815260d2602090815260408083205460ce8352818420958716845294909152902080546001600160e01b0390931690819055909180158061334b575b613336575b61326a9082611d49565b9260405193613278856119de565b84526040516370a0823160e01b81526001600160a01b039091166004820181905293602082602481875afa918215610a9a576000926132f2575b50916a0c097ce7bc90715b34b9f160241b61309a6040937f2caecd17d02f56fa897705dcc740da2d237c373f70686f4e0d9bd3bf0400ea7a955190611d6c565b9150916020823d60201161332e575b8161330e60209383611a46565b8101031261021257905190916a0c097ce7bc90715b34b9f160241b6132b2565b3d9150613301565b506a0c097ce7bc90715b34b9f160241b613260565b506a0c097ce7bc90715b34b9f160241b82101561325b565b60ca54604051632aff3bff60e21b81526001600160a01b0380841660048301529093929160009185916024918391165afa928315610a9a5760009361359e575b5060005b835181101561345d576001600160a01b036133c28286611b75565b51168060005260d160205260406000205415809181613431575b81613406575b5081156133fe575b506133f7576001016133a7565b5050905090565b9050386133ea565b905060005260cf60205260408060002060009060018060a01b038616825260205220541515386133e2565b600081815260ce602090815260408083206001600160a01b0389168452909152902054151592506133dc565b5060c9546040516370a0823160e01b81523060048201529193506001600160a01b031690602081602481855afa908115610a9a5760009161356c575b508215159081613561575b506134af5750905090565b60405163a9059cbb60e01b602082019081526001600160a01b03949094166024820152604480820193909352918252600092839283906134f0606482611a46565b51925af13d1561355c573d61350481611cf3565b906135126040519283611a46565b8152600060203d92013e5b1561352757600090565b60405162461bcd60e51b815260206004820152600d60248201526c31b0b73a103a3930b739b332b960991b6044820152606490fd5b61351d565b9050821115386134a4565b90506020813d602011613596575b8161358760209383611a46565b81010312610212575138613499565b3d915061357a565b6135b49193503d806000833e610a8b8183611a46565b91386133a3565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff16156135f457565b6136a961360033613b99565b613691601161360f6000613cd9565b9260376040519485927f416363657373436f6e74726f6c3a206163636f756e742000000000000000000060208501526136518151809260208688019101613796565b83017001034b99036b4b9b9b4b733903937b6329607d1b83820152613680825180936020604885019101613796565b01010301601f198101835282611a46565b60405162461bcd60e51b8152918291600483016137b9565b0390fd5b600081815260656020908152604080832033845290915290205460ff16156136d25750565b6136a990613691601161360f6136e733613b99565b93613cd9565b9061373c91806000526065602052604060002060018060a01b03831660005260205260ff6040600020541661373f575b60009081526097602052604090206001600160a01b0390911690613df3565b50565b60008181526065602090815260408083206001600160a01b03861680855292528220805460ff19169055339183907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a461371d565b60005b8381106137a95750506000910152565b8181015183820152602001613799565b604091602082526137d98151809281602086015260208686019101613796565b601f01601f1916010190565b156137ed5750565b60405162461bcd60e51b81529081906136a990600483016137b9565b670de0b6b3a7640000810290808204670de0b6b3a76400001490151715611d5657611be7915190611ebc565b906000604051613844816119de565b526a0c097ce7bc90715b34b9f160241b8202918083046a0c097ce7bc90715b34b9f160241b1490151715611d565761387b91611ebc565b60405190613888826119de565b815290565b9061387b9160006040516138a0816119de565b5251905190611dba565b60ca54604051638e8f294b60e01b81526001600160a01b03808416600483018190529593949260609183916024918391165afa8015610a9a576138f491600091613aa65750611bea565b8015613a6b578115613a305783908160005260d060205280604060002054036139e6575b5060005260d1602052806040600020540361393257505050565b60405163aa5af0fd60e01b815291602083600481875afa928315610a9a576000936139ae575b50906139967f20af8e791cc98f74b2d7a391c80980ca8e5aebf3d4060bf581997b6acae2e537936020936040519161398f836119de565b8252612e33565b8360005260d1825280604060002055604051908152a2565b9250906020833d6020116139de575b816139ca60209383611a46565b810103126102125791519190613996613958565b3d91506139bd565b60207fdeafccd0c0b768b2529f7dcbbe58e155d6023059150b7490ed4535cc3744b92d91613a1386613135565b8360005260d0825280604060002055604051908152a28238613918565b60405162461bcd60e51b81526020600482015260136024820152721a5b9d9b185a5908189bdc9c9bddd4dc195959606a1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a59081cdd5c1c1b1e54dc195959606a1b6044820152606490fd5b612da8915060603d6060116118f7576118e78183611a46565b929190928115613b3957670de0b6b3a7640000613adc8284611d6c565b0491670de0b6b3a7640000850290858204670de0b6b3a76400001486151715611d5657613b0891611ebc565b91600090600095808211600014613b2a5750505090613b2691611d49565b9190565b9195509150611be79250611d49565b505060009190565b8115613b6d5781811115613b5f5790613b5991611d49565b90600090565b613b6891611d49565b600091565b91565b8054821015611b895760005260206000200190600090565b908151811015611b89570160200190565b600090613ba6602a611cf3565b91613bb46040519384611a46565b602a8352613bc2602a611cf3565b6020840190601f1901368237835115613cc55760309053825160011015613cb1576078602184015350602960005b60018211613c45575050613c015790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015613c9d576f181899199a1a9b1b9c1cb0b131b232b360811b901a613c748486613b88565b5360041c918015613c89576000190190613bf0565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b82526032600452602482fd5b600090613ce66042611cf3565b91613cf46040519384611a46565b60428352613d026042611cf3565b6020840190601f1901368237835115613cc55760309053825160011015613cb1576078602184015350604160005b60018211613d41575050613c015790565b9091600f81166010811015613c9d576f181899199a1a9b1b9c1cb0b131b232b360811b901a613d708486613b88565b5360041c918015613c89576000190190613d30565b6001810190826000528160205260406000205415600014612960578054680100000000000000008110156119f957613dde613dc7826001879401855584613b70565b819391549060031b91821b91600019901b19161790565b90555491600052602052604060002055600190565b9060018201918160005282602052604060002054801515600014613ebd576000198101818111611d56578254600019810191908211611d5657808203613e86575b50505080548015613e70576000190190613e4e8282613b70565b8154906000199060031b1b191690555560005260205260006040812055600190565b634e487b7160e01b600052603160045260246000fd5b613ea6613e96613dc79386613b70565b90549060031b1c92839286613b70565b905560005283602052604060002055388080613e34565b5050505060009056fea2646970667358221220016e6e45fc7b01a851a3fe76435177332ef436c63c542537604cb4901332443364736f6c634300081a0033";
|
|
1546
|
+
const _bytecode = "0x6080806040523460bd576000549060ff8260081c16606b575060ff808216106031575b604051613efc90816100c38239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386022565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe6101c080604052600436101561001457600080fd5b60003560e01c90816301ffc9a7146119715750806306fb2592146116ea578063082bc0ab146116b4578063109d0af81461168b578063248a9ca31461165e57806327efe3cb146115a85780632f2ff15d146114c857806336568abe14611436578063485cc955146112115780634f54b3c0146111d2578063598ee1cb146111215780635a2e013314610b615780635f87769b14610b235780635fe3b56714610afa57806365658c3e14610aa657806369063a5614610a1d5780636aa875b5146109e35780636b79c38d14610991578063741b252514610970578063759c082a146108595780638bad38dd146107ec5780638c57804e1461079a5780639010d07c1461075357806391d1485414610706578063986ab838146106cc578063a217fddf146106b0578063a7f0e23114610687578063a8b4394814610555578063a9e40a4214610519578063b21be7fd146104c8578063bea6b8b81461048e578063ca0af0431461043d578063ca15c87314610411578063cc7ebdc4146103d7578063d29424f214610395578063d547741f14610350578063d5e5cec514610298578063eac1fed014610277578063f47dbe02146102175763f4a433c0146101d857600080fd5b34610212576020366003190112610212576001600160a01b036101f9611a7e565b1660005260d16020526020604060002054604051908152f35b600080fd5b3461021257606036600319011261021257610230611a7e565b610238611a94565b906020366043190112610212576102759160405191610256836119de565b604435835261027060018060a01b0360ca54163314611c2a565b612fb4565b005b34610212576000366003190112610212576020604051655af3107a40008152f35b34610212576020366003190112610212576102b1611a7e565b6102c660018060a01b0360ca54163314611c2a565b6001600160a01b0316600081815260d260205260409020546001600160e01b03166a0c097ce7bc90715b34b9f160241b1461033b575b600081815260d260205260409020546001600160e01b03166a0c097ce7bc90715b34b9f160241b1461032a57005b600090815260d36020526040812055005b8060005260d2602052600060408120556102fc565b346102125760403660031901126102125761027560043561036f611a94565b9061039061038b82600052606560205260016040600020015490565b6136ad565b6136ed565b34610212576040366003190112610212576103ae611a7e565b602435906001600160401b038211610212576103d1610275923690600401611aaa565b90612c07565b34610212576020366003190112610212576001600160a01b036103f8611a7e565b1660005260cb6020526020604060002054604051908152f35b346102125760203660031901126102125760043560005260976020526020604060002054604051908152f35b3461021257604036600319011261021257610456611a7e565b61045e611a94565b6001600160a01b03918216600090815260cf60209081526040808320949093168252928352819020549051908152f35b34610212576020366003190112610212576001600160a01b036104af611a7e565b1660005260cd6020526020604060002054604051908152f35b34610212576040366003190112610212576104e1611a7e565b6104e9611a94565b6001600160a01b03918216600090815260ce60209081526040808320949093168252928352819020549051908152f35b3461021257608036600319011261021257602061054d610537611a7e565b61053f611a94565b906064359160443591611edc565b604051908152f35b34610212576060366003190112610212576004356001600160401b03811161021257610585903690600401611aaa565b6024356001600160401b038111610212576105a4903690600401611b18565b6044356001600160401b038111610212576105c3903690600401611b18565b916105cc6135bb565b805191805183148061067d575b156106265760005b8381106105ea57005b6001906106206001600160a01b036106028387611b75565b511661060e8386611b75565b51610619848a611b75565b51916138aa565b016105e1565b60405162461bcd60e51b815260206004820152602960248201527f436f6d7074726f6c6c65723a3a5f736574436f6d7053706565647320696e76616044820152681b1a59081a5b9c1d5d60ba1b6064820152608490fd5b50835183146105d9565b346102125760003660031901126102125760206040516a0c097ce7bc90715b34b9f160241b8152f35b3461021257600036600319011261021257602060405160008152f35b34610212576020366003190112610212576001600160a01b036106ed611a7e565b1660005260cc6020526020604060002054604051908152f35b346102125760403660031901126102125761071f611a94565b600435600052606560205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461021257604036600319011261021257600435600052609760205260206107816024356040600020613b70565b905460405160039290921b1c6001600160a01b03168152f35b34610212576020366003190112610212576001600160a01b036107bb611a7e565b16600090815260d360209081526040918290205482516001600160e01b038216815260e09190911c91810191909152f35b34610212576020366003190112610212576004356001600160a01b038116908190036102125760207f51e0228fe901c430722ddefd46e1d63fd4127597ef3ae7c79ae73d2de14fbf389161083e6135bb565b60ca80546001600160a01b03191682179055604051908152a1005b3461021257604036600319011261021257610872611a7e565b60243563ffffffff81168103610212576102759161089b60018060a01b0360ca54163314611c2a565b6001600160a01b0316600090815260d26020908152604080832060d390925290912081546109079184916001600160e01b03161561094d575b80546001600160e01b03161561092a5780546001600160e01b031660e09290921b6001600160e01b031916919091179055565b80546001600160e01b031660e09290921b6001600160e01b031916919091179055565b80546001600160e01b0319166a0c097ce7bc90715b34b9f160241b178155610907565b83546001600160e01b0319166a0c097ce7bc90715b34b9f160241b1784556108d4565b346102125760203660031901126102125761027561098c611a7e565b611dc7565b34610212576020366003190112610212576001600160a01b036109b2611a7e565b16600090815260d260209081526040918290205482516001600160e01b038216815260e09190911c91810191909152f35b34610212576020366003190112610212576001600160a01b03610a04611a7e565b1660005260d06020526020604060002054604051908152f35b34610212576020366003190112610212576004610a38611a7e565b60ca5460405163b0772d0b60e01b81529260009184919082906001600160a01b03165afa908115610a9a5761027592600092610a75575b50612c07565b610a939192503d806000833e610a8b8183611a46565b810190611c69565b9083610a6f565b6040513d6000823e3d90fd5b3461021257604036600319011261021257610abf611a7e565b60203660231901126102125760405161027591610adb826119de565b6024358252610af560018060a01b0360ca54163314611c2a565b612e33565b346102125760003660031901126102125760ca546040516001600160a01b039091168152602090f35b3461021257606036600319011261021257610275610b3f611a7e565b610b5460018060a01b0360ca54163314611c2a565b60443590602435906138aa565b34610212576020366003190112610212576004610b7c611a7e565b60ca5460405163b0772d0b60e01b81529260009184919082906001600160a01b03165afa918215610a9a57600092611104575b506001600160a01b0316600081815260cb60205260408120544363ffffffff811694936401000000009091109290915b84518210156110f9576001600160a01b03610bfa8387611b75565b51169060405163aa5af0fd60e01b8152602081600481865afa908115610a9a576000916110c8575b5060405190610c30826119de565b81528260005260d3602052604060002060405190610c4d82611a0f565b546001600160e01b038116825260e01c6020808301918252600086815260d190915260409020549190610c87610c81611d0e565b8a6137e5565b610c9863ffffffff8251168c611d49565b908b82151580806110bf575b156110a35750506040516308f7a6e360e31b8152916020836004818b5afa948515610a9a57868e94600097611063575b50610d239291610cea610cf092610d7e99613809565b92611d6c565b600091908115610fb057610d049250613835565b8451604051906001600160e01b0316610d1c826119de565b815261388d565b51610d3b610d2f611d7f565b600160e01b83106137e5565b6001600160e01b03168352525b51600085815260cf602090815260408083208a8452909152902054906001600160e01b0316811580610f98575b610f8257611d49565b9060405191610d8c836119de565b82526040516395dd919360e01b815260048101879052602081602481885afa908115610a9a57600091611030575b50610deb9392610ddc6a0c097ce7bc90715b34b9f160241b93610de493613809565b905190611d6c565b0490611dba565b908060005260d2602052604060002060405190610e0782611a0f565b5460018060e01b0381168252602082019060e01c81528260005260d060205260406000205490610e3e63ffffffff8251168b611d49565b8a8115158080611027575b156110045750506040516318160ddd60e01b815292602084600481895afa918215610a9a578c94600093610fc6575b5092610e926024979693610cf060209794610edc97611d6c565b51610e9e610d2f611d7f565b6001600160e01b03168352525b51600084815260ce845260408082208a83528552902054906001600160e01b0316811580610f9857610f8257611d49565b9160405192610eea846119de565b8352604051938480926370a0823160e01b82528960048301525afa918215610a9a57600092610f3e575b50916a0c097ce7bc90715b34b9f160241b610de4610f36936001955190611d6c565b910190610bdf565b90916020823d8211610f7a575b81610f5860209383611a46565b81010312610f77575051906a0c097ce7bc90715b34b9f160241b610f14565b80fd5b3d9150610f4b565b6a0c097ce7bc90715b34b9f160241b9150611d49565b506a0c097ce7bc90715b34b9f160241b811015610d75565b505060405190610fbf826119de565b8152610d04565b9192909394506020823d8211610ffc575b81610fe460209383611a46565b81010312610f775750518b9392909190610e92610e78565b3d9150610fd7565b6020945060249695925092610edc9361101f575b5050610eab565b528a8c611018565b50841515610e49565b906020823d821161105b575b8161104960209383611a46565b81010312610f77575051610deb610dba565b3d915061103c565b929450509193946020823d821161109b575b8161108260209383611a46565b81010312610f7757505193928c92909186610d23610cd4565b3d9150611075565b909250610d7e94506110b7575b5050610d48565b52898b6110b0565b50851515610ca4565b906020823d82116110f1575b816110e160209383611a46565b81010312610f7757505188610c22565b3d91506110d4565b602090604051908152f35b61111a9192503d806000833e610a8b8183611a46565b9082610baf565b346102125760403660031901126102125761113a611a7e565b7f386537fa92edc3319af95f1f904dcf1900021e4f3f4e08169a577a09076e66b36020602435926111696135bb565b61117281611dc7565b836111b3576001600160a01b038116600090815260cd835260408120555b6001600160a01b0316600081815260cc83526040908190208590555193845292a2005b6001600160a01b038116600090815260cd835260409020439055611190565b34610212576040366003190112610212576102756111ee611a7e565b6111f6611a94565b9061120c60018060a01b0360ca54163314611c2a565b613211565b346102125760403660031901126102125761122a611a7e565b611232611a94565b906000549060ff8260081c161592838094611429575b8015611412575b156113b65760ff1983166001176000556112f792846113a4575b5060c980546001600160a01b0319166001600160a01b03928316179055811660009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff1615611336575b6000805260976020526001600160a01b03167f683723e34a772b6e4f2c919bba7fa32ed8ea11a8325f54da7db716e9d9dd98c7613d85565b506112fe57005b61ff0019600054166000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a1005b6001600160a01b03811660008181527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b60205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a46112bf565b61ffff19166101011760005584611269565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561124f5750600160ff84161461124f565b50600160ff841610611248565b346102125760403660031901126102125761144f611a94565b336001600160a01b0382160361146b57610275906004356136ed565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b34610212576040366003190112610212576102756004356114e7611a94565b9061150361038b82600052606560205260016040600020015490565b806000526065602052604060002060018060a01b03831660005260205260ff604060002054161561154e575b60009081526097602052604090206001600160a01b0390911690613d85565b60008181526065602090815260408083206001600160a01b03861680855292528220805460ff19166001179055339183907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a461152f565b34610212576040366003190112610212576115c1611a7e565b6024356115cc6135bb565b6115d68183613363565b61161957604080516001600160a01b0393909316835260208301919091527f98b2f82a3a07f223a0be64b3d0f47711c64dccd1feafb94aa28156b38cd9695c91a1005b60405162461bcd60e51b815260206004820152601b60248201527f696e73756666696369656e7420636f6d7020666f72206772616e7400000000006044820152606490fd5b3461021257602036600319011261021257602061054d600435600052606560205260016040600020015490565b346102125760003660031901126102125760c9546040516001600160a01b039091168152602090f35b34610212576020366003190112610212576102756116d0611a7e565b6116e560018060a01b0360ca54163314611c2a565b613135565b34610212576080366003190112610212576004356001600160401b0381116102125761171a903690600401611aaa565b6024356001600160401b03811161021257611739903690600401611aaa565b6044359182151583036102125760643580151581036102125760005b83518110156118fe576001600160a01b036117708286611b75565b51166024606060018060a01b0360ca541660405192838092638e8f294b60e01b82528660048301525afa908115610a9a5787916117b5916000916118ce575b50611bea565b611816575b826117c9575b50600101611755565b919490936117d683613135565b60005b8451811015611808576001906118026001600160a01b036117fa8389611b75565b511686613211565b016117d9565b5093600191959250906117c0565b90939491926040519263aa5af0fd60e01b8452602084600481865afa938415610a9a5760009461189b575b506040519361184f856119de565b845261185b8484612e33565b60005b825181101561188e57600190611888866001600160a01b036118808488611b75565b511687612fb4565b0161185e565b50959490939250906117ba565b90936020823d82116118c6575b816118b560209383611a46565b81010312610f775750519287611841565b3d91506118a8565b6118ef915060603d81116118f7575b6118e78183611a46565b810190611bba565b5050896117af565b503d6118dd565b8260005b81518110156102755760019061194b6001600160a01b036119238386611b75565b5116838060a01b036119358487611b75565b511660005260cb60205260406000205490613363565b828060a01b0361195b8386611b75565b511660005260cb60205260406000205501611902565b34610212576020366003190112610212576004359063ffffffff60e01b821680920361021257602091635a05180f60e01b81149081156119b3575b5015158152f35b637965db0b60e01b8114915081156119cd575b50836119ac565b6301ffc9a760e01b149050836119c6565b602081019081106001600160401b038211176119f957604052565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b038211176119f957604052565b61014081019081106001600160401b038211176119f957604052565b90601f801991011681019081106001600160401b038211176119f957604052565b6001600160401b0381116119f95760051b60200190565b600435906001600160a01b038216820361021257565b602435906001600160a01b038216820361021257565b9080601f8301121561021257813590611ac282611a67565b92611ad06040519485611a46565b82845260208085019360051b82010191821161021257602001915b818310611af85750505090565b82356001600160a01b038116810361021257815260209283019201611aeb565b9080601f83011215610212578135611b2f81611a67565b92611b3d6040519485611a46565b81845260208085019260051b82010192831161021257602001905b828210611b655750505090565b8135815260209182019101611b58565b8051821015611b895760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b5190811515820361021257565b519060ff8216820361021257565b9081606091031261021257611bce81611b9f565b91611be76040611be060208501611bac565b9301611b9f565b90565b15611bf157565b60405162461bcd60e51b81526020600482015260116024820152701b585c9ad95d081b9bdd081b1a5cdd1959607a1b6044820152606490fd5b15611c3157565b60405162461bcd60e51b815260206004820152601060248201526f37b7363c9031b7b6b83a3937b63632b960811b6044820152606490fd5b602081830312610212578051906001600160401b03821161021257019080601f8301121561021257815190611c9d82611a67565b92611cab6040519485611a46565b82845260208085019360051b82010191821161021257602001915b818310611cd35750505090565b82516001600160a01b038116810361021257815260209283019201611cc6565b6001600160401b0381116119f957601f01601f191660200190565b60405190611d1d604083611a46565b601c82527f626c6f636b206e756d62657220657863656564732033322062697473000000006020830152565b91908203918211611d5657565b634e487b7160e01b600052601160045260246000fd5b81810292918115918404141715611d5657565b60405190611d8e604083611a46565b601a82527f6e657720696e64657820657863656564732032323420626974730000000000006020830152565b91908201809211611d5657565b6001600160a01b0316600081815260cc602090815260408083205460cd90925290912054611df59043611d49565b80151580611e48575b611e0757505050565b611e2891611e1491611d6c565b8260005260cb602052604060002054611dba565b8160005260cb60205260406000205560005260cd60205243604060002055565b50811515611dfe565b519061ffff8216820361021257565b519063ffffffff8216820361021257565b60405190611e7e82611a2a565b6000610120838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201520152565b8115611ec6570490565b634e487b7160e01b600052601260045260246000fd5b9392936101a0526101605260c05260018060a01b0360ca54166101005260405163db0846cb60e01b8152602081600481610100515afa8015610a9a57600061018052612bc4575b5060405163053e0d5f60e51b815260a081600481610100515afa908115610a9a57600091612b07575b5060ff6080600192015116019160ff8311611d5657611f80611f7060ff8516611a67565b6040516101405261014051611a46565b60ff83166101405152601f19611f9860ff8516611a67565b0160005b818110612aed575050610160516001600160a01b031615159283612a79575b6000610120819052608081905260a052611fd3611e71565b604051632aff3bff60e21b81526101a0516001600160a01b031660048201526101205161010051929592829060249082905afa8015612255576101205160e052612a5a575b50610120515b60e051518110156125a75760e0516001600160a01b0390612040908390611b75565b51169061012051506101205150604051638e8f294b60e01b8152826004820152606081602481610100515afa908115612255576101205191612586575b5060ff61208f81831661014051611b75565b51511615612343575b6040516361bfb47160e11b81526101a0516001600160a01b0316600482015290608082602481875afa8015612255576101205194859384928391906122f9575b50610160516001600160a01b0316821415806122f1575b806122e9575b6122db57604051946312bdd04160e31b8652826004870152602086602481610100515afa9586156122555761012051966122a0575b50670de0b6b3a76400006121598161215181958261214b612161978d611d6c565b04611d6c565b04998a611d6c565b049386611d6c565b6101605191900494906001600160a01b03168214612263575b50604051637f4e225760e11b81529550602090869060049082905afa8015612255576101205190612215575b60019550156121ee576121cf60ff836040936121d960206121cf856121e5991661014051611b75565b5101918251611dba565b90521661014051611b75565b90525b0161201e565b6121cf60ff836080936121d960606121cf8561220e991661014051611b75565b90526121e8565b506020853d821161224d575b8161222e60209383611a46565b8101031261224657612241600195611b9f565b6121a6565b6101205180fd5b3d9150612221565b6040513d61012051823e3d90fd5b91909395600190151715612286579015600117156122865760049492602061217a565b634e487b7160e01b61012051526011600452602461012051fd5b9095506020813d82116122d3575b816122bb60209383611a46565b81010312612246575194670de0b6b3a764000061212a565b3d91506122ae565b5050505050600191506121e8565b5082156120f5565b5086156120ef565b9450509450506080823d821161233b575b8161231760809383611a46565b810103126122465781516020830151604084015160609094015191959091386120d8565b3d915061230a565b604051631af1431b60e31b815260ff8216600482015260c081602481610100515afa9081156122555761012051916124be575b5060ff8151169061ffff60208201511680655af3107a4000810204655af3107a400014811517156122865761ffff6040830151169081655af3107a4000810204655af3107a400014821517156122865761ffff6060840151169283655af3107a4000810204655af3107a400014841517156122865761ffff6080820151169081655af3107a4000810204655af3107a400014821517156122865760a061ffff910151169283655af3107a4000810204655af3107a4000148415171561228657655af3107a400094858094928180946040519a6124518c611a2a565b8b526101205160208c01526101205160408c01526101205160608c01526101205160808c01520260a08a01520260c08801520260e086015202610100840152026101208201526124a760ff831661014051611b75565b526124b860ff821661014051611b75565b50612098565b905060c0813d821161257e575b816124d860c09383611a46565b81010312612246576040519060c082016001600160401b03811183821017612564576125599160a09160405261250d81611bac565b845261251b60208201611e51565b602085015261252c60408201611e51565b604085015261253d60608201611e51565b606085015261254e60808201611e51565b608085015201611e51565b60a082015238612376565b634e487b7160e01b61012051526041600452602461012051fd5b3d91506124cb565b61259e915060603d81116118f7576118e78183611a46565b5090503861207d565b509091929360405194638e8f294b60e01b865260018060a01b0361016051166004870152606086602481610100515afa958615612255576101205196612a36575b50610120515b60ff811660ff86168110156128075760ff61260c8261014051611b75565b515116156127fe576126219061014051611b75565b516080810151806127db575b506040810151806127b8575b50608081015180612795575b50604081015180612772575b50602081016126668151606084015190611dba565b151580612757575b6127135760ff82511660ff8a161460001461269b5750915060ff905b1660ff8114611d56576001016125ee565b6080826126ec6126cf670de0b6b3a76400006126c561270b9661010060ff9a990151905190611d6c565b0461012051611dba565b670de0b6b3a7640000610de4610120850151606086015190611d6c565b610120526126ff60408201518351611dba565b8252015160a051611dba565b60a05261268a565b8160ff60a4935116915190606081015160806040830151920151926040519463f523ae3d60e01b865260048601526024850152604484015260648301526084820152fd5b5061276b6040830151608084015190611dba565b151561266e565b612788606083019182519060e085015191613abf565b6040840152905238612651565b6127ab606083019182519060e085015191613abf565b6080840152905238612645565b6127ce602083019182519060a085015191613abf565b6040840152905238612639565b6127f1602083019182519060c085015191613abf565b608084015290523861262d565b5060ff9061268a565b505092509290935061289561288a61282460805161012051613b41565b9081608052806101205261018051612a1d575b50604085019061284b825161012051613b41565b8352806101205261018051612a00575b50806129de575b506080516129bc575b61018051612968575b61288260a051608051611dba565b905190611dba565b608084015190611dba565b61296057612913670de0b6b3a7640000928392611be79560001461292957836128ce6128f892610180511561291e575b61012051611d6c565b0484806128f060c08601516128eb60c05191602089015190611d6c565b611d6c565b040490611dba565b610120525b6128eb60e0820151606060c05193015190611d6c565b040461012051611dba565b6000610120526128c5565b8361293a6129579261012051611d6c565b0484806128f060a08601516128eb60c05191602089015190611d6c565b610120526128fd565b505050600090565b60a05161299a575b60a051156128745760608501805161012087015160a05161299092613abf565b60a0529052612874565b60208501805161010087015160a0516129b292613abf565b60a0529052612970565b6060850180516101208701516080516129d492613abf565b608052905261286b565b6129f5602087019182519061010089015191613abf565b608052905238612862565b612a106080880191825190613b41565b909152610120523861285b565b60a051612a2991613b41565b60a0526101205238612837565b612a5091965060603d6060116118f7576118e78183611a46565b50905094386125e8565b612a70903d8061012051833e610a8b8183611a46565b60e05238612018565b9250604051637f4e225760e11b815260208160048160018060a01b0361016051165afa908115610a9a57600091612ab3575b501592611fbb565b90506020813d602011612ae5575b81612ace60209383611a46565b8101031261021257612adf90611b9f565b38612aab565b3d9150612ac1565b602090612af8611e71565b82826101405101015201611f9c565b60a0813d60a011612bbc575b81612b2060a09383611a46565b81010312612bb8576040519160a08301908382106001600160401b03831117612ba45750600192612b98608060ff948194604052612b5d81611e51565b8452612b6b60208201611e60565b6020850152612b7c60408201611e60565b6040850152612b8d60608201611e60565b606085015201611bac565b82820152925050611f4c565b634e487b7160e01b81526041600452602490fd5b5080fd5b3d9150612b13565b6020813d602011612bff575b81612bdd60209383611a46565b81010312612bf857612bee90611b9f565b6101805238611f23565b6101805180fd5b3d9150612bd0565b919091604092835191612c1a8584611a46565b600183526020830190601f198601368337835115611b89576001600160a01b0316905291926000925b8051841015612dbb576001600160a01b03612c5e8583611b75565b5116906024606060018060a01b0360ca5416855192838092638e8f294b60e01b82528760048301525afa908115612db05790612ca191600091612d905750611bea565b825163aa5af0fd60e01b815292602084600481865afa938415612d8557600094612d52575b50805193612cd3856119de565b8452612cdf8484612e33565b60005b8551811015612d0a57600190612d04866001600160a01b03611880848b611b75565b01612ce2565b5091925094612d1883613135565b60005b8451811015612d4257600190612d3c6001600160a01b036117fa8389611b75565b01612d1b565b5094600190940193909150612c43565b90936020823d8211612d7d575b81612d6c60209383611a46565b81010312610f775750519238612cc6565b3d9150612d5f565b50513d6000823e3d90fd5b612da8915060603d81116118f7576118e78183611a46565b5050386117af565b84513d6000823e3d90fd5b50915060005b8151811015612e2e57600190612e096001600160a01b03612de28386611b75565b5116838060a01b03612df48487611b75565b511660005260cb602052856000205490613363565b828060a01b03612e198386611b75565b511660005260cb602052846000205501612dc1565b505050565b6001600160a01b0316600081815260d36020908152604080832060d1909252909120549291612e70612e63611d0e565b64010000000043106137e5565b63ffffffff431692612e86835460e01c85611d49565b918215158080612fab575b15612f7d57506020600491604051928380926308f7a6e360e31b82525afa908115610a9a57600091612f47575b5094610cea612ed092612f2b97613809565b8115612f2d57612efb91612ee391613835565b8254604051906001600160e01b0316610d1c826119de565b51612f07610d2f611d7f565b60e09290921b6001600160e01b0319166001600160e01b0392909216919091179055565b565b5050612efb604051612f3e816119de565b60008152612ee3565b9590506020863d602011612f75575b81612f6360209383611a46565b81010312610212579451610cea612ebe565b3d9150612f56565b939550505050612f8b575050565b81546001600160e01b031660e09190911b6001600160e01b031916179055565b50861515612e91565b6001600160a01b03908116600081815260d3602090815260408083205460cf8352818420958716845294909152902080546001600160e01b0390931690819055929390929180158061311d575b613108575b6130109083611d49565b906040519161301e836119de565b82526040516395dd919360e01b81526001600160a01b039095166004860181905294602081602481885afa908115610a9a576000916130ce575b5061309a604093610ddc7f1fc3ecc087d8d2d15e23d0032af5a47059c3892d003d8e139fdcb6bb327c99a696946a0c097ce7bc90715b34b9f160241b94613809565b04908560005260cb6020526130b3828460002054611dba565b8660005260cb602052836000205582519182526020820152a3565b90506020939193813d602011613100575b816130ec60209383611a46565b81010312610212575190929061309a613058565b3d91506130df565b506a0c097ce7bc90715b34b9f160241b613006565b506a0c097ce7bc90715b34b9f160241b831015613001565b6001600160a01b0316600081815260d26020908152604080832060d090925290912054929190613166612e63611d0e565b63ffffffff43169161317c825460e01c84611d49565b908115158080613208575b156131fa5750906020600492604051938480926318160ddd60e01b82525afa918215610a9a576000926131c4575b50612f2b9495612ed091611d6c565b90916020823d6020116131f2575b816131df60209383611a46565b81010312610f7757505190612f2b6131b5565b3d91506131d2565b929495505050612f8b575050565b50861515613187565b6001600160a01b03908116600081815260d2602090815260408083205460ce8352818420958716845294909152902080546001600160e01b0390931690819055909180158061334b575b613336575b61326a9082611d49565b9260405193613278856119de565b84526040516370a0823160e01b81526001600160a01b039091166004820181905293602082602481875afa918215610a9a576000926132f2575b50916a0c097ce7bc90715b34b9f160241b61309a6040937f2caecd17d02f56fa897705dcc740da2d237c373f70686f4e0d9bd3bf0400ea7a955190611d6c565b9150916020823d60201161332e575b8161330e60209383611a46565b8101031261021257905190916a0c097ce7bc90715b34b9f160241b6132b2565b3d9150613301565b506a0c097ce7bc90715b34b9f160241b613260565b506a0c097ce7bc90715b34b9f160241b82101561325b565b60ca54604051632aff3bff60e21b81526001600160a01b0380841660048301529093929160009185916024918391165afa928315610a9a5760009361359e575b5060005b835181101561345d576001600160a01b036133c28286611b75565b51168060005260d160205260406000205415809181613431575b81613406575b5081156133fe575b506133f7576001016133a7565b5050905090565b9050386133ea565b905060005260cf60205260408060002060009060018060a01b038616825260205220541515386133e2565b600081815260ce602090815260408083206001600160a01b0389168452909152902054151592506133dc565b5060c9546040516370a0823160e01b81523060048201529193506001600160a01b031690602081602481855afa908115610a9a5760009161356c575b508215159081613561575b506134af5750905090565b60405163a9059cbb60e01b602082019081526001600160a01b03949094166024820152604480820193909352918252600092839283906134f0606482611a46565b51925af13d1561355c573d61350481611cf3565b906135126040519283611a46565b8152600060203d92013e5b1561352757600090565b60405162461bcd60e51b815260206004820152600d60248201526c31b0b73a103a3930b739b332b960991b6044820152606490fd5b61351d565b9050821115386134a4565b90506020813d602011613596575b8161358760209383611a46565b81010312610212575138613499565b3d915061357a565b6135b49193503d806000833e610a8b8183611a46565b91386133a3565b3360009081527fffdfc1249c027f9191656349feb0761381bb32c9f557e01f419fd08754bf5a1b602052604090205460ff16156135f457565b6136a961360033613b99565b613691601161360f6000613cd9565b9260376040519485927f416363657373436f6e74726f6c3a206163636f756e742000000000000000000060208501526136518151809260208688019101613796565b83017001034b99036b4b9b9b4b733903937b6329607d1b83820152613680825180936020604885019101613796565b01010301601f198101835282611a46565b60405162461bcd60e51b8152918291600483016137b9565b0390fd5b600081815260656020908152604080832033845290915290205460ff16156136d25750565b6136a990613691601161360f6136e733613b99565b93613cd9565b9061373c91806000526065602052604060002060018060a01b03831660005260205260ff6040600020541661373f575b60009081526097602052604090206001600160a01b0390911690613df3565b50565b60008181526065602090815260408083206001600160a01b03861680855292528220805460ff19169055339183907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a461371d565b60005b8381106137a95750506000910152565b8181015183820152602001613799565b604091602082526137d98151809281602086015260208686019101613796565b601f01601f1916010190565b156137ed5750565b60405162461bcd60e51b81529081906136a990600483016137b9565b670de0b6b3a7640000810290808204670de0b6b3a76400001490151715611d5657611be7915190611ebc565b906000604051613844816119de565b526a0c097ce7bc90715b34b9f160241b8202918083046a0c097ce7bc90715b34b9f160241b1490151715611d565761387b91611ebc565b60405190613888826119de565b815290565b9061387b9160006040516138a0816119de565b5251905190611dba565b60ca54604051638e8f294b60e01b81526001600160a01b03808416600483018190529593949260609183916024918391165afa8015610a9a576138f491600091613aa65750611bea565b8015613a6b578115613a305783908160005260d060205280604060002054036139e6575b5060005260d1602052806040600020540361393257505050565b60405163aa5af0fd60e01b815291602083600481875afa928315610a9a576000936139ae575b50906139967f20af8e791cc98f74b2d7a391c80980ca8e5aebf3d4060bf581997b6acae2e537936020936040519161398f836119de565b8252612e33565b8360005260d1825280604060002055604051908152a2565b9250906020833d6020116139de575b816139ca60209383611a46565b810103126102125791519190613996613958565b3d91506139bd565b60207fdeafccd0c0b768b2529f7dcbbe58e155d6023059150b7490ed4535cc3744b92d91613a1386613135565b8360005260d0825280604060002055604051908152a28238613918565b60405162461bcd60e51b81526020600482015260136024820152721a5b9d9b185a5908189bdc9c9bddd4dc195959606a1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260136024820152721a5b9d985b1a59081cdd5c1c1b1e54dc195959606a1b6044820152606490fd5b612da8915060603d6060116118f7576118e78183611a46565b929190928115613b3957670de0b6b3a7640000613adc8284611d6c565b0491670de0b6b3a7640000850290858204670de0b6b3a76400001486151715611d5657613b0891611ebc565b91600090600095808211600014613b2a5750505090613b2691611d49565b9190565b9195509150611be79250611d49565b505060009190565b8115613b6d5781811115613b5f5790613b5991611d49565b90600090565b613b6891611d49565b600091565b91565b8054821015611b895760005260206000200190600090565b908151811015611b89570160200190565b600090613ba6602a611cf3565b91613bb46040519384611a46565b602a8352613bc2602a611cf3565b6020840190601f1901368237835115613cc55760309053825160011015613cb1576078602184015350602960005b60018211613c45575050613c015790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015613c9d576f181899199a1a9b1b9c1cb0b131b232b360811b901a613c748486613b88565b5360041c918015613c89576000190190613bf0565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b82526032600452602482fd5b600090613ce66042611cf3565b91613cf46040519384611a46565b60428352613d026042611cf3565b6020840190601f1901368237835115613cc55760309053825160011015613cb1576078602184015350604160005b60018211613d41575050613c015790565b9091600f81166010811015613c9d576f181899199a1a9b1b9c1cb0b131b232b360811b901a613d708486613b88565b5360041c918015613c89576000190190613d30565b6001810190826000528160205260406000205415600014612960578054680100000000000000008110156119f957613dde613dc7826001879401855584613b70565b819391549060031b91821b91600019901b19161790565b90555491600052602052604060002055600190565b9060018201918160005282602052604060002054801515600014613ebd576000198101818111611d56578254600019810191908211611d5657808203613e86575b50505080548015613e70576000190190613e4e8282613b70565b8154906000199060031b1b191690555560005260205260006040812055600190565b634e487b7160e01b600052603160045260246000fd5b613ea6613e96613dc79386613b70565b90549060031b1c92839286613b70565b905560005283602052604060002055388080613e34565b5050505060009056fea264697066735822122012db8b6ce2044f7cf73395f73ffbcb2018b062cbd63fdabf3bd4e6b9369c799f64736f6c634300081a0033";
|
|
1547
1547
|
const isSuperArgs = (xs) => xs.length > 1;
|
|
1548
1548
|
class CompLogic__factory extends ethers_1.ContractFactory {
|
|
1549
1549
|
constructor(...args) {
|