@towns-protocol/xchain-monitor 0.0.442 → 0.0.444
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/.turbo/turbo-build.log +1 -1
- package/dist/node_esbuild.cjs +131 -89
- package/dist/node_esbuild.cjs.map +4 -4
- package/package.json +4 -4
package/dist/node_esbuild.cjs
CHANGED
|
@@ -10246,7 +10246,7 @@ var require_node = __commonJS({
|
|
|
10246
10246
|
var tty = require("tty");
|
|
10247
10247
|
var util2 = require("util");
|
|
10248
10248
|
exports2.init = init;
|
|
10249
|
-
exports2.log =
|
|
10249
|
+
exports2.log = log6;
|
|
10250
10250
|
exports2.formatArgs = formatArgs;
|
|
10251
10251
|
exports2.save = save;
|
|
10252
10252
|
exports2.load = load;
|
|
@@ -10381,7 +10381,7 @@ var require_node = __commonJS({
|
|
|
10381
10381
|
}
|
|
10382
10382
|
return (/* @__PURE__ */ new Date()).toISOString() + " ";
|
|
10383
10383
|
}
|
|
10384
|
-
function
|
|
10384
|
+
function log6(...args) {
|
|
10385
10385
|
return process.stderr.write(util2.formatWithOptions(exports2.inspectOpts, ...args) + "\n");
|
|
10386
10386
|
}
|
|
10387
10387
|
function save(namespaces) {
|
|
@@ -20255,8 +20255,8 @@ var require_interface = __commonJS({
|
|
|
20255
20255
|
value: bignumber_1.BigNumber.from(tx.value || "0")
|
|
20256
20256
|
});
|
|
20257
20257
|
};
|
|
20258
|
-
Interface2.prototype.parseLog = function(
|
|
20259
|
-
var fragment = this.getEvent(
|
|
20258
|
+
Interface2.prototype.parseLog = function(log6) {
|
|
20259
|
+
var fragment = this.getEvent(log6.topics[0]);
|
|
20260
20260
|
if (!fragment || fragment.anonymous) {
|
|
20261
20261
|
return null;
|
|
20262
20262
|
}
|
|
@@ -20265,7 +20265,7 @@ var require_interface = __commonJS({
|
|
|
20265
20265
|
name: fragment.name,
|
|
20266
20266
|
signature: fragment.format(),
|
|
20267
20267
|
topic: this.getEventTopic(fragment),
|
|
20268
|
-
args: this.decodeEventLog(fragment,
|
|
20268
|
+
args: this.decodeEventLog(fragment, log6.data, log6.topics)
|
|
20269
20269
|
});
|
|
20270
20270
|
};
|
|
20271
20271
|
Interface2.prototype.parseError = function(data) {
|
|
@@ -30023,11 +30023,11 @@ var require_lib18 = __commonJS({
|
|
|
30023
30023
|
var wait2 = tx.wait.bind(tx);
|
|
30024
30024
|
tx.wait = function(confirmations) {
|
|
30025
30025
|
return wait2(confirmations).then(function(receipt) {
|
|
30026
|
-
receipt.events = receipt.logs.map(function(
|
|
30027
|
-
var event = (0, properties_1.deepCopy)(
|
|
30026
|
+
receipt.events = receipt.logs.map(function(log6) {
|
|
30027
|
+
var event = (0, properties_1.deepCopy)(log6);
|
|
30028
30028
|
var parsed = null;
|
|
30029
30029
|
try {
|
|
30030
|
-
parsed = contract.interface.parseLog(
|
|
30030
|
+
parsed = contract.interface.parseLog(log6);
|
|
30031
30031
|
} catch (e) {
|
|
30032
30032
|
}
|
|
30033
30033
|
if (parsed) {
|
|
@@ -30552,9 +30552,9 @@ var require_lib18 = __commonJS({
|
|
|
30552
30552
|
}
|
|
30553
30553
|
}
|
|
30554
30554
|
};
|
|
30555
|
-
BaseContract2.prototype._wrapEvent = function(runningEvent,
|
|
30555
|
+
BaseContract2.prototype._wrapEvent = function(runningEvent, log6, listener) {
|
|
30556
30556
|
var _this = this;
|
|
30557
|
-
var event = (0, properties_1.deepCopy)(
|
|
30557
|
+
var event = (0, properties_1.deepCopy)(log6);
|
|
30558
30558
|
event.removeListener = function() {
|
|
30559
30559
|
if (!listener) {
|
|
30560
30560
|
return;
|
|
@@ -30563,13 +30563,13 @@ var require_lib18 = __commonJS({
|
|
|
30563
30563
|
_this._checkRunningEvents(runningEvent);
|
|
30564
30564
|
};
|
|
30565
30565
|
event.getBlock = function() {
|
|
30566
|
-
return _this.provider.getBlock(
|
|
30566
|
+
return _this.provider.getBlock(log6.blockHash);
|
|
30567
30567
|
};
|
|
30568
30568
|
event.getTransaction = function() {
|
|
30569
|
-
return _this.provider.getTransaction(
|
|
30569
|
+
return _this.provider.getTransaction(log6.transactionHash);
|
|
30570
30570
|
};
|
|
30571
30571
|
event.getTransactionReceipt = function() {
|
|
30572
|
-
return _this.provider.getTransactionReceipt(
|
|
30572
|
+
return _this.provider.getTransactionReceipt(log6.transactionHash);
|
|
30573
30573
|
};
|
|
30574
30574
|
runningEvent.prepareEvent(event);
|
|
30575
30575
|
return event;
|
|
@@ -30582,8 +30582,8 @@ var require_lib18 = __commonJS({
|
|
|
30582
30582
|
runningEvent.addListener(listener, once);
|
|
30583
30583
|
this._runningEvents[runningEvent.tag] = runningEvent;
|
|
30584
30584
|
if (!this._wrappedEmits[runningEvent.tag]) {
|
|
30585
|
-
var wrappedEmit = function(
|
|
30586
|
-
var event = _this._wrapEvent(runningEvent,
|
|
30585
|
+
var wrappedEmit = function(log6) {
|
|
30586
|
+
var event = _this._wrapEvent(runningEvent, log6, listener);
|
|
30587
30587
|
if (event.decodeError == null) {
|
|
30588
30588
|
try {
|
|
30589
30589
|
var args = runningEvent.getEmit(event);
|
|
@@ -30619,8 +30619,8 @@ var require_lib18 = __commonJS({
|
|
|
30619
30619
|
filter.toBlock = toBlock != null ? toBlock : "latest";
|
|
30620
30620
|
}
|
|
30621
30621
|
return this.provider.getLogs(filter).then(function(logs) {
|
|
30622
|
-
return logs.map(function(
|
|
30623
|
-
return _this._wrapEvent(runningEvent,
|
|
30622
|
+
return logs.map(function(log6) {
|
|
30623
|
+
return _this._wrapEvent(runningEvent, log6, null);
|
|
30624
30624
|
});
|
|
30625
30625
|
});
|
|
30626
30626
|
};
|
|
@@ -36986,13 +36986,13 @@ var require_base_provider = __commonJS({
|
|
|
36986
36986
|
if (logs.length === 0) {
|
|
36987
36987
|
return;
|
|
36988
36988
|
}
|
|
36989
|
-
logs.forEach(function(
|
|
36990
|
-
if (
|
|
36991
|
-
event._lastBlockNumber =
|
|
36989
|
+
logs.forEach(function(log6) {
|
|
36990
|
+
if (log6.blockNumber > event._lastBlockNumber) {
|
|
36991
|
+
event._lastBlockNumber = log6.blockNumber;
|
|
36992
36992
|
}
|
|
36993
|
-
_this._emitted["b:" +
|
|
36994
|
-
_this._emitted["t:" +
|
|
36995
|
-
_this.emit(filter_1,
|
|
36993
|
+
_this._emitted["b:" + log6.blockHash] = log6.blockNumber;
|
|
36994
|
+
_this._emitted["t:" + log6.transactionHash] = log6.blockNumber;
|
|
36995
|
+
_this.emit(filter_1, log6);
|
|
36996
36996
|
});
|
|
36997
36997
|
}).catch(function(error) {
|
|
36998
36998
|
_this.emit("error", error);
|
|
@@ -38157,9 +38157,9 @@ var require_base_provider = __commonJS({
|
|
|
38157
38157
|
return [4, this.perform("getLogs", params)];
|
|
38158
38158
|
case 3:
|
|
38159
38159
|
logs = _a.sent();
|
|
38160
|
-
logs.forEach(function(
|
|
38161
|
-
if (
|
|
38162
|
-
|
|
38160
|
+
logs.forEach(function(log6) {
|
|
38161
|
+
if (log6.removed == null) {
|
|
38162
|
+
log6.removed = false;
|
|
38163
38163
|
}
|
|
38164
38164
|
});
|
|
38165
38165
|
return [2, formatter_1.Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs)];
|
|
@@ -44787,7 +44787,7 @@ var require_etherscan_provider = __commonJS({
|
|
|
44787
44787
|
};
|
|
44788
44788
|
EtherscanProvider2.prototype.perform = function(method, params) {
|
|
44789
44789
|
return __awaiter(this, void 0, void 0, function() {
|
|
44790
|
-
var _a, postData, error_1, postData, error_2, args, topic0, logs, blocks, i,
|
|
44790
|
+
var _a, postData, error_1, postData, error_2, args, topic0, logs, blocks, i, log6, block, _b;
|
|
44791
44791
|
return __generator(this, function(_c) {
|
|
44792
44792
|
switch (_c.label) {
|
|
44793
44793
|
case 0:
|
|
@@ -44938,20 +44938,20 @@ var require_etherscan_provider = __commonJS({
|
|
|
44938
44938
|
_c.label = 21;
|
|
44939
44939
|
case 21:
|
|
44940
44940
|
if (!(i < logs.length)) return [3, 25];
|
|
44941
|
-
|
|
44942
|
-
if (
|
|
44941
|
+
log6 = logs[i];
|
|
44942
|
+
if (log6.blockHash != null) {
|
|
44943
44943
|
return [3, 24];
|
|
44944
44944
|
}
|
|
44945
|
-
if (!(blocks[
|
|
44946
|
-
return [4, this.getBlock(
|
|
44945
|
+
if (!(blocks[log6.blockNumber] == null)) return [3, 23];
|
|
44946
|
+
return [4, this.getBlock(log6.blockNumber)];
|
|
44947
44947
|
case 22:
|
|
44948
44948
|
block = _c.sent();
|
|
44949
44949
|
if (block) {
|
|
44950
|
-
blocks[
|
|
44950
|
+
blocks[log6.blockNumber] = block.hash;
|
|
44951
44951
|
}
|
|
44952
44952
|
_c.label = 23;
|
|
44953
44953
|
case 23:
|
|
44954
|
-
|
|
44954
|
+
log6.blockHash = blocks[log6.blockNumber];
|
|
44955
44955
|
_c.label = 24;
|
|
44956
44956
|
case 24:
|
|
44957
44957
|
i++;
|
|
@@ -50713,11 +50713,11 @@ var require_tools = __commonJS({
|
|
|
50713
50713
|
}
|
|
50714
50714
|
}
|
|
50715
50715
|
}
|
|
50716
|
-
function buildFormatters(level, bindings,
|
|
50716
|
+
function buildFormatters(level, bindings, log6) {
|
|
50717
50717
|
return {
|
|
50718
50718
|
level,
|
|
50719
50719
|
bindings,
|
|
50720
|
-
log:
|
|
50720
|
+
log: log6
|
|
50721
50721
|
};
|
|
50722
50722
|
}
|
|
50723
50723
|
function normalizeDestFileDescriptor(destination) {
|
|
@@ -51085,11 +51085,11 @@ var require_proto = __commonJS({
|
|
|
51085
51085
|
}
|
|
51086
51086
|
} else instance[serializersSym] = serializers2;
|
|
51087
51087
|
if (options.hasOwnProperty("formatters")) {
|
|
51088
|
-
const { level, bindings: chindings, log:
|
|
51088
|
+
const { level, bindings: chindings, log: log6 } = options.formatters;
|
|
51089
51089
|
instance[formattersSym] = buildFormatters(
|
|
51090
51090
|
level || formatters2.level,
|
|
51091
51091
|
chindings || resetChildingsFormatter,
|
|
51092
|
-
|
|
51092
|
+
log6 || formatters2.log
|
|
51093
51093
|
);
|
|
51094
51094
|
} else {
|
|
51095
51095
|
instance[formattersSym] = buildFormatters(
|
|
@@ -53373,13 +53373,13 @@ function parseEventLogs(parameters) {
|
|
|
53373
53373
|
return parameters.eventName;
|
|
53374
53374
|
return [parameters.eventName];
|
|
53375
53375
|
})();
|
|
53376
|
-
return logs.map((
|
|
53376
|
+
return logs.map((log6) => {
|
|
53377
53377
|
try {
|
|
53378
|
-
const abiItem = abi46.find((abiItem2) => abiItem2.type === "event" &&
|
|
53378
|
+
const abiItem = abi46.find((abiItem2) => abiItem2.type === "event" && log6.topics[0] === toEventSelector(abiItem2));
|
|
53379
53379
|
if (!abiItem)
|
|
53380
53380
|
return null;
|
|
53381
53381
|
const event = decodeEventLog({
|
|
53382
|
-
...
|
|
53382
|
+
...log6,
|
|
53383
53383
|
abi: [abiItem],
|
|
53384
53384
|
strict
|
|
53385
53385
|
});
|
|
@@ -53391,7 +53391,7 @@ function parseEventLogs(parameters) {
|
|
|
53391
53391
|
matchArgs: args
|
|
53392
53392
|
}))
|
|
53393
53393
|
return null;
|
|
53394
|
-
return { ...event, ...
|
|
53394
|
+
return { ...event, ...log6 };
|
|
53395
53395
|
} catch (err) {
|
|
53396
53396
|
let eventName2;
|
|
53397
53397
|
let isUnnamed;
|
|
@@ -53403,7 +53403,7 @@ function parseEventLogs(parameters) {
|
|
|
53403
53403
|
eventName2 = err.abiItem.name;
|
|
53404
53404
|
isUnnamed = err.abiItem.inputs?.some((x) => !("name" in x && x.name));
|
|
53405
53405
|
}
|
|
53406
|
-
return { ...
|
|
53406
|
+
return { ...log6, args: isUnnamed ? [] : {}, eventName: eventName2 };
|
|
53407
53407
|
}
|
|
53408
53408
|
}).filter(Boolean);
|
|
53409
53409
|
}
|
|
@@ -53452,14 +53452,14 @@ function includesArgs(parameters) {
|
|
|
53452
53452
|
init_toHex();
|
|
53453
53453
|
|
|
53454
53454
|
// ../../node_modules/.bun/viem@2.37.8+c604908c81b6e30a/node_modules/viem/_esm/utils/formatters/log.js
|
|
53455
|
-
function formatLog(
|
|
53455
|
+
function formatLog(log6, { args, eventName } = {}) {
|
|
53456
53456
|
return {
|
|
53457
|
-
...
|
|
53458
|
-
blockHash:
|
|
53459
|
-
blockNumber:
|
|
53460
|
-
logIndex:
|
|
53461
|
-
transactionHash:
|
|
53462
|
-
transactionIndex:
|
|
53457
|
+
...log6,
|
|
53458
|
+
blockHash: log6.blockHash ? log6.blockHash : null,
|
|
53459
|
+
blockNumber: log6.blockNumber ? BigInt(log6.blockNumber) : null,
|
|
53460
|
+
logIndex: log6.logIndex ? Number(log6.logIndex) : null,
|
|
53461
|
+
transactionHash: log6.transactionHash ? log6.transactionHash : null,
|
|
53462
|
+
transactionIndex: log6.transactionIndex ? Number(log6.transactionIndex) : null,
|
|
53463
53463
|
...eventName ? { args, eventName } : {}
|
|
53464
53464
|
};
|
|
53465
53465
|
}
|
|
@@ -53498,7 +53498,7 @@ async function getLogs(client, { address, blockHash, fromBlock, toBlock, event,
|
|
|
53498
53498
|
]
|
|
53499
53499
|
});
|
|
53500
53500
|
}
|
|
53501
|
-
const formattedLogs = logs.map((
|
|
53501
|
+
const formattedLogs = logs.map((log6) => formatLog(log6));
|
|
53502
53502
|
if (!events)
|
|
53503
53503
|
return formattedLogs;
|
|
53504
53504
|
return parseEventLogs({
|
|
@@ -53750,7 +53750,7 @@ async function getFilterChanges(_client, { filter }) {
|
|
|
53750
53750
|
});
|
|
53751
53751
|
if (typeof logs[0] === "string")
|
|
53752
53752
|
return logs;
|
|
53753
|
-
const formattedLogs = logs.map((
|
|
53753
|
+
const formattedLogs = logs.map((log6) => formatLog(log6));
|
|
53754
53754
|
if (!("abi" in filter) || !filter.abi)
|
|
53755
53755
|
return formattedLogs;
|
|
53756
53756
|
return parseEventLogs({
|
|
@@ -53843,8 +53843,8 @@ function watchContractEvent(client, parameters) {
|
|
|
53843
53843
|
if (batch)
|
|
53844
53844
|
emit.onLogs(logs);
|
|
53845
53845
|
else
|
|
53846
|
-
for (const
|
|
53847
|
-
emit.onLogs([
|
|
53846
|
+
for (const log6 of logs)
|
|
53847
|
+
emit.onLogs([log6]);
|
|
53848
53848
|
} catch (err) {
|
|
53849
53849
|
if (filter && err instanceof InvalidInputRpcError)
|
|
53850
53850
|
initialized = false;
|
|
@@ -53898,15 +53898,15 @@ function watchContractEvent(client, parameters) {
|
|
|
53898
53898
|
onData(data) {
|
|
53899
53899
|
if (!active)
|
|
53900
53900
|
return;
|
|
53901
|
-
const
|
|
53901
|
+
const log6 = data.result;
|
|
53902
53902
|
try {
|
|
53903
53903
|
const { eventName: eventName2, args: args2 } = decodeEventLog({
|
|
53904
53904
|
abi: abi46,
|
|
53905
|
-
data:
|
|
53906
|
-
topics:
|
|
53905
|
+
data: log6.data,
|
|
53906
|
+
topics: log6.topics,
|
|
53907
53907
|
strict: strict_
|
|
53908
53908
|
});
|
|
53909
|
-
const formatted = formatLog(
|
|
53909
|
+
const formatted = formatLog(log6, {
|
|
53910
53910
|
args: args2,
|
|
53911
53911
|
eventName: eventName2
|
|
53912
53912
|
});
|
|
@@ -53920,7 +53920,7 @@ function watchContractEvent(client, parameters) {
|
|
|
53920
53920
|
eventName2 = err.abiItem.name;
|
|
53921
53921
|
isUnnamed = err.abiItem.inputs?.some((x) => !("name" in x && x.name));
|
|
53922
53922
|
}
|
|
53923
|
-
const formatted = formatLog(
|
|
53923
|
+
const formatted = formatLog(log6, {
|
|
53924
53924
|
args: isUnnamed ? [] : {},
|
|
53925
53925
|
eventName: eventName2
|
|
53926
53926
|
});
|
|
@@ -53990,7 +53990,7 @@ function formatTransactionReceipt(transactionReceipt) {
|
|
|
53990
53990
|
cumulativeGasUsed: transactionReceipt.cumulativeGasUsed ? BigInt(transactionReceipt.cumulativeGasUsed) : null,
|
|
53991
53991
|
effectiveGasPrice: transactionReceipt.effectiveGasPrice ? BigInt(transactionReceipt.effectiveGasPrice) : null,
|
|
53992
53992
|
gasUsed: transactionReceipt.gasUsed ? BigInt(transactionReceipt.gasUsed) : null,
|
|
53993
|
-
logs: transactionReceipt.logs ? transactionReceipt.logs.map((
|
|
53993
|
+
logs: transactionReceipt.logs ? transactionReceipt.logs.map((log6) => formatLog(log6)) : null,
|
|
53994
53994
|
to: transactionReceipt.to ? transactionReceipt.to : null,
|
|
53995
53995
|
transactionIndex: transactionReceipt.transactionIndex ? hexToNumber(transactionReceipt.transactionIndex) : null,
|
|
53996
53996
|
status: transactionReceipt.status ? receiptStatuses[transactionReceipt.status] : null,
|
|
@@ -54900,7 +54900,7 @@ async function getFilterLogs(_client, { filter }) {
|
|
|
54900
54900
|
method: "eth_getFilterLogs",
|
|
54901
54901
|
params: [filter.id]
|
|
54902
54902
|
});
|
|
54903
|
-
const formattedLogs = logs.map((
|
|
54903
|
+
const formattedLogs = logs.map((log6) => formatLog(log6));
|
|
54904
54904
|
if (!filter.abi)
|
|
54905
54905
|
return formattedLogs;
|
|
54906
54906
|
return parseEventLogs({
|
|
@@ -57741,7 +57741,7 @@ async function simulateBlocks(client, parameters) {
|
|
|
57741
57741
|
const { abi: abi46, args, functionName, to } = blocks[i].calls[j];
|
|
57742
57742
|
const data = call2.error?.data ?? call2.returnData;
|
|
57743
57743
|
const gasUsed = BigInt(call2.gasUsed);
|
|
57744
|
-
const logs = call2.logs?.map((
|
|
57744
|
+
const logs = call2.logs?.map((log6) => formatLog(log6));
|
|
57745
57745
|
const status = call2.status === "0x1" ? "success" : "failure";
|
|
57746
57746
|
const result2 = abi46 && status === "success" && data !== "0x" ? decodeFunctionResult({
|
|
57747
57747
|
abi: abi46,
|
|
@@ -59067,8 +59067,8 @@ function watchEvent(client, { address, args, batch = true, event, events, fromBl
|
|
|
59067
59067
|
if (batch)
|
|
59068
59068
|
emit.onLogs(logs);
|
|
59069
59069
|
else
|
|
59070
|
-
for (const
|
|
59071
|
-
emit.onLogs([
|
|
59070
|
+
for (const log6 of logs)
|
|
59071
|
+
emit.onLogs([log6]);
|
|
59072
59072
|
} catch (err) {
|
|
59073
59073
|
if (filter && err instanceof InvalidInputRpcError)
|
|
59074
59074
|
initialized = false;
|
|
@@ -59116,15 +59116,15 @@ function watchEvent(client, { address, args, batch = true, event, events, fromBl
|
|
|
59116
59116
|
onData(data) {
|
|
59117
59117
|
if (!active)
|
|
59118
59118
|
return;
|
|
59119
|
-
const
|
|
59119
|
+
const log6 = data.result;
|
|
59120
59120
|
try {
|
|
59121
59121
|
const { eventName, args: args2 } = decodeEventLog({
|
|
59122
59122
|
abi: events_ ?? [],
|
|
59123
|
-
data:
|
|
59124
|
-
topics:
|
|
59123
|
+
data: log6.data,
|
|
59124
|
+
topics: log6.topics,
|
|
59125
59125
|
strict
|
|
59126
59126
|
});
|
|
59127
|
-
const formatted = formatLog(
|
|
59127
|
+
const formatted = formatLog(log6, { args: args2, eventName });
|
|
59128
59128
|
onLogs([formatted]);
|
|
59129
59129
|
} catch (err) {
|
|
59130
59130
|
let eventName;
|
|
@@ -59135,7 +59135,7 @@ function watchEvent(client, { address, args, batch = true, event, events, fromBl
|
|
|
59135
59135
|
eventName = err.abiItem.name;
|
|
59136
59136
|
isUnnamed = err.abiItem.inputs?.some((x) => !("name" in x && x.name));
|
|
59137
59137
|
}
|
|
59138
|
-
const formatted = formatLog(
|
|
59138
|
+
const formatted = formatLog(log6, {
|
|
59139
59139
|
args: isUnnamed ? [] : {},
|
|
59140
59140
|
eventName
|
|
59141
59141
|
});
|
|
@@ -66255,8 +66255,8 @@ var BaseContractShim = class {
|
|
|
66255
66255
|
errorName
|
|
66256
66256
|
};
|
|
66257
66257
|
}
|
|
66258
|
-
parseLog(
|
|
66259
|
-
return this.interface.parseLog(
|
|
66258
|
+
parseLog(log6) {
|
|
66259
|
+
return this.interface.parseLog(log6);
|
|
66260
66260
|
}
|
|
66261
66261
|
};
|
|
66262
66262
|
|
|
@@ -82443,6 +82443,19 @@ var _abi33 = [
|
|
|
82443
82443
|
],
|
|
82444
82444
|
stateMutability: "view"
|
|
82445
82445
|
},
|
|
82446
|
+
{
|
|
82447
|
+
type: "function",
|
|
82448
|
+
name: "setMembershipCurrency",
|
|
82449
|
+
inputs: [
|
|
82450
|
+
{
|
|
82451
|
+
name: "currency",
|
|
82452
|
+
type: "address",
|
|
82453
|
+
internalType: "address"
|
|
82454
|
+
}
|
|
82455
|
+
],
|
|
82456
|
+
outputs: [],
|
|
82457
|
+
stateMutability: "nonpayable"
|
|
82458
|
+
},
|
|
82446
82459
|
{
|
|
82447
82460
|
type: "function",
|
|
82448
82461
|
name: "setMembershipDuration",
|
|
@@ -83364,6 +83377,12 @@ var _abi33 = [
|
|
|
83364
83377
|
type: "event",
|
|
83365
83378
|
name: "MembershipWithdrawal",
|
|
83366
83379
|
inputs: [
|
|
83380
|
+
{
|
|
83381
|
+
name: "currency",
|
|
83382
|
+
type: "address",
|
|
83383
|
+
indexed: true,
|
|
83384
|
+
internalType: "address"
|
|
83385
|
+
},
|
|
83367
83386
|
{
|
|
83368
83387
|
name: "recipient",
|
|
83369
83388
|
type: "address",
|
|
@@ -84204,6 +84223,16 @@ var _abi33 = [
|
|
|
84204
84223
|
name: "Membership__MaxSupplyReached",
|
|
84205
84224
|
inputs: []
|
|
84206
84225
|
},
|
|
84226
|
+
{
|
|
84227
|
+
type: "error",
|
|
84228
|
+
name: "Membership__UnexpectedValue",
|
|
84229
|
+
inputs: []
|
|
84230
|
+
},
|
|
84231
|
+
{
|
|
84232
|
+
type: "error",
|
|
84233
|
+
name: "Membership__UnsupportedCurrency",
|
|
84234
|
+
inputs: []
|
|
84235
|
+
},
|
|
84207
84236
|
{
|
|
84208
84237
|
type: "error",
|
|
84209
84238
|
name: "MintERC2309QuantityExceedsLimit",
|
|
@@ -84488,7 +84517,7 @@ var _abi33 = [
|
|
|
84488
84517
|
inputs: []
|
|
84489
84518
|
}
|
|
84490
84519
|
];
|
|
84491
|
-
var _bytecode15 = "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b61515f806100ca5f395ff3fe60806040526004361061016d575f3560e01c806379dda585116100c657806393b13cb71161007c578063a5a4103111610057578063a5a41031146103c9578063df9a9fe6146103dd578063e847abdd146103fc575f5ffd5b806393b13cb71461037557806395d600c81461039657806397fb7c1e146103aa575f5ffd5b80638120f0ba116100ac5780638120f0ba1461031657806383f3f0dc146103435780638c625b0614610362575f5ffd5b806379dda585146102ef5780637c9669ac14610303575f5ffd5b80635803909f11610126578063686f768411610101578063686f7684146102a957806369d5f38a146102bc578063706b8e09146102db575f5ffd5b80635803909f146102325780635becd24a14610251578063657e45e814610270575f5ffd5b806317c957091161015657806317c95709146101b9578063280a47c71461020d5780633e9491a214610220575f5ffd5b80630ef1be5f146101715780631278076a14610192575b5f5ffd5b34801561017c575f5ffd5b5061019061018b366004614527565b610410565b005b34801561019d575f5ffd5b506101a66104c5565b6040519081526020015b60405180910390f35b3480156101c4575f5ffd5b506101a66101d3366004614566565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b61019061021b36600461457d565b61053a565b34801561022b575f5ffd5b50476101a6565b34801561023d575f5ffd5b506101a661024c366004614566565b610610565b34801561025c575f5ffd5b5061019061026b366004614566565b610688565b34801561027b575f5ffd5b5061028461076f565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b0565b6101906102b7366004614787565b6107b3565b3480156102c7575f5ffd5b506101906102d6366004614566565b6107f7565b3480156102e6575f5ffd5b506101a6610906565b3480156102fa575f5ffd5b5061028461090f565b610190610311366004614566565b61094e565b348015610321575f5ffd5b5061032a610991565b60405167ffffffffffffffff90911681526020016101b0565b34801561034e575f5ffd5b5061019061035d3660046147e9565b61099a565b610190610370366004614804565b610a14565b348015610380575f5ffd5b50610389610a47565b6040516101b0919061486b565b3480156103a1575f5ffd5b506101a6610a51565b3480156103b5575f5ffd5b506101906103c4366004614566565b610a7a565b3480156103d4575f5ffd5b506101a6610b64565b3480156103e8575f5ffd5b506101906103f7366004614804565b610bd4565b348015610407575f5ffd5b50610284610cad565b610418610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610483576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104c182828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610dac92505050565b5050565b5f5f61051a6105157f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610dd7565b9050805f0361052a575f91505090565b61053381610ee5565b5092915050565b3068929eee149b4bd2126854036105585763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8360018111156105775761057761487d565b0361059a575f61058982840184614804565b905061059481610f12565b506105ff565b60018360018111156105ae576105ae61487d565b036105d6575f806105c183850185614787565b915091506105cf8282611005565b50506105ff565b6105ff7f3be019690000000000000000000000000000000000000000000000000000000061113c565b3868929eee149b4bd2126855505050565b5f5f610666836106617f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b611144565b9050805f0361067757505f92915050565b61068081610ee5565b509392505050565b610690610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f6576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b5f61071f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b9050801580159061072f57508082115b1561075d5761075d7fc3983b910000000000000000000000000000000000000000000000000000000061113c565b610766826111c2565b6104c182611266565b5f6107ae7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3068929eee149b4bd2126854036107d15763ab143c065f526004601cfd5b3068929eee149b4bd21268556107e78282611005565b3868929eee149b4bd21268555050565b6107ff610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610865576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156108ed575f5ffd5b505af11580156108ff573d5f5f3e3d5ffd5b5050505050565b5f6107ae611324565b5f6107ae7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd21268540361096c5763ab143c065f526004601cfd5b3068929eee149b4bd212685561098233826113ef565b3868929eee149b4bd212685550565b5f6107ae6115e5565b6109a2610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610a11816116a8565b50565b3068929eee149b4bd212685403610a325763ab143c065f526004601cfd5b3068929eee149b4bd212685561098281610f12565b60606107ae611723565b5f6107ae7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610a82610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ae8576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610b3c81610b377f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b6117d5565b610a11817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f5f610bb46105157f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050805f03610bc4575f91505090565b610bcd81610ee5565b9392505050565b610bdc610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c42576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610c4b81611806565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6107ae7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610d82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da691906148aa565b91505090565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104c1828261495a565b5f5f610e177fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b905073ffffffffffffffffffffffffffffffffffffffff8116610e3c57505f92915050565b5f610e45611324565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018290526024810186905290915073ffffffffffffffffffffffffffffffffffffffff831690635cf4ee91906044015b602060405180830381865afa158015610eb9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edd9190614a71565b949350505050565b5f5f610ef08361193f565b9050825f03610f0157809150915091565b610f0b8184614ab5565b9150915091565b610f1b81611a58565b5f610f24611b4e565b905080604001518015610f3a5750806020015134105b15610f6857610f687fb1296a8a0000000000000000000000000000000000000000000000000000000061113c565b5f610fac83610fa77f8c625b06d047a4c1ca46cdab06b7e14ce79b486f06c67a1b220fa942669ca49b338760405180602001604052805f815250611c14565b611c46565b90505f5f610fc08533858760200151611ddb565b91509150806108ff578115610ffb57836040015115610fe357610fe38385611e56565b610fed8386611fb3565b610ff68561203e565b6108ff565b6108ff838661214d565b61100e82611a58565b5f611017611b4e565b90508060400151801561102d5750806020015134105b1561105b5761105b7fb1296a8a0000000000000000000000000000000000000000000000000000000061113c565b61106583836121a4565b5f826040516020016110779190614ac8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f6110d986610fa784338388611c14565b90505f5f6110ed8833858960200151611ddb565b915091508061113257811561112857856040015115611110576111108387612229565b61111a8389611fb3565b6111238861203e565b611132565b611132838961214d565b5050505050505050565b805f5260045ffd5b5f8281527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60960205260408120547fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600908261119d85610dd7565b9050815f036111b05792506111bc915050565b81811890821102189150505b92915050565b6111ca61090f565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611212573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112369190614a71565b811115610a1157610a117fc3983b910000000000000000000000000000000000000000000000000000000061113c565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6078190556040517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff161561137b5760070154919050565b61138361090f565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113cb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da69190614a71565b5f6113f9826123de565b905073ffffffffffffffffffffffffffffffffffffffff811661143f5761143f7f5fbd57170000000000000000000000000000000000000000000000000000000061113c565b5f6114486115e5565b67ffffffffffffffff1690505f6114a4846106617f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050805f03611500576114f66114ee7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b3087346123e9565b6108ff8483612441565b5f61150a82610ee5565b5090503481111561153e5761153e7f34a7a93d0000000000000000000000000000000000000000000000000000000061113c565b5f611549878461256f565b90505f6115568284614b22565b9050801561156a576115688882612637565b505b5f6115758434614b22565b905080156115c6576115c66115be7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b308b846123e9565b6115d087856127ad565b6115da8887612441565b505050505050505050565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f8190036116a55761163961090f565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611681573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae9190614b35565b90565b6116b181612804565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c018054611754906148c5565b80601f0160208091040260200160405190810160405280929190818152602001828054611780906148c5565b80156117cb5780601f106117a2576101008083540402835291602001916117cb565b820191905f5260205f20905b8154815290600101906020018083116117ae57829003601f168201915b5050505050905090565b808210156104c1576104c17fccc9aa2e0000000000000000000000000000000000000000000000000000000061113c565b73ffffffffffffffffffffffffffffffffffffffff811661184a5761184a7f0e88bf4b0000000000000000000000000000000000000000000000000000000061113c565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa1580156118ee573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119129190614b64565b610a1157610a117f0e88bf4b0000000000000000000000000000000000000000000000000000000061113c565b5f5f61194961090f565b90505f8173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611995573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119b99190614a71565b9050835f036119c9579392505050565b5f611a44858473ffffffffffffffffffffffffffffffffffffffff16639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a17573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3b9190614b7d565b61ffff166128fa565b905081811082821802811895945050505050565b73ffffffffffffffffffffffffffffffffffffffff8116611a9c57611a9c7f5fbd57170000000000000000000000000000000000000000000000000000000061113c565b5f611ac57fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611b20575080611b1d7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104c1576104c17f7efcdb490000000000000000000000000000000000000000000000000000000061113c565b611b7160405180606001604052805f81526020015f81526020015f151581525090565b5f611bbd7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611bc982610dd7565b90505f611bd4611324565b9050815f03611be35750505090565b81845282811115611bf45750505090565b5f611bfe83610ee5565b5060016040870152602086015250929392505050565b606084848484604051602001611c2d9493929190614b9e565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660208201524360348201525f908190605401604051602081830303815290604052805190602001209050611d2581611cf98387611cac86612946565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040812080549294507f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00929091908290611d86906148c5565b90501115611db757611db77ff82e65c30000000000000000000000000000000000000000000000000000000061113c565b80611dc2868261495a565b503415611dd257611dd28461298c565b50505092915050565b5f5f5f611e1c6040518060400160405280600981526020017f4a6f696e537061636500000000000000000000000000000000000000000000008152506129f3565b9050611e288188612b8b565b15611e3a5760015f9250925050611e4d565b611e478188888888612da6565b92509250505b94509492505050565b5f5f5f611e6285612f33565b8054611e6d906148c5565b80601f0160208091040260200160405190810160405280929190818152602001828054611e99906148c5565b8015611ee45780601f10611ebb57610100808354040283529160200191611ee4565b820191905f5260205f20905b815481529060010190602001808311611ec757829003601f168201915b5050505050806020019051810190611efc9190614c7f565b50919450925090507fffffffff0000000000000000000000000000000000000000000000000000000083167f8c625b060000000000000000000000000000000000000000000000000000000014611f7657611f767fda6153bd0000000000000000000000000000000000000000000000000000000061113c565b5f611f8483865f015161256f565b90505f818660200151611f979190614b22565b9050611faa878585896020015185612f86565b50505050505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040902054801561203957611ff08382612fb5565b6120396120317fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b3084846123e9565b505050565b5f6120677f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005490565b90506120eb816120bb6105157f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b6120f682600161301d565b612107816121026115e5565b612441565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b61215682613036565b6121608282611fb3565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b8173ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614806121fb5750602081015173ffffffffffffffffffffffffffffffffffffffff1633145b156104c1576104c17f5fbd57170000000000000000000000000000000000000000000000000000000061113c565b5f5f5f5f61223686612f33565b8054612241906148c5565b80601f016020809104026020016040519081016040528092919081815260200182805461226d906148c5565b80156122b85780601f1061228f576101008083540402835291602001916122b8565b820191905f5260205f20905b81548152906001019060200180831161229b57829003601f168201915b50505050508060200190518101906122d09190614c7f565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f7684000000000000000000000000000000000000000000000000000000001461234c5761234c7fda6153bd0000000000000000000000000000000000000000000000000000000061113c565b5f818060200190518101906123619190614d03565b90505f5f61237286895f015161256f565b90505f61238687855f01518b5f015161308e565b90505f6123a088866020015187604001518d5f01516131f3565b90508082848c602001516123b49190614b22565b6123be9190614b22565b6123c89190614b22565b93505050506111328886868a6020015185612f86565b5f6111bc8183613375565b801561243b5773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146124315761242c84848484613380565b61243b565b61243b8282613414565b50505050565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff16801580159061248757505f5b156124c1576040517ff7d2131a0000000000000000000000000000000000000000000000000000000081526004810185905260240161047a565b5f428267ffffffffffffffff1611156124e5576124de8483614dab565b90506124f2565b6124ef8442614dab565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b5f6125798261193f565b90506111bc6125bc7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b846125c561090f565b73ffffffffffffffffffffffffffffffffffffffff16634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561260d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061263191906148aa565b846123e9565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600816126987fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b90507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8216016126fa578382600a015f8282546126ea9190614ab5565b909155508493506111bc92505050565b5f61271b73ffffffffffffffffffffffffffffffffffffffff831630613434565b905061272982873088613380565b5f61274a73ffffffffffffffffffffffffffffffffffffffff841630613434565b90505f6127578383614b22565b9050868114612789576127897fb1296a8a0000000000000000000000000000000000000000000000000000000061113c565b8085600a015f82825461279c9190614ab5565b909155509098975050505050505050565b5f6127b6613467565b90505f6127e5825f856040516020016127d191815260200190565b60405160208183030381529060405261353a565b90506127f2828583613590565b61243b826127fe610cec565b83613590565b5f61280d61090f565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612855573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128799190614b35565b67ffffffffffffffff1690508167ffffffffffffffff165f036128bf576128bf7f82323d2e0000000000000000000000000000000000000000000000000000000061113c565b808267ffffffffffffffff1611156104c1576104c17f82323d2e0000000000000000000000000000000000000000000000000000000061113c565b5f61271082111561292f5761292f7f197f1962000000000000000000000000000000000000000000000000000000008361360f565b61271061293c8385614dcb565b610bcd9190614de2565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e006020819052604082208054908361298183614e1a565b909155509392505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00923492916129ea908490614ab5565b90915550505050565b60605f6129fe61361b565b80519091505f8167ffffffffffffffff811115612a1d57612a1d6145f2565b604051908082528060200260200182016040528015612a8057816020015b612a6d6040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612a3b5790505b50855160208701209091505f90815b84811015612b7f575f5f5f5f612abd8a8681518110612ab057612ab0614e51565b6020026020010151613646565b93509350935093505f5b8251811015612b6f5786838281518110612ae357612ae3614e51565b60200260200101518051906020012003612b67576040518060a001604052808c8881518110612b1457612b14614e51565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110612b4b57612b4b614e51565b602002602001018190525087612b6090614e1a565b9750612b6f565b600101612ac7565b5050505050806001019050612a8f565b50508152949350505050565b5f5f612b9683613732565b90505f5b8451811015612d9c57848181518110612bb557612bb5614e51565b602002602001015160400151612d94575f5b858281518110612bd957612bd9614e51565b60200260200101516080015151811015612d92575f868381518110612c0057612c00614e51565b6020026020010151608001518281518110612c1d57612c1d614e51565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c70573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c949190614b64565b158015612d7757508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250604051602001612d029190614e7e565b604051602081830303815290604052612d1a90614e94565b6040518463ffffffff1660e01b8152600401612d3893929190614ed6565b602060405180830381865afa158015612d53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d779190614b64565b15612d895760019450505050506111bc565b50600101612bc7565b505b600101612b9a565b505f949350505050565b5f8080805b8851811015612f2457888181518110612dc657612dc6614e51565b602002602001015160400151612f1c575f5b898281518110612dea57612dea614e51565b60200260200101516080015151811015612f1a575f8a8381518110612e1157612e11614e51565b6020026020010151608001518281518110612e2e57612e2e614e51565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e81573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ea59190614b64565b15612f115783612ee257612ed98a8a8a848f8881518110612ec857612ec8614e51565b60200260200101515f01518c6139a6565b60019350612f0c565b612f0c8a8a8a848f8881518110612efb57612efb614e51565b60200260200101515f01515f6139a6565b600194505b50600101612dd8565b505b600101612dab565b505f9250509550959350505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604081207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0090610bcd565b8015612f9857612f968482612637565b505b612fa28583612fb5565b612fab85613036565b6108ff83836127ad565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291613013908490614b22565b9091555050505050565b6104c1828260405180602001604052805f815250613a96565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906104c1905f614498565b5f73ffffffffffffffffffffffffffffffffffffffff83166130b157505f610bcd565b5f6130f07fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301529190911690635cb4f54890602401608060405180830381865afa15801561315c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131809190614f41565b905080604001515f03613196575f915050610bcd565b6131a48382604001516128fa565b91506106806131e77fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b868360200151856123e9565b5f82515f146132a3575f61320684613b5e565b604081015190915073ffffffffffffffffffffffffffffffffffffffff16158061323257506020810151155b15613240575f915050610edd565b61324e8382602001516128fa565b915061329d6132917fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b878360400151856123e9565b50610edd565b73ffffffffffffffffffffffffffffffffffffffff841615610edd578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036132f957505f610edd565b61332a826133257faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b6128fa565b9050610edd61336d7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b8686846123e9565b5f610bcd8383613c06565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16031561243b5773ffffffffffffffffffffffffffffffffffffffff831630146133f35761242c73ffffffffffffffffffffffffffffffffffffffff8516848484613d41565b61243b73ffffffffffffffffffffffffffffffffffffffff85168383613da3565b6104c173ffffffffffffffffffffffffffffffffffffffff831682613df6565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa158015613516573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae91906148aa565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde90610e9e9086908690600401614fbb565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b1580156135fd575f5ffd5b505af1158015611faa573d5f5f3e3d5ffd5b815f528060045260245ffd5b60606107ae7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613e0f565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd036020526040812080546060929183918291908190613688906148c5565b80601f01602080910402602001604051908101604052809291908181526020018280546136b4906148c5565b80156136ff5780601f106136d6576101008083540402835291602001916136ff565b820191905f5260205f20905b8154815290600101906020018083116136e257829003601f168201915b5050505060018301549196505060ff16935061371d60028201613e1b565b925061372881613ef2565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa1580156137c9573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261380e9190810190615008565b905080515f0361397f576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613885573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138a991906148aa565b905073ffffffffffffffffffffffffffffffffffffffff81161561397d576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613935573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261397a9190810190615008565b91505b505b61398881613f01565b92506001835101835283604051526020604051016040525050919050565b6139b1868483613f0f565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005f8681526001828101602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117815560030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055905080546040805173ffffffffffffffffffffffffffffffffffffffff8981166020830152611faa9316918a9189918891889101604051602081830303815290604052613fc8565b613aa083836140e9565b73ffffffffffffffffffffffffffffffffffffffff83163b15612039577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b613af55f86838060010194508661429e565b613b2b576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613ae357817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0054146108ff575f5ffd5b613b966040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b5f818311613d0f57505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c010000000000000000000000000000000000000000000000000000000083169003613d0d57815f03613d075780548310613cc6576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115613cc7575b506111bc565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f511416613d9557803d873b151710613d9557637939f4245f526004601cfd5b505f60605260405250505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f511416613dec57803d853b151710613dec576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104c15763b12d13eb5f526004601cfd5b60605f610bcd83614410565b6060815f01805480602002602001604051908101604052809291908181526020015f905b82821015613ee7578382905f5260205f20018054613e5c906148c5565b80601f0160208091040260200160405190810160405280929190818152602001828054613e88906148c5565b8015613ed35780601f10613eaa57610100808354040283529160200191613ed3565b820191905f5260205f20905b815481529060010190602001808311613eb657829003601f168201915b505050505081526020019060010190613e3f565b505050509050919050565b60605f610bcd83600401613e0f565b60606111bc6116a583614469565b34811115613f4057613f407ff4e95a410000000000000000000000000000000000000000000000000000000061113c565b73ffffffffffffffffffffffffffffffffffffffff8316613f8457613f847f99ef03880000000000000000000000000000000000000000000000000000000061113c565b73ffffffffffffffffffffffffffffffffffffffff8216612039576120397f4bb7c2050000000000000000000000000000000000000000000000000000000061113c565b811561405b576040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a9084906140289089908990899088906004016150bc565b5f604051808303818588803b15801561403f575f5ffd5b505af1158015614051573d5f5f3e3d5ffd5b50505050506140e1565b6040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a906140b39088908890889087906004016150bc565b5f604051808303815f87803b1580156140ca575f5ffd5b505af11580156140dc573d5f5f3e3d5ffd5b505050505b505050505050565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f829003614145576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461423c5780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa4600101614206565b50815f03614276576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906142f89033908990889088906004016150f6565b6020604051808303815f875af1925050508015614350575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261434d91810190615146565b60015b6143c5573d80801561437d576040519150601f19603f3d011682016040523d82523d5f602084013e614382565b606091505b5080515f036143bd576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610edd565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561445d57602002820191905f5260205f20905b815481526020019060010190808311614449575b50505050509050919050565b604051815160051b8101602001818084035b80820151825281602001915082820361447b575060405250919050565b5080546144a4906148c5565b5f825580601f106144b3575050565b601f0160209004905f5260205f2090810190610a1191905b808211156144de575f81556001016144cb565b5090565b5f5f83601f8401126144f2575f5ffd5b50813567ffffffffffffffff811115614509575f5ffd5b602083019150836020828501011115614520575f5ffd5b9250929050565b5f5f60208385031215614538575f5ffd5b823567ffffffffffffffff81111561454e575f5ffd5b61455a858286016144e2565b90969095509350505050565b5f60208284031215614576575f5ffd5b5035919050565b5f5f5f6040848603121561458f575f5ffd5b83356002811061459d575f5ffd5b9250602084013567ffffffffffffffff8111156145b8575f5ffd5b6145c4868287016144e2565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610a11575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715614642576146426145f2565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561468f5761468f6145f2565b604052919050565b5f67ffffffffffffffff8211156146b0576146b06145f2565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f606082840312156146ec575f5ffd5b6146f461461f565b90508135614701816145d1565b81526020820135614711816145d1565b6020820152604082013567ffffffffffffffff81111561472f575f5ffd5b8201601f8101841361473f575f5ffd5b803561475261474d82614697565b614648565b818152856020838501011115614766575f5ffd5b816020840160208301375f6020838301015280604085015250505092915050565b5f5f60408385031215614798575f5ffd5b82356147a3816145d1565b9150602083013567ffffffffffffffff8111156147be575f5ffd5b6147ca858286016146dc565b9150509250929050565b67ffffffffffffffff81168114610a11575f5ffd5b5f602082840312156147f9575f5ffd5b8135610bcd816147d4565b5f60208284031215614814575f5ffd5b8135610bcd816145d1565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610bcd602083018461481f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156148ba575f5ffd5b8151610bcd816145d1565b600181811c908216806148d957607f821691505b602082108103614910577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111561203957805f5260205f20601f840160051c8101602085101561493b5750805b601f840160051c820191505b818110156108ff575f8155600101614947565b815167ffffffffffffffff811115614974576149746145f2565b6149888161498284546148c5565b84614916565b6020601f8211600181146149d9575f83156149a35750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556108ff565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614a265787850151825560209485019460019092019101614a06565b5084821015614a6257868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614a81575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156111bc576111bc614a88565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f6040830151606080840152610edd608084018261481f565b818103818111156111bc576111bc614a88565b5f60208284031215614b45575f5ffd5b8151610bcd816147d4565b80518015158114614b5f575f5ffd5b919050565b5f60208284031215614b74575f5ffd5b610bcd82614b50565b5f60208284031215614b8d575f5ffd5b815161ffff81168114610bcd575f5ffd5b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f614c10608083018461481f565b9695505050505050565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614b5f575f5ffd5b5f614c5661474d84614697565b9050828152838383011115614c69575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f60808587031215614c92575f5ffd5b614c9b85614c1a565b93506020850151614cab816145d1565b6040860151909350614cbc816145d1565b606086015190925067ffffffffffffffff811115614cd8575f5ffd5b8501601f81018713614ce8575f5ffd5b614cf787825160208401614c49565b91505092959194509250565b5f60208284031215614d13575f5ffd5b815167ffffffffffffffff811115614d29575f5ffd5b820160608185031215614d3a575f5ffd5b614d4261461f565b8151614d4d816145d1565b81526020820151614d5d816145d1565b6020820152604082015167ffffffffffffffff811115614d7b575f5ffd5b80830192505084601f830112614d8f575f5ffd5b614d9e85835160208501614c49565b6040820152949350505050565b67ffffffffffffffff81811683821601908111156111bc576111bc614a88565b80820281158282048414176111bc576111bc614a88565b5f82614e15577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e4a57614e4a614a88565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b80516020808301519190811015614910577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b81811015614f2d57835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101614ef9565b505060409390930193909352509392505050565b5f6080828403128015614f52575f5ffd5b506040516080810167ffffffffffffffff81118282101715614f7657614f766145f2565b6040528251614f84816145d1565b81526020830151614f94816145d1565b602082015260408381015190820152614faf60608401614b50565b60608201529392505050565b5f60048410614ff1577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b83825260406020830152610edd604083018461481f565b5f60208284031215615018575f5ffd5b815167ffffffffffffffff81111561502e575f5ffd5b8201601f8101841361503e575f5ffd5b805167ffffffffffffffff811115615058576150586145f2565b8060051b61506860208201614648565b91825260208184018101929081019087841115615083575f5ffd5b6020850194505b838510156150b1578451925061509f836145d1565b8282526020948501949091019061508a565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152826040820152608060608201525f614c10608083018461481f565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f614c10608083018461481f565b5f60208284031215615156575f5ffd5b610bcd82614c1a56";
|
|
84520
|
+
var _bytecode15 = "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b61551c806100ca5f395ff3fe608060405260043610610178575f3560e01c806379dda585116100d157806393b13cb71161007c578063a5a4103111610057578063a5a41031146103f5578063df9a9fe614610409578063e847abdd14610428575f5ffd5b806393b13cb7146103a157806395d600c8146103c257806397fb7c1e146103d6575f5ffd5b80638120f0ba116100ac5780638120f0ba1461034257806383f3f0dc1461036f5780638c625b061461038e575f5ffd5b806379dda585146102fc5780637c9669ac146103105780637d0567c414610323575f5ffd5b80635803909f11610131578063686f76841161010c578063686f7684146102b657806369d5f38a146102c9578063706b8e09146102e8575f5ffd5b80635803909f1461023f5780635becd24a1461025e578063657e45e81461027d575f5ffd5b806317c957091161016157806317c95709146101c4578063280a47c7146102185780633e9491a21461022b575f5ffd5b80630ef1be5f1461017c5780631278076a1461019d575b5f5ffd5b348015610187575f5ffd5b5061019b6101963660046147ff565b61043c565b005b3480156101a8575f5ffd5b506101b16104f1565b6040519081526020015b60405180910390f35b3480156101cf575f5ffd5b506101b16101de36600461483e565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b61019b610226366004614855565b610566565b348015610236575f5ffd5b506101b161063c565b34801561024a575f5ffd5b506101b161025936600461483e565b6106a6565b348015610269575f5ffd5b5061019b61027836600461483e565b61071e565b348015610288575f5ffd5b50610291610898565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b61019b6102c4366004614a82565b6108a6565b3480156102d4575f5ffd5b5061019b6102e336600461483e565b6108ea565b3480156102f3575f5ffd5b506101b16109f9565b348015610307575f5ffd5b50610291610a02565b61019b61031e36600461483e565b610a41565b34801561032e575f5ffd5b5061019b61033d366004614acf565b610a84565b34801561034d575f5ffd5b50610356610b3e565b60405167ffffffffffffffff90911681526020016101bb565b34801561037a575f5ffd5b5061019b610389366004614aff565b610b47565b61019b61039c366004614acf565b610bc1565b3480156103ac575f5ffd5b506103b5610bf4565b6040516101bb9190614b66565b3480156103cd575f5ffd5b506101b1610bfe565b3480156103e1575f5ffd5b5061019b6103f036600461483e565b610c27565b348015610400575f5ffd5b506101b1610d11565b348015610414575f5ffd5b5061019b610423366004614acf565b610d81565b348015610433575f5ffd5b50610291610e5a565b610444610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104af576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104ed82828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f5392505050565b5050565b5f5f6105466105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610f7e565b9050805f03610556575f91505090565b61055f8161108c565b5092915050565b3068929eee149b4bd2126854036105845763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8360018111156105a3576105a3614b78565b036105c6575f6105b582840184614acf565b90506105c0816110aa565b5061062b565b60018360018111156105da576105da614b78565b03610602575f806105ed83850185614a82565b915091506105fb8282611190565b505061062b565b61062b7f3be01969000000000000000000000000000000000000000000000000000000006112b8565b3868929eee149b4bd2126855505050565b5f5f6106466112c0565b905073ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461069f5761069973ffffffffffffffffffffffffffffffffffffffff821630611317565b91505090565b4791505090565b5f5f6106fc836106f77f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61134a565b9050805f0361070d57505f92915050565b6107168161108c565b509392505050565b610726610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461078c576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b5f6107b57fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b905080158015906107c557508082115b156107f3576107f37fc3983b91000000000000000000000000000000000000000000000000000000006112b8565b6107fc826113c8565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60782905560405182907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b5f6108a16112c0565b905090565b3068929eee149b4bd2126854036108c45763ab143c065f526004601cfd5b3068929eee149b4bd21268556108da8282611190565b3868929eee149b4bd21268555050565b6108f2610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610958576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156109e0575f5ffd5b505af11580156109f2573d5f5f3e3d5ffd5b5050505050565b5f6108a161146c565b5f6108a17fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd212685403610a5f5763ab143c065f526004601cfd5b3068929eee149b4bd2126855610a753382611537565b3868929eee149b4bd212685550565b610a8c610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610afb81611740565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f14b7cb0621729ad169b573c8b04f2ba383bf36b3724f2e2809df566f45df16ec905f90a250565b5f6108a1611956565b610b4f610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bb5576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610bbe81611a16565b50565b3068929eee149b4bd212685403610bdf5763ab143c065f526004601cfd5b3068929eee149b4bd2126855610a75816110aa565b60606108a1611a91565b5f6108a17fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610c2f610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c95576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610ce981610ce47f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b611b43565b610bbe817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f5f610d616105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050805f03610d71575f91505090565b610d7a8161108c565b9392505050565b610d89610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610def576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610df881611b74565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6108a17fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610f2f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106999190614bb5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104ed8282614c5f565b5f5f610fbe7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b905073ffffffffffffffffffffffffffffffffffffffff8116610fe357505f92915050565b5f610fec61146c565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018290526024810186905290915073ffffffffffffffffffffffffffffffffffffffff831690635cf4ee91906044015b602060405180830381865afa158015611060573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110849190614d76565b949350505050565b5f5f61109783611cad565b90506110a38184614dba565b9150915091565b6110b381611da9565b5f6110bc611e9f565b90505f6110c76112c0565b90505f6110d8828460200151611f65565b90505f61111f856111197f8c625b06d047a4c1ca46cdab06b7e14ce79b486f06c67a1b220fa942669ca49b338960405180602001604052805f81525061202a565b8461205c565b90505f5f61113387338589602001516121f3565b915091508061118757811561117d57856040015161115b5761115683885f61226e565b611165565b6111658387612290565b61116f83886123d7565b61117887612427565b611187565b6111878388612536565b50505050505050565b61119982611da9565b5f6111a2611e9f565b90505f6111ad6112c0565b90505f6111be828460200151611f65565b90506111ca858561258d565b5f846040516020016111dc9190614dcd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f6112448861123e8433838861202a565b8661205c565b90505f5f6112588a33858b602001516121f3565b91509150806112ac5781156112a25787604001516112805761127b838b5f61226e565b61128a565b61128a8389612612565b611294838b6123d7565b61129d8a612427565b6112ac565b6112ac838b612536565b50505050505050505050565b805f5260045ffd5b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1680611314575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b90565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f8281527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60960205260408120547fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090826113a385610f7e565b9050815f036113b65792506113c2915050565b81811890821102189150505b92915050565b6113d0610a02565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611418573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143c9190614d76565b811115610bbe57610bbe7fc3983b91000000000000000000000000000000000000000000000000000000006112b8565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff16156114c35760070154919050565b6114cb610a02565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611513573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106999190614d76565b5f611541826127a5565b905073ffffffffffffffffffffffffffffffffffffffff8116611587576115877f5fbd5717000000000000000000000000000000000000000000000000000000006112b8565b5f611590611956565b67ffffffffffffffff1690505f6115ec846106f77f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f6115f76112c0565b9050815f036116325761162073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3088346127b0565b61162a8584612802565b505050505050565b5f61163c8361108c565b5090507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8316016116dd57348111156116ad576116ad7f34a7a93d000000000000000000000000000000000000000000000000000000006112b8565b6116b78284612930565b505f6116c38234614e27565b905080156116d7576116d783308a846127b0565b5061172c565b3415611715576040517fbf39a02400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117208288836129bb565b61172a8284612930565b505b6117368582612a9f565b6111878685612802565b73ffffffffffffffffffffffffffffffffffffffff8116158061178c575073ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b6118f057604080517f4645455f545950452e4d454d4245525348495000000000000000000000000000602080830191909152606084901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603383015282516027818403018152604790920190925280519101205f6118407fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1663146516df836040518263ffffffff1660e01b815260040161187a91815260200190565b60e060405180830381865afa158015611895573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118b99190614e87565b905080608001516118ed576118ed7f212be89d000000000000000000000000000000000000000000000000000000006112b8565b50505b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f819003611314576119aa610a02565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a19190614f27565b611a1f81612b3d565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c018054611ac290614bd0565b80601f0160208091040260200160405190810160405280929190818152602001828054611aee90614bd0565b8015611b395780601f10611b1057610100808354040283529160200191611b39565b820191905f5260205f20905b815481529060010190602001808311611b1c57829003601f168201915b5050505050905090565b808210156104ed576104ed7fccc9aa2e000000000000000000000000000000000000000000000000000000006112b8565b73ffffffffffffffffffffffffffffffffffffffff8116611bb857611bb87f0e88bf4b000000000000000000000000000000000000000000000000000000006112b8565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611c5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c809190614f42565b610bbe57610bbe7f0e88bf4b000000000000000000000000000000000000000000000000000000006112b8565b5f5f611cbf611cba6112c0565b612c33565b9050611cff7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fecad870d000000000000000000000000000000000000000000000000000000008152600481018390525f602482018190526044820186905260806064830152608482015273ffffffffffffffffffffffffffffffffffffffff919091169063ecad870d9060a401602060405180830381865afa158015611d85573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7a9190614d76565b73ffffffffffffffffffffffffffffffffffffffff8116611ded57611ded7f5fbd5717000000000000000000000000000000000000000000000000000000006112b8565b5f611e167fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611e71575080611e6e7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104ed576104ed7f7efcdb49000000000000000000000000000000000000000000000000000000006112b8565b611ec260405180606001604052805f81526020015f81526020015f151581525090565b5f611f0e7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611f1a82610f7e565b90505f611f2561146c565b9050815f03611f345750505090565b81845282811115611f455750505090565b5f611f4f8361108c565b5060016040870152602086015250929392505050565b5f7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff841601611fdb5781341015611fd457611fd47fb1296a8a000000000000000000000000000000000000000000000000000000006112b8565b50346113c2565b3415612013576040517fbf39a02400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115612024576120248333846129bb565b50919050565b6060848484846040516020016120439493929190614f5b565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b1660208201524360348201525f90819060540160405160208183030381529060405280519060200120905061213b8161210f83886120c286612d0e565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040812080549294507f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092909190829061219c90614bd0565b905011156121cd576121cd7ff82e65c3000000000000000000000000000000000000000000000000000000006112b8565b806121d88782614c5f565b5084156121e9576121e98486612d54565b5050509392505050565b5f5f5f6122346040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250612dbc565b90506122408188612f54565b156122525760015f9250925050612265565b61225f818888888861316f565b92509250505b94509492505050565b61227883826132fc565b6122818361335a565b61228b8282612a9f565b505050565b5f5f61229b846133b2565b80546122a690614bd0565b80601f01602080910402602001604051908101604052809291908181526020018280546122d290614bd0565b801561231d5780601f106122f45761010080835404028352916020019161231d565b820191905f5260205f20905b81548152906001019060200180831161230057829003601f168201915b5050505050806020019051810190612335919061503c565b50919350909150507fffffffff0000000000000000000000000000000000000000000000000000000082167f8c625b0600000000000000000000000000000000000000000000000000000000146123af576123af7fda6153bd000000000000000000000000000000000000000000000000000000006112b8565b6123c16123ba6112c0565b8451612930565b506123d18482856020015161226e565b50505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040902054801561228b5761241483826132fc565b61228b61241f6112c0565b3084846127b0565b5f6124507f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005490565b90506124d4816124a46105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b6124df826001613405565b6124f0816124eb611956565b612802565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b61253f8261335a565b61254982826123d7565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b8173ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614806125e45750602081015173ffffffffffffffffffffffffffffffffffffffff1633145b156104ed576104ed7f5fbd5717000000000000000000000000000000000000000000000000000000006112b8565b5f5f5f5f61261f866133b2565b805461262a90614bd0565b80601f016020809104026020016040519081016040528092919081815260200182805461265690614bd0565b80156126a15780601f10612678576101008083540402835291602001916126a1565b820191905f5260205f20905b81548152906001019060200180831161268457829003601f168201915b50505050508060200190518101906126b9919061503c565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f76840000000000000000000000000000000000000000000000000000000014612735576127357fda6153bd000000000000000000000000000000000000000000000000000000006112b8565b5f8180602001905181019061274a91906150c0565b90505f6127556112c0565b905061276481885f0151612930565b508151875161277491839161341e565b61278c8186846020015185604001518b5f0151613541565b61279b8885896020015161226e565b5050505050505050565b5f6113c28183613641565b80156123d15773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146127f8576127f38484848461364c565b6123d1565b6123d182826136e0565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff16801580159061284857505f5b15612882576040517ff7d2131a000000000000000000000000000000000000000000000000000000008152600481018590526024016104a6565b5f428267ffffffffffffffff1611156128a65761289f8483615168565b90506128b3565b6128b08442615168565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b5f61293a82611cad565b90506113c28330612949610a02565b73ffffffffffffffffffffffffffffffffffffffff16634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612991573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129b59190614bb5565b846127b0565b7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8416016129fd57505050565b5f612a1e73ffffffffffffffffffffffffffffffffffffffff851630611317565b9050612a4273ffffffffffffffffffffffffffffffffffffffff8516843085613700565b5f612a6373ffffffffffffffffffffffffffffffffffffffff861630611317565b905082612a708383614e27565b10156109f2576109f27fb1296a8a000000000000000000000000000000000000000000000000000000006112b8565b805f03612aaa575050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612ac76112c0565b73ffffffffffffffffffffffffffffffffffffffff1614612ae6575050565b5f612aef613762565b90505f612b1e825f85604051602001612b0a91815260200190565b604051602081830303815290604052613835565b9050612b2b82858361388b565b6123d182612b37610e99565b8361388b565b5f612b46610a02565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b8e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bb29190614f27565b67ffffffffffffffff1690508167ffffffffffffffff165f03612bf857612bf87f82323d2e000000000000000000000000000000000000000000000000000000006112b8565b808267ffffffffffffffff1611156104ed576104ed7f82323d2e000000000000000000000000000000000000000000000000000000006112b8565b5f7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff831601612c9857507f7bf182fc45d83735258e0907e7fbae2ced2b54cf5d36bf3f9c30097bec3e88f5919050565b604080517f4645455f545950452e4d454d4245525348495000000000000000000000000000602080830191909152606085901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603383015282516027818403018152604790920190925280519101206113c2565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0060208190526040822080549083612d4983615188565b909155509392505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291612db2908490614dba565b9091555050505050565b60605f612dc761390a565b80519091505f8167ffffffffffffffff811115612de657612de66148ca565b604051908082528060200260200182016040528015612e4957816020015b612e366040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612e045790505b50855160208701209091505f90815b84811015612f48575f5f5f5f612e868a8681518110612e7957612e796151bf565b6020026020010151613935565b93509350935093505f5b8251811015612f385786838281518110612eac57612eac6151bf565b60200260200101518051906020012003612f30576040518060a001604052808c8881518110612edd57612edd6151bf565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110612f1457612f146151bf565b602002602001018190525087612f2990615188565b9750612f38565b600101612e90565b5050505050806001019050612e58565b50508152949350505050565b5f5f612f5f83613a21565b90505f5b845181101561316557848181518110612f7e57612f7e6151bf565b60200260200101516040015161315d575f5b858281518110612fa257612fa26151bf565b6020026020010151608001515181101561315b575f868381518110612fc957612fc96151bf565b6020026020010151608001518281518110612fe657612fe66151bf565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613039573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061305d9190614f42565b15801561314057508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e537061636500000000000000000000000000000000000000000000008152506040516020016130cb91906151ec565b6040516020818303038152906040526130e390615202565b6040518463ffffffff1660e01b815260040161310193929190615244565b602060405180830381865afa15801561311c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131409190614f42565b156131525760019450505050506113c2565b50600101612f90565b505b600101612f63565b505f949350505050565b5f8080805b88518110156132ed5788818151811061318f5761318f6151bf565b6020026020010151604001516132e5575f5b8982815181106131b3576131b36151bf565b602002602001015160800151518110156132e3575f8a83815181106131da576131da6151bf565b60200260200101516080015182815181106131f7576131f76151bf565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561324a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061326e9190614f42565b156132da57836132ab576132a28a8a8a848f8881518110613291576132916151bf565b60200260200101515f01518c613c95565b600193506132d5565b6132d58a8a8a848f88815181106132c4576132c46151bf565b60200260200101515f01515f613c95565b600194505b506001016131a1565b505b600101613174565b505f9250509550959350505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291612db2908490614e27565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906104ed905f614770565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604081207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0090610d7a565b6104ed828260405180602001604052805f815250613d85565b73ffffffffffffffffffffffffffffffffffffffff821661343e57505050565b5f61347d7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529190911690635cb4f54890602401608060405180830381865afa1580156134e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061350d91906152af565b905080604001515f036135205750505050565b5f61352f838360400151613e4d565b90506109f285308460200151846127b0565b8151156135b1575f61355283613e99565b604081015190915073ffffffffffffffffffffffffffffffffffffffff16158061357e57506020810151155b1561358957506109f2565b5f613598838360200151613e4d565b90506135aa87308460400151846127b0565b50506109f2565b73ffffffffffffffffffffffffffffffffffffffff8316156109f2578373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156109f2575f6136338261362e7faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b613e4d565b905061162a863086846127b0565b5f610d7a8383613f41565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156123d15773ffffffffffffffffffffffffffffffffffffffff831630146136bf576127f373ffffffffffffffffffffffffffffffffffffffff8516848484613700565b6123d173ffffffffffffffffffffffffffffffffffffffff8516838361407c565b6104ed73ffffffffffffffffffffffffffffffffffffffff8316826140cf565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f51141661375457803d873b15171061375457637939f4245f526004601cfd5b505f60605260405250505050565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa158015613811573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a19190614bb5565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde906110459086908690600401615329565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b1580156138f8575f5ffd5b505af1158015611187573d5f5f3e3d5ffd5b60606108a17f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd016140e8565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081208054606092918391829190819061397790614bd0565b80601f01602080910402602001604051908101604052809291908181526020018280546139a390614bd0565b80156139ee5780601f106139c5576101008083540402835291602001916139ee565b820191905f5260205f20905b8154815290600101906020018083116139d157829003601f168201915b5050505060018301549196505060ff169350613a0c600282016140f4565b9250613a17816141cb565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015613ab8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613afd9190810190615376565b905080515f03613c6e576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613b74573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b989190614bb5565b905073ffffffffffffffffffffffffffffffffffffffff811615613c6c576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613c24573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613c699190810190615376565b91505b505b613c77816141da565b92506001835101835283604051526020604051016040525050919050565b613ca08684836141e8565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005f8681526001828101602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117815560030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055905080546040805173ffffffffffffffffffffffffffffffffffffffff89811660208301526111879316918a91899188918891016040516020818303038152906040526142a1565b613d8f83836143b5565b73ffffffffffffffffffffffffffffffffffffffff83163b1561228b577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b613de45f86838060010194508661456a565b613e1a576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613dd257817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0054146109f2575f5ffd5b5f612710821115613e8257613e827f197f196200000000000000000000000000000000000000000000000000000000836146dc565b612710613e8f838561542a565b610d7a9190615441565b613ed16040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b5f81831161404a57505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c01000000000000000000000000000000000000000000000000000000008316900361404857815f036140425780548310614001576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115614002575b506113c2565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f5114166140c557803d853b1517106140c5576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104ed5763b12d13eb5f526004601cfd5b60605f610d7a836146e8565b6060815f01805480602002602001604051908101604052809291908181526020015f905b828210156141c0578382905f5260205f2001805461413590614bd0565b80601f016020809104026020016040519081016040528092919081815260200182805461416190614bd0565b80156141ac5780601f10614183576101008083540402835291602001916141ac565b820191905f5260205f20905b81548152906001019060200180831161418f57829003601f168201915b505050505081526020019060010190614118565b505050509050919050565b60605f610d7a836004016140e8565b60606113c261131483614741565b34811115614219576142197ff4e95a41000000000000000000000000000000000000000000000000000000006112b8565b73ffffffffffffffffffffffffffffffffffffffff831661425d5761425d7f99ef0388000000000000000000000000000000000000000000000000000000006112b8565b73ffffffffffffffffffffffffffffffffffffffff821661228b5761228b7f4bb7c205000000000000000000000000000000000000000000000000000000006112b8565b8115614334576040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a908490614301908990899089908890600401615479565b5f604051808303818588803b158015614318575f5ffd5b505af115801561432a573d5f5f3e3d5ffd5b505050505061162a565b6040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a9061438c908890889088908790600401615479565b5f604051808303815f87803b1580156143a3575f5ffd5b505af11580156112ac573d5f5f3e3d5ffd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f829003614411576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146145085780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa46001016144d2565b50815f03614542576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906145c49033908990889088906004016154b3565b6020604051808303815f875af192505050801561461c575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261461991810190615503565b60015b614691573d808015614649576040519150601f19603f3d011682016040523d82523d5f602084013e61464e565b606091505b5080515f03614689576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611084565b815f528060045260245ffd5b6060815f0180548060200260200160405190810160405280929190818152602001828054801561473557602002820191905f5260205f20905b815481526020019060010190808311614721575b50505050509050919050565b604051815160051b8101602001818084035b808201518252816020019150828203614753575060405250919050565b50805461477c90614bd0565b5f825580601f1061478b575050565b601f0160209004905f5260205f2090810190610bbe91905b808211156147b6575f81556001016147a3565b5090565b5f5f83601f8401126147ca575f5ffd5b50813567ffffffffffffffff8111156147e1575f5ffd5b6020830191508360208285010111156147f8575f5ffd5b9250929050565b5f5f60208385031215614810575f5ffd5b823567ffffffffffffffff811115614826575f5ffd5b614832858286016147ba565b90969095509350505050565b5f6020828403121561484e575f5ffd5b5035919050565b5f5f5f60408486031215614867575f5ffd5b833560028110614875575f5ffd5b9250602084013567ffffffffffffffff811115614890575f5ffd5b61489c868287016147ba565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bbe575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561491a5761491a6148ca565b60405290565b60405160e0810167ffffffffffffffff8111828210171561491a5761491a6148ca565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561498a5761498a6148ca565b604052919050565b5f67ffffffffffffffff8211156149ab576149ab6148ca565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f606082840312156149e7575f5ffd5b6149ef6148f7565b905081356149fc816148a9565b81526020820135614a0c816148a9565b6020820152604082013567ffffffffffffffff811115614a2a575f5ffd5b8201601f81018413614a3a575f5ffd5b8035614a4d614a4882614992565b614943565b818152856020838501011115614a61575f5ffd5b816020840160208301375f6020838301015280604085015250505092915050565b5f5f60408385031215614a93575f5ffd5b8235614a9e816148a9565b9150602083013567ffffffffffffffff811115614ab9575f5ffd5b614ac5858286016149d7565b9150509250929050565b5f60208284031215614adf575f5ffd5b8135610d7a816148a9565b67ffffffffffffffff81168114610bbe575f5ffd5b5f60208284031215614b0f575f5ffd5b8135610d7a81614aea565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610d7a6020830184614b1a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b8051614bb0816148a9565b919050565b5f60208284031215614bc5575f5ffd5b8151610d7a816148a9565b600181811c90821680614be457607f821691505b602082108103612024577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f82111561228b57805f5260205f20601f840160051c81016020851015614c405750805b601f840160051c820191505b818110156109f2575f8155600101614c4c565b815167ffffffffffffffff811115614c7957614c796148ca565b614c8d81614c878454614bd0565b84614c1b565b6020601f821160018114614cde575f8315614ca85750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556109f2565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614d2b5787850151825560209485019460019092019101614d0b565b5084821015614d6757868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614d86575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156113c2576113c2614d8d565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f60408301516060808401526110846080840182614b1a565b818103818111156113c2576113c2614d8d565b805161ffff81168114614bb0575f5ffd5b805160038110614bb0575f5ffd5b80518015158114614bb0575f5ffd5b80516fffffffffffffffffffffffffffffffff81168114614bb0575f5ffd5b5f60e0828403128015614e98575f5ffd5b50614ea1614920565b8251614eac816148a9565b8152602083015165ffffffffffff81168114614ec6575f5ffd5b6020820152614ed760408401614e3a565b6040820152614ee860608401614e4b565b6060820152614ef960808401614e59565b6080820152614f0a60a08401614e68565b60a0820152614f1b60c08401614ba5565b60c08201529392505050565b5f60208284031215614f37575f5ffd5b8151610d7a81614aea565b5f60208284031215614f52575f5ffd5b610d7a82614e59565b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f614fcd6080830184614b1a565b9695505050505050565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614bb0575f5ffd5b5f615013614a4884614992565b9050828152838383011115615026575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f6080858703121561504f575f5ffd5b61505885614fd7565b93506020850151615068816148a9565b6040860151909350615079816148a9565b606086015190925067ffffffffffffffff811115615095575f5ffd5b8501601f810187136150a5575f5ffd5b6150b487825160208401615006565b91505092959194509250565b5f602082840312156150d0575f5ffd5b815167ffffffffffffffff8111156150e6575f5ffd5b8201606081850312156150f7575f5ffd5b6150ff6148f7565b815161510a816148a9565b8152602082015161511a816148a9565b6020820152604082015167ffffffffffffffff811115615138575f5ffd5b80830192505084601f83011261514c575f5ffd5b61515b85835160208501615006565b6040820152949350505050565b67ffffffffffffffff81811683821601908111156113c2576113c2614d8d565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036151b8576151b8614d8d565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b80516020808301519190811015612024577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561529b57835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101615267565b505060409390930193909352509392505050565b5f60808284031280156152c0575f5ffd5b506040516080810167ffffffffffffffff811182821017156152e4576152e46148ca565b60405282516152f2816148a9565b81526020830151615302816148a9565b60208201526040838101519082015261531d60608401614e59565b60608201529392505050565b5f6004841061535f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b838252604060208301526110846040830184614b1a565b5f60208284031215615386575f5ffd5b815167ffffffffffffffff81111561539c575f5ffd5b8201601f810184136153ac575f5ffd5b805167ffffffffffffffff8111156153c6576153c66148ca565b8060051b6153d660208201614943565b918252602081840181019290810190878411156153f1575f5ffd5b6020850194505b8385101561541f578451925061540d836148a9565b828252602094850194909101906153f8565b979650505050505050565b80820281158282048414176113c2576113c2614d8d565b5f82615474577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152826040820152608060608201525f614fcd6080830184614b1a565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f614fcd6080830184614b1a565b5f60208284031215615513575f5ffd5b610d7a82614fd756";
|
|
84492
84521
|
var isSuperArgs15 = (xs) => xs.length > 1;
|
|
84493
84522
|
var MembershipFacet__factory = class extends import_ethers34.ContractFactory {
|
|
84494
84523
|
constructor(...args) {
|
|
@@ -85490,6 +85519,11 @@ var _abi38 = [
|
|
|
85490
85519
|
type: "function",
|
|
85491
85520
|
name: "withdraw",
|
|
85492
85521
|
inputs: [
|
|
85522
|
+
{
|
|
85523
|
+
name: "currency",
|
|
85524
|
+
type: "address",
|
|
85525
|
+
internalType: "address"
|
|
85526
|
+
},
|
|
85493
85527
|
{
|
|
85494
85528
|
name: "account",
|
|
85495
85529
|
type: "address",
|
|
@@ -89628,6 +89662,12 @@ var { abi: abi44, connect: connect43 } = Towns__factory;
|
|
|
89628
89662
|
// ../web3/dist/space-dapp/SpaceDapp.js
|
|
89629
89663
|
var logger9 = dlogger("csb:SpaceDapp:debug");
|
|
89630
89664
|
|
|
89665
|
+
// ../web3/dist/space/entitlements/XChainConfig.js
|
|
89666
|
+
var log4 = dlogger("csb:XChainConfig");
|
|
89667
|
+
|
|
89668
|
+
// ../web3/dist/space/entitlements/validateAndParseXChainConfig.js
|
|
89669
|
+
var log5 = dlogger("csb:validateAndParseXChainConfig");
|
|
89670
|
+
|
|
89631
89671
|
// ../web3/dist/test-helpers/LocalhostWeb3Provider.js
|
|
89632
89672
|
var import_ethers46 = __toESM(require_lib32(), 1);
|
|
89633
89673
|
|
|
@@ -90513,6 +90553,7 @@ var deployments_default = {
|
|
|
90513
90553
|
var envKey = {
|
|
90514
90554
|
RIVER_ENV: ["RIVER_ENV"],
|
|
90515
90555
|
BASE_CHAIN_ID: ["BASE_CHAIN_ID"],
|
|
90556
|
+
BASE_ADDRESSES_ACCOUNT_MODULES: ["BASE_ADDRESSES_ACCOUNT_MODULES", "ACCOUNT_MODULES_ADDRESS"],
|
|
90516
90557
|
BASE_ADDRESSES_APP_REGISTRY: ["BASE_ADDRESSES_APP_REGISTRY", "BASE_REGISTRY_ADDRESS"],
|
|
90517
90558
|
BASE_ADDRESSES_SPACE_FACTORY: ["BASE_ADDRESSES_SPACE_FACTORY", "SPACE_FACTORY_ADDRESS"],
|
|
90518
90559
|
BASE_ADDRESSES_SPACE_OWNER: ["BASE_ADDRESSES_SPACE_OWNER", "SPACE_OWNER_ADDRESS"],
|
|
@@ -90566,6 +90607,7 @@ function makeWeb3Deployment(optionalEnv, requiredEnv) {
|
|
|
90566
90607
|
base: {
|
|
90567
90608
|
chainId: parseInt(requiredEnv(envKey.BASE_CHAIN_ID)),
|
|
90568
90609
|
addresses: {
|
|
90610
|
+
accountModules: optionalEnv(envKey.BASE_ADDRESSES_ACCOUNT_MODULES),
|
|
90569
90611
|
baseRegistry: requiredEnv(envKey.BASE_ADDRESSES_APP_REGISTRY),
|
|
90570
90612
|
spaceFactory: requiredEnv(envKey.BASE_ADDRESSES_SPACE_FACTORY),
|
|
90571
90613
|
spaceOwner: requiredEnv(envKey.BASE_ADDRESSES_SPACE_OWNER),
|
|
@@ -91433,19 +91475,19 @@ async function scanBlockchainForXchainEvents(initialBlockNum, blocksToScan) {
|
|
|
91433
91475
|
toBlock: initialBlockNum.valueOf() + BigInt(blocksToScan),
|
|
91434
91476
|
strict: true
|
|
91435
91477
|
});
|
|
91436
|
-
for (const
|
|
91478
|
+
for (const log6 of v1RequestLogs) {
|
|
91437
91479
|
if (Object.keys(blockCache).length > maxCacheSize) {
|
|
91438
91480
|
blockCache = {};
|
|
91439
91481
|
}
|
|
91440
|
-
const roleId = Number(
|
|
91441
|
-
const transactionId =
|
|
91442
|
-
const selectedNodes = [...
|
|
91443
|
-
const blockNumber =
|
|
91444
|
-
const walletAddress =
|
|
91445
|
-
const resolverAddress =
|
|
91446
|
-
const spaceAddress =
|
|
91482
|
+
const roleId = Number(log6.args.roleId);
|
|
91483
|
+
const transactionId = log6.args.transactionId;
|
|
91484
|
+
const selectedNodes = [...log6.args.selectedNodes];
|
|
91485
|
+
const blockNumber = log6.blockNumber;
|
|
91486
|
+
const walletAddress = log6.args.callerAddress;
|
|
91487
|
+
const resolverAddress = log6.args.contractAddress;
|
|
91488
|
+
const spaceAddress = log6.args.contractAddress;
|
|
91447
91489
|
const version4 = "v1";
|
|
91448
|
-
const txHash =
|
|
91490
|
+
const txHash = log6.transactionHash;
|
|
91449
91491
|
await scanForResponsesAndResults(
|
|
91450
91492
|
{
|
|
91451
91493
|
roleId,
|
|
@@ -91470,19 +91512,19 @@ async function scanBlockchainForXchainEvents(initialBlockNum, blocksToScan) {
|
|
|
91470
91512
|
toBlock: initialBlockNum.valueOf() + BigInt(blocksToScan),
|
|
91471
91513
|
strict: true
|
|
91472
91514
|
});
|
|
91473
|
-
for (const
|
|
91515
|
+
for (const log6 of v2RequestLogs) {
|
|
91474
91516
|
if (Object.keys(blockCache).length > maxCacheSize) {
|
|
91475
91517
|
blockCache = {};
|
|
91476
91518
|
}
|
|
91477
|
-
const roleId = Number(
|
|
91478
|
-
const transactionId =
|
|
91479
|
-
const selectedNodes = [...
|
|
91480
|
-
const blockNumber =
|
|
91481
|
-
const walletAddress =
|
|
91482
|
-
const resolverAddress =
|
|
91483
|
-
const spaceAddress =
|
|
91519
|
+
const roleId = Number(log6.args.roleId);
|
|
91520
|
+
const transactionId = log6.args.transactionId;
|
|
91521
|
+
const selectedNodes = [...log6.args.selectedNodes];
|
|
91522
|
+
const blockNumber = log6.blockNumber;
|
|
91523
|
+
const walletAddress = log6.args.walletAddress;
|
|
91524
|
+
const resolverAddress = log6.args.resolverAddress;
|
|
91525
|
+
const spaceAddress = log6.args.spaceAddress;
|
|
91484
91526
|
const version4 = "v2";
|
|
91485
|
-
const txHash =
|
|
91527
|
+
const txHash = log6.transactionHash;
|
|
91486
91528
|
await scanForResponsesAndResults(
|
|
91487
91529
|
{
|
|
91488
91530
|
roleId,
|