@augumented-finance/protocol-v1
Version:
Augmented Protocol smart contracts
969 lines • 50 kB
JavaScript
"use strict";
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
Object.defineProperty(exports, "__esModule", { value: true });
exports.StakeTokenFactory = void 0;
const contracts_1 = require("@ethersproject/contracts");
class StakeTokenFactory extends contracts_1.ContractFactory {
constructor(signer) {
super(_abi, _bytecode, signer);
}
deploy(overrides) {
return super.deploy(overrides || {});
}
getDeployTransaction(overrides) {
return super.getDeployTransaction(overrides || {});
}
attach(address) {
return super.attach(address);
}
connect(signer) {
return super.connect(signer);
}
static connect(address, signerOrProvider) {
return new contracts_1.Contract(address, _abi, signerOrProvider);
}
}
exports.StakeTokenFactory = StakeTokenFactory;
const _abi = [
{
inputs: [],
stateMutability: "nonpayable",
type: "constructor",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "spender",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "Approval",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "user",
type: "address",
},
{
indexed: false,
internalType: "uint32",
name: "blockNumber",
type: "uint32",
},
],
name: "Cooldown",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "from",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "Donated",
type: "event",
},
{
anonymous: false,
inputs: [
{
components: [
{
internalType: "contract IMarketAccessController",
name: "stakeController",
type: "address",
},
{
internalType: "contract IERC20",
name: "stakedToken",
type: "address",
},
{
internalType: "uint32",
name: "cooldownBlocks",
type: "uint32",
},
{
internalType: "uint32",
name: "unstakeBlocks",
type: "uint32",
},
{
internalType: "contract ITransferHook",
name: "governance",
type: "address",
},
],
indexed: false,
internalType: "struct StakeTokenConfig",
name: "params",
type: "tuple",
},
{
indexed: false,
internalType: "string",
name: "tokenName",
type: "string",
},
{
indexed: false,
internalType: "string",
name: "tokenSymbol",
type: "string",
},
{
indexed: false,
internalType: "uint8",
name: "decimals",
type: "uint8",
},
],
name: "Initialized",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "from",
type: "address",
},
{
indexed: false,
internalType: "address",
name: "to",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
{
indexed: false,
internalType: "uint256",
name: "underlyingAmount",
type: "uint256",
},
],
name: "Redeem",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "to",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "Slashed",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: false,
internalType: "address",
name: "from",
type: "address",
},
{
indexed: false,
internalType: "address",
name: "to",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "Staked",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "from",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "to",
type: "address",
},
{
indexed: false,
internalType: "uint256",
name: "value",
type: "uint256",
},
],
name: "Transfer",
type: "event",
},
{
inputs: [],
name: "COOLDOWN_BLOCKS",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "DOMAIN_SEPARATOR",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "EIP712_REVISION",
outputs: [
{
internalType: "bytes",
name: "",
type: "bytes",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "PERMIT_TYPEHASH",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "REVISION",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "pure",
type: "function",
},
{
inputs: [],
name: "UNDERLYING_ASSET_ADDRESS",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "UNSTAKE_WINDOW_BLOCKS",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
name: "_nonces",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "spender",
type: "address",
},
],
name: "allowance",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "approve",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "account",
type: "address",
},
],
name: "balanceOf",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "cooldown",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "decimals",
outputs: [
{
internalType: "uint8",
name: "",
type: "uint8",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "subtractedValue",
type: "uint256",
},
],
name: "decreaseAllowance",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "donate",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "exchangeRate",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "holder",
type: "address",
},
],
name: "getCooldown",
outputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "getMaxSlashablePercentage",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "uint32",
name: "fromCooldownBlock",
type: "uint32",
},
{
internalType: "uint256",
name: "amountToReceive",
type: "uint256",
},
{
internalType: "address",
name: "toAddress",
type: "address",
},
{
internalType: "uint256",
name: "toBalance",
type: "uint256",
},
],
name: "getNextCooldownBlocks",
outputs: [
{
internalType: "uint32",
name: "",
type: "uint32",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "addedValue",
type: "uint256",
},
],
name: "increaseAllowance",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
components: [
{
internalType: "contract IMarketAccessController",
name: "stakeController",
type: "address",
},
{
internalType: "contract IERC20",
name: "stakedToken",
type: "address",
},
{
internalType: "uint32",
name: "cooldownBlocks",
type: "uint32",
},
{
internalType: "uint32",
name: "unstakeBlocks",
type: "uint32",
},
{
internalType: "contract ITransferHook",
name: "governance",
type: "address",
},
],
internalType: "struct StakeTokenConfig",
name: "params",
type: "tuple",
},
{
internalType: "string",
name: "name",
type: "string",
},
{
internalType: "string",
name: "symbol",
type: "string",
},
{
internalType: "uint8",
name: "decimals",
type: "uint8",
},
],
name: "initialize",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "isPaused",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "isRedeemable",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "name",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "spender",
type: "address",
},
{
internalType: "uint256",
name: "value",
type: "uint256",
},
{
internalType: "uint256",
name: "deadline",
type: "uint256",
},
{
internalType: "uint8",
name: "v",
type: "uint8",
},
{
internalType: "bytes32",
name: "r",
type: "bytes32",
},
{
internalType: "bytes32",
name: "s",
type: "bytes32",
},
],
name: "permit",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "stakeAmount",
type: "uint256",
},
],
name: "redeem",
outputs: [
{
internalType: "uint256",
name: "stakeAmount_",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "underlyingAmount",
type: "uint256",
},
],
name: "redeemUnderlying",
outputs: [
{
internalType: "uint256",
name: "underlyingAmount_",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint32",
name: "cooldownBlocks",
type: "uint32",
},
{
internalType: "uint32",
name: "unstakeBlocks",
type: "uint32",
},
],
name: "setCooldown",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "uint256",
name: "percentageInRay",
type: "uint256",
},
],
name: "setMaxSlashablePercentage",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bool",
name: "paused",
type: "bool",
},
],
name: "setPaused",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "bool",
name: "redeemable",
type: "bool",
},
],
name: "setRedeemable",
outputs: [],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "destination",
type: "address",
},
{
internalType: "uint256",
name: "minAmount",
type: "uint256",
},
{
internalType: "uint256",
name: "maxAmount",
type: "uint256",
},
],
name: "slashUnderlying",
outputs: [
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "to",
type: "address",
},
{
internalType: "uint256",
name: "underlyingAmount",
type: "uint256",
},
],
name: "stake",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [],
name: "symbol",
outputs: [
{
internalType: "string",
name: "",
type: "string",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "totalSupply",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256",
},
],
stateMutability: "view",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "recipient",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "transfer",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
{
inputs: [
{
internalType: "address",
name: "sender",
type: "address",
},
{
internalType: "address",
name: "recipient",
type: "address",
},
{
internalType: "uint256",
name: "amount",
type: "uint256",
},
],
name: "transferFrom",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
stateMutability: "nonpayable",
type: "function",
},
];
const _bytecode = "0x60806040526000600e556000600f553480156200001b57600080fd5b5062000026620000e2565b6040518060400160405280600a81526020016929aa20a5a2afa9aa2aa160b11b8152506040518060400160405280600a81526020016929aa20a5a2afa9aa2aa160b11b815250600082828282828282600390805190602001906200008c929190620002f6565b508151620000a2906004906020850190620002f6565b506005805460ff191660ff9290921691909117905550620000c49050620000ef565b505050620000d8846200018b60201b60201c565b50505050620003ec565b620000ec6200037b565b90565b467f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6200011b62000240565b805160209182012060408051808201825260018152603160f81b90840152516200016d93927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918691309101620003c0565b60408051601f19818403018152919052805160209091012060065550565b8051600880546001600160a01b039283166001600160a01b0319918216179091556020830151600980549190931691161790556040810151600d805463ffffffff92831663ffffffff199091161790556060820151166200020357600d805463ffffffff60201b1916640a000000001790556200022e565b6060810151600d805463ffffffff9092166401000000000263ffffffff60201b199092169190911790555b600c546200023d57610bb8600c555b50565b6060620002576200025c60201b620004941760201c565b905090565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015620002ec5780601f10620002c057610100808354040283529160200191620002ec565b820191906000526020600020905b815481529060010190602001808311620002ce57829003601f168201915b5050505050905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200033957805160ff191683800117855562000369565b8280016001018555821562000369579182015b82811115620003695782518255916020019190600101906200034c565b5062000377929150620003a9565b5090565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b5b80821115620003775760008155600101620003aa565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b612f7380620003fc6000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c806374011f5611610130578063b16a19de116100b8578063dd62ed3e1161007c578063dd62ed3e1461044b578063dde43cba1461045e578063e320b40314610466578063f14faf6f14610479578063f34d96da1461048c57610227565b8063b16a19de146103f5578063b187bd261461040a578063b9844d8d14610412578063d354f24014610425578063d505accf1461043857610227565b806396294178116100ff57806396294178146103a1578063a457c2d7146103b4578063a9059cbb146103c7578063adc9772e146103da578063af920582146103ed57610227565b806374011f56146103765780637816037614610389578063787a08a61461039157806395d89b411461039957610227565b8063313ce567116101b357806339b84ecf1161018257806339b84ecf146103205780633ba0b9a914610340578063470148b714610348578063548313541461035b57806370a082311461036357610227565b8063313ce567146102dd5780633644e515146102f257806338907118146102fa578063395093511461030d57610227565b806318160ddd116101fa57806318160ddd1461029f5780631e9a6950146102a75780631ebbbef9146102ba57806323b872dd146102c257806330adf81f146102d557610227565b806306fdde031461022c578063095ea7b31461024a578063161952101461026a57806316c38b3c1461028a575b600080fd5b610234610494565b60405161024191906127d0565b60405180910390f35b61025d610258366004612366565b61052b565b604051610241919061273e565b61027d610278366004612391565b610549565b6040516102419190612749565b61029d6102983660046123c5565b6106af565b005b61027d61078c565b61027d6102b5366004612366565b610792565b61027d6107dd565b61025d6102d03660046122b8565b6107f1565b61027d610878565b6102e561089c565b6040516102419190612e1f565b61027d6108a5565b61029d6103083660046123c5565b6108ab565b61025d61031b366004612366565b6108f1565b61033361032e366004612264565b61093f565b6040516102419190612e0e565b61027d610960565b610333610356366004612555565b610a0f565b61027d610b2f565b61027d610371366004612264565b610b3b565b61029d610384366004612525565b610b56565b610234610ba7565b61029d610bc4565b610234610c4b565b61027d6103af366004612366565b610cac565b61025d6103c2366004612366565b610cf7565b61025d6103d5366004612366565b610d5f565b61027d6103e8366004612366565b610d73565b61025d610d89565b6103fd610d9a565b6040516102419190612674565b61025d610da9565b61027d610420366004612264565b610db9565b61029d61043336600461259c565b610dcb565b61029d6104463660046122f8565b610e29565b61027d610459366004612280565b610fbb565b61027d610fe6565b61029d6104743660046123fd565b610ff5565b61029d610487366004612525565b611113565b61027d611167565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105205780601f106104f557610100808354040283529160200191610520565b820191906000526020600020905b81548152906001019060200180831161050357829003601f168201915b505050505090505b90565b600061053f61053861116d565b8484611171565b5060015b92915050565b600061800061056c61055961116d565b6008546001600160a01b03169083611225565b6105915760405162461bcd60e51b8152600401610588906129cf565b60405180910390fd5b6009546040516370a0823160e01b81526000916001600160a01b0316906370a08231906105c2903090600401612674565b60206040518083038186803b1580156105da57600080fd5b505afa1580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610612919061253d565b9050600061062b600c548361123c90919063ffffffff16565b90508085111561063d57809350610641565b8493505b85841015610654576000935050506106a7565b60095461066b906001600160a01b031688866112b3565b7f4ed05e9673c26d2ed44f7ef6a7f2942df0ee3b5e1e17db4b99f9dcd261a339cd878560405161069c929190612688565b60405180910390a150505b509392505050565b6008546001600160a01b0316632500f2b66106c861116d565b6040518263ffffffff1660e01b81526004016106e49190612674565b60206040518083038186803b1580156106fc57600080fd5b505afa158015610710573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073491906123e1565b604051806040016040528060028152602001611b9b60f11b8152509061076d5760405162461bcd60e51b815260040161058891906127d0565b50600d8054911515600160401b0260ff60401b19909216919091179055565b60025490565b6000808211604051806040016040528060018152602001603160f81b815250906107cf5760405162461bcd60e51b815260040161058891906127d0565b506106a7338484600061130e565b600d54640100000000900463ffffffff1690565b60006107fe848484611562565b61086e8461080a61116d565b61086985604051806060016040528060288152602001612ef1602891396001600160a01b038a1660009081526001602052604081209061084861116d565b6001600160a01b031681526020810191909152604001600020549190611642565b611171565b5060019392505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60055460ff1690565b60065481565b6180006108b961055961116d565b6108d55760405162461bcd60e51b8152600401610588906129cf565b50600d805460ff60401b19169115600160401b02919091179055565b600061053f6108fe61116d565b84610869856001600061090f61116d565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061166e565b6001600160a01b03166000908152600b602052604090205463ffffffff1690565b60008061096b61078c565b90508061097d57506127109050610528565b6009546040516370a0823160e01b8152610a099183916001600160a01b03909116906370a08231906109b3903090600401612674565b60206040518083038186803b1580156109cb57600080fd5b505afa1580156109df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a03919061253d565b9061169a565b91505090565b6001600160a01b0382166000908152600b602052604081205463ffffffff1680610a3d576000915050610b27565b600d54600090610a6c9063ffffffff6401000000008204811691610a6691439181169061174f16565b9061174f565b90508163ffffffff16811115610a855760009150610af8565b8663ffffffff16811115610a97574396505b8163ffffffff168763ffffffff161015610ab357509050610b27565b610af5610ac0878661166e565b610aef610ad68763ffffffff8088169061179116565b610ae98a63ffffffff808e169061179116565b9061166e565b906117cb565b91505b506001600160a01b0384166000908152600b60205260409020805463ffffffff191663ffffffff831617905590505b949350505050565b600d5463ffffffff1690565b6001600160a01b031660009081526020819052604090205490565b6020610b6361055961116d565b610b7f5760405162461bcd60e51b8152600401610588906129cf565b612710821115610ba15760405162461bcd60e51b815260040161058890612c28565b50600c55565b604051806040016040528060018152602001603160f81b81525081565b610bcd33610b3b565b610be95760405162461bcd60e51b815260040161058890612998565b336000818152600b602052604090819020805463ffffffff19164363ffffffff81169190911790915590517fc606d47187d0dea01a7ca1a0d8abf6027f8841bf0f82fab363549489e139e2ce92610c419290916126a1565b60405180910390a1565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105205780601f106104f557610100808354040283529160200191610520565b6000808211604051806040016040528060018152602001603160f81b81525090610ce95760405162461bcd60e51b815260040161058891906127d0565b50610b27338460008561130e565b600061053f610d0461116d565b8461086985604051806060016040528060258152602001612f196025913960016000610d2e61116d565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611642565b600061053f610d6c61116d565b8484611562565b6000610d82338484600161180d565b5092915050565b600d54600160401b900460ff161590565b6009546001600160a01b031690565b600d54600160401b900460ff1690565b60076020526000908152604090205481565b6020610dd861055961116d565b610df45760405162461bcd60e51b8152600401610588906129cf565b50600d805463ffffffff9283166401000000000267ffffffff00000000199490931663ffffffff199091161792909216179055565b6001600160a01b038716610e4f5760405162461bcd60e51b815260040161058890612ab8565b83421115610e6f5760405162461bcd60e51b815260040161058890612a8c565b6001600160a01b0387166000908152600760209081526040808320546006549151909392610ec9917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918d918d918d9189918e9101612752565b60405160208183030381529060405280519060200120604051602001610ef0929190612659565b60405160208183030381529060405280519060200120905060018186868660405160008152602001604052604051610f2b94939291906127b2565b6020604051602081039080840390855afa158015610f4d573d6000803e3d6000fd5b505050602060405103516001600160a01b0316896001600160a01b031614610f875760405162461bcd60e51b81526004016105889061296d565b6001600160a01b0389166000908152600760205260409020600183019055610fb089898961199e565b505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6000610ff06119a9565b905090565b600160006110016119a9565b905060008061101084846119ae565b91509150806110f757600f849055604080516020601f8b01819004810282018101909252898152611091918b908b908190840183828082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284376000920191909152508a9250611a8c915050565b6110a86110a3368c90038c018c612493565b611acc565b6110b0611b80565b7f448ee687748dd548cd139a7fd4112c5aaa41081f88773b4bc39aa956270901d78a8a8a8a8a8a6040516110e996959493929190612d4e565b60405180910390a1600e8490555b8161110757600e8390556000600f555b50505050505050505050565b60095461112b906001600160a01b0316333084611c18565b7f2a01595cddf097c90216094025db714da3f4e5bd8877b56ba86a24ecead8e543338260405161115c929190612688565b60405180910390a150565b600c5490565b3390565b6001600160a01b0383166111975760405162461bcd60e51b815260040161058890612be4565b6001600160a01b0382166111bd5760405162461bcd60e51b815260040161058890612894565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611218908590612749565b60405180910390a3505050565b6000610b2782611236868686611c39565b90611cba565b6000821580611249575081155b1561125657506000610543565b81611388198161126257fe5b0483111560405180604001604052806002815260200161068760f31b8152509061129f5760405162461bcd60e51b815260040161058891906127d0565b50612710838302611388015b049392505050565b6113098363a9059cbb60e01b84846040516024016112d2929190612688565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611cc1565b505050565b600d546000908190600160401b900460ff161561133d5760405162461bcd60e51b8152600401610588906128d6565b6001600160a01b0386166000908152600b6020526040902054600d5463ffffffff918216916113729183919081169061166e16565b43116113905760405162461bcd60e51b815260040161058890612ca9565b600d5463ffffffff64010000000082048116916113be916113b79185919081169061166e16565b439061174f565b11156113dc5760405162461bcd60e51b815260040161058890612826565b60006113e788610b3b565b905085611427576114006113f9610960565b8790611da6565b9550808611156114225780955061141f611418610960565b879061123c565b94505b611441565b80861115611433578095505b61143e611418610960565b94505b61144b8887611e41565b85811415611477576001600160a01b0388166000908152600b60205260409020805463ffffffff191690555b600a546001600160a01b03161561150057600a546001600160a01b03166395a05254308a846114a582610b3b565b6114ad61078c565b6040518663ffffffff1660e01b81526004016114cd95949392919061270d565b600060405180830381600087803b1580156114e757600080fd5b505af11580156114fb573d6000803e3d6000fd5b505050505b600954611517906001600160a01b031688876112b3565b7f3f693fff038bb8a046aa76d9516190ac7444f7d69cf952c4cbdc086fdef2d6fc8888888860405161154c94939291906126e4565b60405180910390a1509396929550919350505050565b600061156d84610b3b565b9050826001600160a01b0316846001600160a01b03161461163157600061159384610b3b565b6001600160a01b0386166000908152600b602052604090205490915063ffffffff166115c181858785610a0f565b6001600160a01b0386166000908152600b60205260409020805463ffffffff191663ffffffff929092169190911790558383148015611605575063ffffffff811615155b1561162e576001600160a01b0386166000908152600b60205260409020805463ffffffff191690555b50505b61163c848484611f23565b50505050565b600081848411156116665760405162461bcd60e51b815260040161058891906127d0565b505050900390565b6000828201838110156116935760405162461bcd60e51b815260040161058890612901565b9392505050565b604080518082019091526002815261035360f41b6020820152600090826116d45760405162461bcd60e51b815260040161058891906127d0565b50826116e257506000610543565b604080518082019091526002815261068760f31b60208201527e068db8bac710cb295e9e1b089a027525460aa64c2f837b4a2339c0ebedfa4384111561173b5760405162461bcd60e51b815260040161058891906127d0565b50816127108402600182901c01816112ab57fe5b600061169383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611642565b6000826117a057506000610543565b828202828482816117ad57fe5b04146116935760405162461bcd60e51b8152600401610588906129fd565b600061169383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612038565b6000808311604051806040016040528060018152602001603160f81b8152509061184a5760405162461bcd60e51b815260040161058891906127d0565b50600061185685610b3b565b905061186a611863610960565b8590611da6565b91506118796000838784610a0f565b6001600160a01b0386166000908152600b60205260409020805463ffffffff191663ffffffff9290921691909117905582156118c7576009546118c7906001600160a01b0316873087611c18565b6118d1858361206f565b600a546001600160a01b03161561195a57600a546001600160a01b03166395a052543087846118ff82610b3b565b61190761078c565b6040518663ffffffff1660e01b815260040161192795949392919061270d565b600060405180830381600087803b15801561194157600080fd5b505af1158015611955573d6000803e3d6000fd5b505050505b7f5dac0c1b1112564a045ba943c9d50270893e8e826c49be8e7073adc713ab7bd786868660405161198d939291906126c0565b60405180910390a150949350505050565b611309838383611171565b600190565b600080600084116119d15760405162461bcd60e51b81526004016105889061285d565b828411156119f15760405162461bcd60e51b815260040161058890612b20565b6000600f54118015611a04575082600e54105b91508180611a155750611a15612123565b80611a215750600e5483115b611a3d5760405162461bcd60e51b815260040161058890612a3e565b8115611a645783600f5411611a645760405162461bcd60e51b815260040161058890612b9c565b600e548411611a81578115611a79576001600f555b506001611a85565b5060005b9250929050565b8251611a9f90600390602086019061216c565b508151611ab390600490602085019061216c565b506005805460ff191660ff929092169190911790555050565b8051600880546001600160a01b039283166001600160a01b0319918216179091556020830151600980549190931691161790556040810151600d805463ffffffff92831663ffffffff19909116179055606082015116611b4357600d805467ffffffff000000001916640a00000000179055611b6f565b6060810151600d805463ffffffff9092166401000000000267ffffffff00000000199092169190911790555b600c54611b7d57610bb8600c555b50565b467f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f611baa612129565b805160209182012060408051808201825260018152603160f81b9084015251611bfa93927fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6918691309101612786565b60408051601f19818403018152919052805160209091012060065550565b61163c846323b872dd60e01b8585856040516024016112d2939291906126c0565b60405163cc8b29c160e01b81526000906001600160a01b0385169063cc8b29c190611c6a9086908690600401612688565b60206040518083038186803b158015611c8257600080fd5b505afa158015611c96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b27919061253d565b9081161490565b611cd3826001600160a01b0316612133565b611cef5760405162461bcd60e51b815260040161058890612ce0565b60006060836001600160a01b031683604051611d0b919061263d565b6000604051808303816000865af19150503d8060008114611d48576040519150601f19603f3d011682016040523d82523d6000602084013e611d4d565b606091505b509150915081611d6f5760405162461bcd60e51b815260040161058890612938565b80511561163c5780806020019051810190611d8a91906123e1565b61163c5760405162461bcd60e51b815260040161058890612c5f565b604080518082019091526002815261035360f41b602082015260009082611de05760405162461bcd60e51b815260040161058891906127d0565b50600182901c61271081190484111560405180604001604052806002815260200161068760f31b81525090611e285760405162461bcd60e51b815260040161058891906127d0565b50826127108502820181611e3857fe5b04949350505050565b6001600160a01b038216611e675760405162461bcd60e51b815260040161058890612adf565b611e7382600083611309565b611eb081604051806060016040528060228152602001612ea9602291396001600160a01b0385166000908152602081905260409020549190611642565b6001600160a01b038316600090815260208190526040902055600254611ed6908261174f565b6002556040516000906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f17908590612749565b60405180910390a35050565b6001600160a01b038316611f495760405162461bcd60e51b815260040161058890612b57565b6001600160a01b038216611f6f5760405162461bcd60e51b8152600401610588906127e3565b611f7a838383611309565b611fb781604051806060016040528060268152602001612ecb602691396001600160a01b0386166000908152602081905260409020549190611642565b6001600160a01b038085166000908152602081905260408082209390935590841681522054611fe6908261166e565b6001600160a01b0380841660008181526020819052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611218908590612749565b600081836120595760405162461bcd60e51b815260040161058891906127d0565b50600083858161206557fe5b0495945050505050565b6001600160a01b0382166120955760405162461bcd60e51b815260040161058890612d17565b6120a160008383611309565b6002546120ae908261166e565b6002556001600160a01b0382166000908152602081905260409020546120d4908261166e565b6001600160a01b0383166000818152602081905260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f17908590612749565b303b1590565b6060610ff0610494565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610b27575050151592915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106121ad57805160ff19168380011785556121da565b828001600101855582156121da579182015b828111156121da5782518255916020019190600101906121bf565b506121e69291506121ea565b5090565b5b808211156121e657600081556001016121eb565b60008083601f840112612210578182fd5b50813567ffffffffffffffff811115612227578182fd5b602083019150836020828501011115611a8557600080fd5b803563ffffffff8116811461054357600080fd5b803560ff8116811461054357600080fd5b600060208284031215612275578081fd5b813561169381612e73565b60008060408385031215612292578081fd5b823561229d81612e73565b915060208301356122ad81612e73565b809150509250929050565b6000806000606084860312156122cc578081fd5b83356122d781612e73565b925060208401356122e781612e73565b929592945050506040919091013590565b600080600080600080600060e0888a031215612312578283fd5b873561231d81612e73565b9650602088013561232d81612e73565b9550604088013594506060880135935061234a8960808a01612253565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215612378578182fd5b823561238381612e73565b946020939093013593505050565b6000806000606084860312156123a5578283fd5b83356123b081612e73565b95602085013595506040909401359392505050565b6000602082840312156123d6578081fd5b813561169381612e88565b6000602082840312156123f2578081fd5b815161169381612e88565b600080600080600080868803610100811215612417578283fd5b60a0811215612424578283fd5b5086955060a087013567ffffffffffffffff80821115612442578384fd5b61244e8a838b016121ff565b909750955060c0890135915080821115612466578384fd5b5061247389828a016121ff565b909450925061248790508860e08901612253565b90509295509295509295565b600060a082840312156124a4578081fd5b60405160a0810181811067ffffffffffffffff821117156124c3578283fd5b60405282356124d181612e73565b815260208301356124e181612e73565b602082015260408301356124f481612e96565b6040820152612506846060850161223f565b6060820152608083013561251981612e73565b60808201529392505050565b600060208284031215612536578081fd5b5035919050565b60006020828403121561254e578081fd5b5051919050565b6000806000806080858703121561256a578182fd5b843561257581612e96565b935060208501359250604085013561258c81612e73565b9396929550929360600135925050565b600080604083850312156125ae578182fd5b6125b8848461223f565b91506125c7846020850161223f565b90509250929050565b600081518084526125e8816020860160208601612e47565b601f01601f19169290920160200192915050565b6001600160a01b03169052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b63ffffffff169052565b6000825161264f818460208701612e47565b9190910192915050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392909216825263ffffffff16602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b6001600160a01b03958616815293909416602084015260408301919091526060820152608081019190915260a00190565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b60006020825261169360208301846125d0565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252601b908201527f53544b5f554e5354414b455f57494e444f575f46494e49534845440000000000604082015260600190565b6020808252601e908201527f696e636f727265637420696e697469616c697a6572207265766973696f6e0000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526011908201527014d512d7d4915111515357d4105554d151607a1b604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252818101527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604082015260600190565b602080825260119082015270494e56414c49445f5349474e415455524560781b604082015260600190565b6020808252601f908201527f53544b5f494e56414c49445f42414c414e43455f4f4e5f434f4f4c444f574e00604082015260600190565b6020808252601490820152731858d8d95cdcc81a5cc81c995cdd1c9a58dd195960621b604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252602e908201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560408201526d195b881a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526012908201527124a72b20a624a22fa2ac2824a920aa24a7a760711b604082015260600190565b6020808252600d908201526c24a72b20a624a22fa7aba722a960991b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b6020808252601b908201527f696e636f727265637420636f6e7472616374207265766973696f6e0000000000604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526028908201527f696e636f7272656374206f72646572206f662063616c6c7320746f20696e697460408201526769616c697a65727360c01b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f53544b5f4558434553534956455f534c4153485f504354000000000000000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b60208082526019908201527f53544b5f494e53554646494349454e545f434f4f4c444f574e00000000000000604082015260600190565b6020808252601f908201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b60006101008835612d5e81612e73565b6001600160a01b03908116845260208a013590612d7a82612e73565b1660208401526040890135612d8e81612e96565b63ffffffff166040840152612da660608a018a612e3a565b612db36060850182612633565b50612dc160808a018a612e2d565b612dce60808501826125fc565b508060a0840152612de2818401888a612609565b905082810360c0840152612df7818688612609565b91505060ff831660e0830152979650505050505050565b63ffffffff91909116815260200190565b60ff91909116815260200190565b6000823561169381612e73565b6000823561169381612e96565b60005b83811015612e62578181015183820152602001612e4a565b8381111561163c5750506000910152565b6001600160a01b0381168114611b7d57600080fd5b8015158114611b7d57600080fd5b63ffffffff81168114611b7d57600080fdfe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202c13390ded47956f9aa1b3e0e43d549dfc59eadf80936be759dc93140594ddf064736f6c634300060c0033";
//# sourceMappi