{
  "_format": "hh-sol-artifact-1",
  "contractName": "SwapsImplLocal",
  "sourceName": "contracts/swaps/connectors/testnet/SwapsImplLocal.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "admin",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "affiliateFeePercent",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "affiliateRewardsHeld",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "affiliateTradingTokenFeePercent",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "affiliatesReferrerBalances",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "affiliatesUserReferrer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "borrowerNonce",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "borrowerOrders",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "lockedAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "interestRate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "minLoanTerm",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxLoanTerm",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "createdTimestamp",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expirationTimestamp",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "borrowingFeePercent",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "borrowingFeeTokensHeld",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "borrowingFeeTokensPaid",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "delegatedManagers",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "feeRebatePercent",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "feesController",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "sourceTokenAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "destTokenAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "sourceTokenAmount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "unused",
          "type": "address"
        }
      ],
      "name": "internalExpectedRate",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "sourceTokenAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "destTokenAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "sourceTokenAmount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "unused",
          "type": "address"
        }
      ],
      "name": "internalExpectedReturn",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "sourceTokenAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "destTokenAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "returnToSenderAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "minSourceTokenAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxSourceTokenAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "requiredDestTokenAmount",
          "type": "uint256"
        }
      ],
      "name": "internalSwap",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "destTokenAmountReceived",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "sourceTokenAmountUsed",
          "type": "uint256"
        }
      ],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isOwner",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "lenderInterest",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "principalTotal",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "owedPerDay",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "owedTotal",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "paidTotal",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "updatedTimestamp",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "lenderOrders",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "lockedAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "interestRate",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "minLoanTerm",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxLoanTerm",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "createdTimestamp",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expirationTimestamp",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "lendingFeePercent",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "lendingFeeTokensHeld",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "lendingFeeTokensPaid",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "liquidationIncentivePercent",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "loanInterest",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "owedPerDay",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "depositTotal",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "updatedTimestamp",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "loanParams",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "active",
          "type": "bool"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "loanToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "collateralToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "minInitialMargin",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maintenanceMargin",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxLoanTerm",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "loanPoolToUnderlying",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "loans",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "loanParamsId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "pendingTradesId",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "active",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "principal",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "collateral",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "startTimestamp",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "endTimestamp",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "startMargin",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "startRate",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "borrower",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "lender",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "lockedSOVAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "name": "logicTargets",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "maxDisagreement",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "maxSwapSize",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "minReferralsToPayout",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "pause",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "priceFeeds",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "protocolAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "protocolTokenAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "protocolTokenHeld",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "protocolTokenPaid",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "rolloverBaseReward",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "rolloverFlexFeePercent",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "sourceBuffer",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "sovTokenAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "sovrynSwapContractRegistryAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "specialRebates",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "supportedTokens",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "swapsImpl",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "tradingFeePercent",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "tradingFeeTokensHeld",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "tradingFeeTokensPaid",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "underlyingToLoanPool",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "userNotFirstTradeFlag",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "wrbtcToken",
      "outputs": [
        {
          "internalType": "contract IWrbtcERC20",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040526001600055678ac7230489e80000601555670214e8348c4f000060185567013fbe85edc90000601b55674563918244f40000602055674563918244f40000602155674563918244f400006027556127106028556802b5e3af16b1880000602955650f478e084000602b5567016345785d8a0000602c556802b5e3af16b1880000602f5560036035556801158e460913d0000060395560006100a96100fc60201b60201c565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610100565b3390565b6119648061010f6000396000f3fe6080604052600436106103505760003560e01c80638dc48ba5116101c6578063cb6eacd1116100f7578063f0e085f511610095578063f6ddc8b31161006f578063f6ddc8b314610c69578063f706b1f214610c7e578063f851a44014610c93578063fc9249cc14610a8557610350565b8063f0e085f514610c0a578063f2fde38b14610c1f578063f589a3e714610c5457610350565b8063d473c2da116100d1578063d473c2da14610b98578063d485045e14610bad578063e8f6276414610be0578063edab119f14610bf557610350565b8063cb6eacd114610ace578063cd5d808d14610b48578063d288208c14610b8357610350565b8063b30643d911610164578063ba4861e91161013e578063ba4861e9146109a8578063bdee453c146109bd578063c4a90815146109f0578063c8c8f39514610a8557610350565b8063b30643d91461092d578063b7e1524114610960578063b9cffa3e1461099357610350565b8063959083d3116101a0578063959083d3146108d9578063acc04348146108ee578063ae0a853014610903578063afe840091461091857610350565b80638dc48ba51461085e5780638f32d59b1461089157806392d894f8146108a657610350565b80634203e395116102a05780636e6637301161023e57806378d849ed1161021857806378d849ed1461080a5780637a8faeb81461081f5780638456cb59146108345780638da5cb5b1461084957610350565b80636e663730146107ad5780637420ca3e146107e0578063742e6798146107f557610350565b8063569fc1fb1161027a578063569fc1fb146106b7578063574442cc146106ff57806362fff3f61461071457806368c4ac261461077a57610350565b80634203e3951461065a5780634699f8461461068d5780634f28cac2146106a257610350565b8063255ee8441161030d5780633432423c116102e75780633432423c146105825780633452d2d4146105bb5780633fca506e146105ee5780634115a2b61461062157610350565b8063255ee844146104ed5780632a324027146105585780632f4707641461056d57610350565b8063065d810f146103555780630676c1b7146103c157806317548b79146103f25780631b7bde7414610426578063218b39c61461047357806324cc5749146104a6575b600080fd5b34801561036157600080fd5b5061038e6004803603604081101561037857600080fd5b506001600160a01b038135169060200135610ca8565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b3480156103cd57600080fd5b506103d6610ce8565b604080516001600160a01b039092168252519081900360200190f35b3480156103fe57600080fd5b506103d66004803603602081101561041557600080fd5b50356001600160e01b031916610cf7565b34801561043257600080fd5b506104616004803603604081101561044957600080fd5b506001600160a01b0381358116916020013516610d12565b60408051918252519081900360200190f35b34801561047f57600080fd5b506103d66004803603602081101561049657600080fd5b50356001600160a01b0316610d2f565b3480156104b257600080fd5b506104d9600480360360208110156104c957600080fd5b50356001600160a01b0316610d4a565b604080519115158252519081900360200190f35b61053f600480360360e081101561050357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135610d5f565b6040805192835260208301919091528051918290030190f35b34801561056457600080fd5b50610461610fe9565b34801561057957600080fd5b50610461610fef565b34801561058e57600080fd5b5061038e600480360360408110156105a557600080fd5b506001600160a01b038135169060200135610ff5565b3480156105c757600080fd5b50610461600480360360208110156105de57600080fd5b50356001600160a01b0316611035565b3480156105fa57600080fd5b506104616004803603602081101561061157600080fd5b50356001600160a01b0316611047565b34801561062d57600080fd5b506104d96004803603604081101561064457600080fd5b50803590602001356001600160a01b0316611059565b34801561066657600080fd5b506104616004803603602081101561067d57600080fd5b50356001600160a01b0316611079565b34801561069957600080fd5b5061046161108b565b3480156106ae57600080fd5b50610461611091565b3480156106c357600080fd5b506106e1600480360360208110156106da57600080fd5b5035611097565b60408051938452602084019290925282820152519081900360600190f35b34801561070b57600080fd5b506104616110b8565b34801561072057600080fd5b5061074f6004803603604081101561073757600080fd5b506001600160a01b03813581169160200135166110be565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561078657600080fd5b506104d96004803603602081101561079d57600080fd5b50356001600160a01b03166110f8565b3480156107b957600080fd5b506103d6600480360360208110156107d057600080fd5b50356001600160a01b031661110d565b3480156107ec57600080fd5b506103d6611128565b34801561080157600080fd5b50610461611137565b34801561081657600080fd5b506103d661113d565b34801561082b57600080fd5b5061046161114c565b34801561084057600080fd5b506104d9611152565b34801561085557600080fd5b506103d661115b565b34801561086a57600080fd5b506103d66004803603602081101561088157600080fd5b50356001600160a01b031661116a565b34801561089d57600080fd5b506104d9611185565b3480156108b257600080fd5b50610461600480360360208110156108c957600080fd5b50356001600160a01b03166111ab565b3480156108e557600080fd5b506104616111bd565b3480156108fa57600080fd5b506104616111c3565b34801561090f57600080fd5b506104616111c9565b34801561092457600080fd5b506103d66111cf565b34801561093957600080fd5b506104616004803603602081101561095057600080fd5b50356001600160a01b03166111de565b34801561096c57600080fd5b506104616004803603602081101561098357600080fd5b50356001600160a01b03166111f0565b34801561099f57600080fd5b506103d6611202565b3480156109b457600080fd5b506103d6611211565b3480156109c957600080fd5b50610461600480360360208110156109e057600080fd5b50356001600160a01b0316611220565b3480156109fc57600080fd5b50610a1a60048036036020811015610a1357600080fd5b5035611232565b604080519c8d5260208d019b909b528b8b019990995296151560608b015260808a019590955260a089019390935260c088019190915260e08701526101008601526101208501526001600160a01b039081166101408501521661016083015251908190036101800190f35b348015610a9157600080fd5b5061046160048036036080811015610aa857600080fd5b506001600160a01b038135811691602081013582169160408201359160600135166112a4565b348015610ada57600080fd5b50610af860048036036020811015610af157600080fd5b5035611353565b6040805198895296151560208901526001600160a01b0395861688880152938516606088015291909316608086015260a085019290925260c084019190915260e083015251908190036101000190f35b348015610b5457600080fd5b5061046160048036036040811015610b6b57600080fd5b506001600160a01b03813581169160200135166113a5565b348015610b8f57600080fd5b506103d66113c2565b348015610ba457600080fd5b506104616113d1565b348015610bb957600080fd5b5061046160048036036020811015610bd057600080fd5b50356001600160a01b03166113d7565b348015610bec57600080fd5b506103d66113e9565b348015610c0157600080fd5b506104616113f8565b348015610c1657600080fd5b506104616113fe565b348015610c2b57600080fd5b50610c5260048036036020811015610c4257600080fd5b50356001600160a01b0316611404565b005b348015610c6057600080fd5b50610461611458565b348015610c7557600080fd5b5061046161145e565b348015610c8a57600080fd5b506103d6611464565b348015610c9f57600080fd5b506103d6611473565b6009602090815260009283526040808420909152908252902080546001820154600283015460038401546004850154600590950154939492939192909186565b6031546001600160a01b031681565b6005602052600090815260409020546001600160a01b031681565b603b60209081526000928352604080842090915290825290205481565b6023602052600090815260409020546001600160a01b031681565b60326020526000908152604090205460ff1681565b600080876001600160a01b0316896001600160a01b03161415610dba576040805162461bcd60e51b815260206004820152600e60248201526d1cdbdd5c98d9480f4f4819195cdd60921b604482015290519081900360640190fd5b60025460408051630a7549df60e21b81526001600160a01b038c811660048301528b81166024830152825160009485949216926329d5277c926044808301939192829003018186803b158015610e0f57600080fd5b505afa158015610e23573d6000803e3d6000fd5b505050506040513d6040811015610e3957600080fd5b508051602090910151909250905084610e7657869250610e6f81610e63858563ffffffff61148216565b9063ffffffff6114e416565b9350610edb565b849350610e8d82610e63868463ffffffff61148216565b925086831115610edb576040805162461bcd60e51b815260206004820152601460248201527319195cdd105b5bdd5b9d081d1bdbc819dc99585d60621b604482015290519081900360640190fd5b60408051632770a7eb60e21b81523060048201526024810185905290516001600160a01b038d1691639dc29fac91604480830192600092919082900301818387803b158015610f2957600080fd5b505af1158015610f3d573d6000803e3d6000fd5b5050604080516340c10f1960e01b81523060048201526024810188905290516001600160a01b038e1693506340c10f199250604480830192600092919082900301818387803b158015610f8f57600080fd5b505af1158015610fa3573d6000803e3d6000fd5b505050506001600160a01b0388163014610fdb5785831015610fdb57610fdb6001600160a01b038c168985890363ffffffff61152616565b505097509795505050505050565b60185481565b601f5481565b6008602090815260009283526040808420909152908252902080546001820154600283015460038401546004850154600590950154939492939192909186565b601a6020526000908152604090205481565b602a6020526000908152604090205481565b600a60209081526000928352604080842090915290825290205460ff1681565b60166020526000908152604090205481565b60155481565b60295481565b600c6020526000908152604090208054600182015460029092015490919083565b602b5481565b600b602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401549293919290919085565b60266020526000908152604090205460ff1681565b6033602052600090815260409020546001600160a01b031681565b6003546001600160a01b031681565b60355481565b6002546001600160a01b031681565b601e5481565b603d5460ff1681565b6001546001600160a01b031690565b6022602052600090815260409020546001600160a01b031681565b6001546000906001600160a01b031661119c61157d565b6001600160a01b031614905090565b60176020526000908152604090205481565b602c5481565b602f5481565b60205481565b602d546001600160a01b031681565b601d6020526000908152604090205481565b601c6020526000908152604090205481565b6037546001600160a01b031681565b6004546001600160a01b031681565b60366020526000908152604090205481565b600660208190526000918252604090912080546001820154600283015460038401546004850154600586015496860154600787015460088801546009890154600a8a0154600b909a0154989a9799969860ff909616979496949593949293919290916001600160a01b0391821691168c565b60025460408051630a7549df60e21b81526001600160a01b038781166004830152868116602483015282516000948594859493909116926329d5277c9260448083019392829003018186803b1580156112fc57600080fd5b505afa158015611310573d6000803e3d6000fd5b505050506040513d604081101561132657600080fd5b508051602090910151909250905061134881610e63878563ffffffff61148216565b979650505050505050565b6007602052600090815260409020805460018201546002830154600384015460048501546005860154600690960154949560ff8516956101009095046001600160a01b03908116959481169493169288565b603c60209081526000928352604080842090915290825290205481565b6038546001600160a01b031681565b60275481565b60196020526000908152604090205481565b6014546001600160a01b031681565b601b5481565b60285481565b61140c611185565b61144c576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b61145581611581565b50565b60395481565b60215481565b602e546001600160a01b031681565b6030546001600160a01b031681565b600082611491575060006114de565b8282028284828161149e57fe5b04146114db5760405162461bcd60e51b81526004018080602001828103825260218152602001806118e56021913960400191505060405180910390fd5b90505b92915050565b60006114db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611622565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526115789084906116c4565b505050565b3390565b6001600160a01b0381166115c65760405162461bcd60e51b81526004018080602001828103825260268152602001806118bf6026913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600081836116ae5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561167357818101518382015260200161165b565b50505050905090810190601f1680156116a05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816116ba57fe5b0495945050505050565b6116d6826001600160a01b0316611882565b611727576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106117655780518252601f199092019160209182019101611746565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146117c7576040519150601f19603f3d011682016040523d82523d6000602084013e6117cc565b606091505b509150915081611823576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b80511561187c5780806020019051602081101561183f57600080fd5b505161187c5760405162461bcd60e51b815260040180806020018281038252602a815260200180611906602a913960400191505060405180910390fd5b50505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906118b657508115155b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820b09420dc7c58427c9d56d9af3e0a903f0b17df169d8cdcfca81d1b4dec4ec38764736f6c63430005110032",
  "deployedBytecode": "0x6080604052600436106103505760003560e01c80638dc48ba5116101c6578063cb6eacd1116100f7578063f0e085f511610095578063f6ddc8b31161006f578063f6ddc8b314610c69578063f706b1f214610c7e578063f851a44014610c93578063fc9249cc14610a8557610350565b8063f0e085f514610c0a578063f2fde38b14610c1f578063f589a3e714610c5457610350565b8063d473c2da116100d1578063d473c2da14610b98578063d485045e14610bad578063e8f6276414610be0578063edab119f14610bf557610350565b8063cb6eacd114610ace578063cd5d808d14610b48578063d288208c14610b8357610350565b8063b30643d911610164578063ba4861e91161013e578063ba4861e9146109a8578063bdee453c146109bd578063c4a90815146109f0578063c8c8f39514610a8557610350565b8063b30643d91461092d578063b7e1524114610960578063b9cffa3e1461099357610350565b8063959083d3116101a0578063959083d3146108d9578063acc04348146108ee578063ae0a853014610903578063afe840091461091857610350565b80638dc48ba51461085e5780638f32d59b1461089157806392d894f8146108a657610350565b80634203e395116102a05780636e6637301161023e57806378d849ed1161021857806378d849ed1461080a5780637a8faeb81461081f5780638456cb59146108345780638da5cb5b1461084957610350565b80636e663730146107ad5780637420ca3e146107e0578063742e6798146107f557610350565b8063569fc1fb1161027a578063569fc1fb146106b7578063574442cc146106ff57806362fff3f61461071457806368c4ac261461077a57610350565b80634203e3951461065a5780634699f8461461068d5780634f28cac2146106a257610350565b8063255ee8441161030d5780633432423c116102e75780633432423c146105825780633452d2d4146105bb5780633fca506e146105ee5780634115a2b61461062157610350565b8063255ee844146104ed5780632a324027146105585780632f4707641461056d57610350565b8063065d810f146103555780630676c1b7146103c157806317548b79146103f25780631b7bde7414610426578063218b39c61461047357806324cc5749146104a6575b600080fd5b34801561036157600080fd5b5061038e6004803603604081101561037857600080fd5b506001600160a01b038135169060200135610ca8565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b3480156103cd57600080fd5b506103d6610ce8565b604080516001600160a01b039092168252519081900360200190f35b3480156103fe57600080fd5b506103d66004803603602081101561041557600080fd5b50356001600160e01b031916610cf7565b34801561043257600080fd5b506104616004803603604081101561044957600080fd5b506001600160a01b0381358116916020013516610d12565b60408051918252519081900360200190f35b34801561047f57600080fd5b506103d66004803603602081101561049657600080fd5b50356001600160a01b0316610d2f565b3480156104b257600080fd5b506104d9600480360360208110156104c957600080fd5b50356001600160a01b0316610d4a565b604080519115158252519081900360200190f35b61053f600480360360e081101561050357600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c00135610d5f565b6040805192835260208301919091528051918290030190f35b34801561056457600080fd5b50610461610fe9565b34801561057957600080fd5b50610461610fef565b34801561058e57600080fd5b5061038e600480360360408110156105a557600080fd5b506001600160a01b038135169060200135610ff5565b3480156105c757600080fd5b50610461600480360360208110156105de57600080fd5b50356001600160a01b0316611035565b3480156105fa57600080fd5b506104616004803603602081101561061157600080fd5b50356001600160a01b0316611047565b34801561062d57600080fd5b506104d96004803603604081101561064457600080fd5b50803590602001356001600160a01b0316611059565b34801561066657600080fd5b506104616004803603602081101561067d57600080fd5b50356001600160a01b0316611079565b34801561069957600080fd5b5061046161108b565b3480156106ae57600080fd5b50610461611091565b3480156106c357600080fd5b506106e1600480360360208110156106da57600080fd5b5035611097565b60408051938452602084019290925282820152519081900360600190f35b34801561070b57600080fd5b506104616110b8565b34801561072057600080fd5b5061074f6004803603604081101561073757600080fd5b506001600160a01b03813581169160200135166110be565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b34801561078657600080fd5b506104d96004803603602081101561079d57600080fd5b50356001600160a01b03166110f8565b3480156107b957600080fd5b506103d6600480360360208110156107d057600080fd5b50356001600160a01b031661110d565b3480156107ec57600080fd5b506103d6611128565b34801561080157600080fd5b50610461611137565b34801561081657600080fd5b506103d661113d565b34801561082b57600080fd5b5061046161114c565b34801561084057600080fd5b506104d9611152565b34801561085557600080fd5b506103d661115b565b34801561086a57600080fd5b506103d66004803603602081101561088157600080fd5b50356001600160a01b031661116a565b34801561089d57600080fd5b506104d9611185565b3480156108b257600080fd5b50610461600480360360208110156108c957600080fd5b50356001600160a01b03166111ab565b3480156108e557600080fd5b506104616111bd565b3480156108fa57600080fd5b506104616111c3565b34801561090f57600080fd5b506104616111c9565b34801561092457600080fd5b506103d66111cf565b34801561093957600080fd5b506104616004803603602081101561095057600080fd5b50356001600160a01b03166111de565b34801561096c57600080fd5b506104616004803603602081101561098357600080fd5b50356001600160a01b03166111f0565b34801561099f57600080fd5b506103d6611202565b3480156109b457600080fd5b506103d6611211565b3480156109c957600080fd5b50610461600480360360208110156109e057600080fd5b50356001600160a01b0316611220565b3480156109fc57600080fd5b50610a1a60048036036020811015610a1357600080fd5b5035611232565b604080519c8d5260208d019b909b528b8b019990995296151560608b015260808a019590955260a089019390935260c088019190915260e08701526101008601526101208501526001600160a01b039081166101408501521661016083015251908190036101800190f35b348015610a9157600080fd5b5061046160048036036080811015610aa857600080fd5b506001600160a01b038135811691602081013582169160408201359160600135166112a4565b348015610ada57600080fd5b50610af860048036036020811015610af157600080fd5b5035611353565b6040805198895296151560208901526001600160a01b0395861688880152938516606088015291909316608086015260a085019290925260c084019190915260e083015251908190036101000190f35b348015610b5457600080fd5b5061046160048036036040811015610b6b57600080fd5b506001600160a01b03813581169160200135166113a5565b348015610b8f57600080fd5b506103d66113c2565b348015610ba457600080fd5b506104616113d1565b348015610bb957600080fd5b5061046160048036036020811015610bd057600080fd5b50356001600160a01b03166113d7565b348015610bec57600080fd5b506103d66113e9565b348015610c0157600080fd5b506104616113f8565b348015610c1657600080fd5b506104616113fe565b348015610c2b57600080fd5b50610c5260048036036020811015610c4257600080fd5b50356001600160a01b0316611404565b005b348015610c6057600080fd5b50610461611458565b348015610c7557600080fd5b5061046161145e565b348015610c8a57600080fd5b506103d6611464565b348015610c9f57600080fd5b506103d6611473565b6009602090815260009283526040808420909152908252902080546001820154600283015460038401546004850154600590950154939492939192909186565b6031546001600160a01b031681565b6005602052600090815260409020546001600160a01b031681565b603b60209081526000928352604080842090915290825290205481565b6023602052600090815260409020546001600160a01b031681565b60326020526000908152604090205460ff1681565b600080876001600160a01b0316896001600160a01b03161415610dba576040805162461bcd60e51b815260206004820152600e60248201526d1cdbdd5c98d9480f4f4819195cdd60921b604482015290519081900360640190fd5b60025460408051630a7549df60e21b81526001600160a01b038c811660048301528b81166024830152825160009485949216926329d5277c926044808301939192829003018186803b158015610e0f57600080fd5b505afa158015610e23573d6000803e3d6000fd5b505050506040513d6040811015610e3957600080fd5b508051602090910151909250905084610e7657869250610e6f81610e63858563ffffffff61148216565b9063ffffffff6114e416565b9350610edb565b849350610e8d82610e63868463ffffffff61148216565b925086831115610edb576040805162461bcd60e51b815260206004820152601460248201527319195cdd105b5bdd5b9d081d1bdbc819dc99585d60621b604482015290519081900360640190fd5b60408051632770a7eb60e21b81523060048201526024810185905290516001600160a01b038d1691639dc29fac91604480830192600092919082900301818387803b158015610f2957600080fd5b505af1158015610f3d573d6000803e3d6000fd5b5050604080516340c10f1960e01b81523060048201526024810188905290516001600160a01b038e1693506340c10f199250604480830192600092919082900301818387803b158015610f8f57600080fd5b505af1158015610fa3573d6000803e3d6000fd5b505050506001600160a01b0388163014610fdb5785831015610fdb57610fdb6001600160a01b038c168985890363ffffffff61152616565b505097509795505050505050565b60185481565b601f5481565b6008602090815260009283526040808420909152908252902080546001820154600283015460038401546004850154600590950154939492939192909186565b601a6020526000908152604090205481565b602a6020526000908152604090205481565b600a60209081526000928352604080842090915290825290205460ff1681565b60166020526000908152604090205481565b60155481565b60295481565b600c6020526000908152604090208054600182015460029092015490919083565b602b5481565b600b602090815260009283526040808420909152908252902080546001820154600283015460038401546004909401549293919290919085565b60266020526000908152604090205460ff1681565b6033602052600090815260409020546001600160a01b031681565b6003546001600160a01b031681565b60355481565b6002546001600160a01b031681565b601e5481565b603d5460ff1681565b6001546001600160a01b031690565b6022602052600090815260409020546001600160a01b031681565b6001546000906001600160a01b031661119c61157d565b6001600160a01b031614905090565b60176020526000908152604090205481565b602c5481565b602f5481565b60205481565b602d546001600160a01b031681565b601d6020526000908152604090205481565b601c6020526000908152604090205481565b6037546001600160a01b031681565b6004546001600160a01b031681565b60366020526000908152604090205481565b600660208190526000918252604090912080546001820154600283015460038401546004850154600586015496860154600787015460088801546009890154600a8a0154600b909a0154989a9799969860ff909616979496949593949293919290916001600160a01b0391821691168c565b60025460408051630a7549df60e21b81526001600160a01b038781166004830152868116602483015282516000948594859493909116926329d5277c9260448083019392829003018186803b1580156112fc57600080fd5b505afa158015611310573d6000803e3d6000fd5b505050506040513d604081101561132657600080fd5b508051602090910151909250905061134881610e63878563ffffffff61148216565b979650505050505050565b6007602052600090815260409020805460018201546002830154600384015460048501546005860154600690960154949560ff8516956101009095046001600160a01b03908116959481169493169288565b603c60209081526000928352604080842090915290825290205481565b6038546001600160a01b031681565b60275481565b60196020526000908152604090205481565b6014546001600160a01b031681565b601b5481565b60285481565b61140c611185565b61144c576040805162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b604482015290519081900360640190fd5b61145581611581565b50565b60395481565b60215481565b602e546001600160a01b031681565b6030546001600160a01b031681565b600082611491575060006114de565b8282028284828161149e57fe5b04146114db5760405162461bcd60e51b81526004018080602001828103825260218152602001806118e56021913960400191505060405180910390fd5b90505b92915050565b60006114db83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611622565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526115789084906116c4565b505050565b3390565b6001600160a01b0381166115c65760405162461bcd60e51b81526004018080602001828103825260268152602001806118bf6026913960400191505060405180910390fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b600081836116ae5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561167357818101518382015260200161165b565b50505050905090810190601f1680156116a05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816116ba57fe5b0495945050505050565b6116d6826001600160a01b0316611882565b611727576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106117655780518252601f199092019160209182019101611746565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146117c7576040519150601f19603f3d011682016040523d82523d6000602084013e6117cc565b606091505b509150915081611823576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b80511561187c5780806020019051602081101561183f57600080fd5b505161187c5760405162461bcd60e51b815260040180806020018281038252602a815260200180611906602a913960400191505060405180910390fd5b50505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708181148015906118b657508115155b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820b09420dc7c58427c9d56d9af3e0a903f0b17df169d8cdcfca81d1b4dec4ec38764736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
