{
  "contractName": "AragonProtocol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint64[2]",
          "name": "_termParams",
          "type": "uint64[2]"
        },
        {
          "internalType": "address[3]",
          "name": "_governors",
          "type": "address[3]"
        },
        {
          "internalType": "contract ERC20",
          "name": "_feeToken",
          "type": "address"
        },
        {
          "internalType": "uint256[3]",
          "name": "_fees",
          "type": "uint256[3]"
        },
        {
          "internalType": "uint64[5]",
          "name": "_roundStateDurations",
          "type": "uint64[5]"
        },
        {
          "internalType": "uint16[2]",
          "name": "_pcts",
          "type": "uint16[2]"
        },
        {
          "internalType": "uint64[4]",
          "name": "_roundParams",
          "type": "uint64[4]"
        },
        {
          "internalType": "uint256[2]",
          "name": "_appealCollateralParams",
          "type": "uint256[2]"
        },
        {
          "internalType": "uint256",
          "name": "_minActiveBalance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "holder",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "allowed",
          "type": "bool"
        }
      ],
      "name": "AutomaticWithdrawalsAllowedChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "previousGovernor",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "currentGovernor",
          "type": "address"
        }
      ],
      "name": "ConfigGovernorChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes4",
          "name": "signature",
          "type": "bytes4"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "target",
          "type": "address"
        }
      ],
      "name": "CustomFunctionSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "submitter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "evidence",
          "type": "bytes"
        }
      ],
      "name": "EvidenceSubmitted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "previousGovernor",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "currentGovernor",
          "type": "address"
        }
      ],
      "name": "FundsGovernorChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "previousTermId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "currentTermId",
          "type": "uint64"
        }
      ],
      "name": "Heartbeat",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "ModuleDisabled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "ModuleEnabled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "ModuleSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "previousGovernor",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "currentGovernor",
          "type": "address"
        }
      ],
      "name": "ModulesGovernorChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "fromTermId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "protocolConfigId",
          "type": "uint64"
        }
      ],
      "name": "NewConfig",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "previousStartTime",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "currentStartTime",
          "type": "uint64"
        }
      ],
      "name": "StartTimeDelayed",
      "type": "event"
    },
    {
      "payable": true,
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "_holder",
          "type": "address"
        }
      ],
      "name": "areWithdrawalsAllowedFor",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract IModuleCache[]",
          "name": "_modules",
          "type": "address[]"
        },
        {
          "internalType": "bytes32[]",
          "name": "_ids",
          "type": "bytes32[]"
        }
      ],
      "name": "cacheModules",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_newConfigGovernor",
          "type": "address"
        }
      ],
      "name": "changeConfigGovernor",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_newFundsGovernor",
          "type": "address"
        }
      ],
      "name": "changeFundsGovernor",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_newModulesGovernor",
          "type": "address"
        }
      ],
      "name": "changeModulesGovernor",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        }
      ],
      "name": "closeEvidencePeriod",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_possibleRulings",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "_metadata",
          "type": "bytes"
        }
      ],
      "name": "createDispute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_newFirstTermStartTime",
          "type": "uint64"
        }
      ],
      "name": "delayStartTime",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "disableModule",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "ejectFundsGovernor",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "ejectModulesGovernor",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "enableModule",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "ensureCurrentTerm",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "ensureCurrentTermRandomness",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_termId",
          "type": "uint64"
        }
      ],
      "name": "getConfig",
      "outputs": [
        {
          "internalType": "contract ERC20",
          "name": "feeToken",
          "type": "address"
        },
        {
          "internalType": "uint256[3]",
          "name": "fees",
          "type": "uint256[3]"
        },
        {
          "internalType": "uint64[5]",
          "name": "roundStateDurations",
          "type": "uint64[5]"
        },
        {
          "internalType": "uint16[2]",
          "name": "pcts",
          "type": "uint16[2]"
        },
        {
          "internalType": "uint64[4]",
          "name": "roundParams",
          "type": "uint64[4]"
        },
        {
          "internalType": "uint256[2]",
          "name": "appealCollateralParams",
          "type": "uint256[2]"
        },
        {
          "internalType": "uint256",
          "name": "minActiveBalance",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getConfigChangeTermId",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getConfigGovernor",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCurrentTermId",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getDisputeFees",
      "outputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "contract ERC20",
          "name": "feeToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "feeAmount",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getDisputeManager",
      "outputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "disabled",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_termId",
          "type": "uint64"
        }
      ],
      "name": "getDraftConfig",
      "outputs": [
        {
          "internalType": "contract ERC20",
          "name": "feeToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "draftFee",
          "type": "uint256"
        },
        {
          "internalType": "uint16",
          "name": "penaltyPct",
          "type": "uint16"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getFundsGovernor",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getGuardiansRegistry",
      "outputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "disabled",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getLastEnsuredTermId",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_termId",
          "type": "uint64"
        }
      ],
      "name": "getMinActiveBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "name": "getModule",
      "outputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "disabled",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "getModuleByAddress",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "disabled",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getModulesGovernor",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getNeededTermTransitions",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getPaymentsBook",
      "outputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "disabled",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getPaymentsRecipient",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_termId",
          "type": "uint64"
        }
      ],
      "name": "getTerm",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "startTime",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "randomnessBN",
          "type": "uint64"
        },
        {
          "internalType": "bytes32",
          "name": "randomness",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getTermDuration",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_termId",
          "type": "uint64"
        }
      ],
      "name": "getTermRandomness",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getTreasury",
      "outputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "disabled",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getVoting",
      "outputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "disabled",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_maxRequestedTransitions",
          "type": "uint64"
        }
      ],
      "name": "heartbeat",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_id",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "isActive",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        }
      ],
      "name": "rule",
      "outputs": [
        {
          "internalType": "address",
          "name": "subject",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "ruling",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bool",
          "name": "_allowed",
          "type": "bool"
        }
      ],
      "name": "setAutomaticWithdrawals",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_fromTermId",
          "type": "uint64"
        },
        {
          "internalType": "contract ERC20",
          "name": "_feeToken",
          "type": "address"
        },
        {
          "internalType": "uint256[3]",
          "name": "_fees",
          "type": "uint256[3]"
        },
        {
          "internalType": "uint64[5]",
          "name": "_roundStateDurations",
          "type": "uint64[5]"
        },
        {
          "internalType": "uint16[2]",
          "name": "_pcts",
          "type": "uint16[2]"
        },
        {
          "internalType": "uint64[4]",
          "name": "_roundParams",
          "type": "uint64[4]"
        },
        {
          "internalType": "uint256[2]",
          "name": "_appealCollateralParams",
          "type": "uint256[2]"
        },
        {
          "internalType": "uint256",
          "name": "_minActiveBalance",
          "type": "uint256"
        }
      ],
      "name": "setConfig",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "_sig",
          "type": "bytes4"
        },
        {
          "internalType": "address",
          "name": "_target",
          "type": "address"
        }
      ],
      "name": "setCustomFunction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_id",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "setModule",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_ids",
          "type": "bytes32[]"
        },
        {
          "internalType": "address[]",
          "name": "_addresses",
          "type": "address[]"
        }
      ],
      "name": "setModules",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_submitter",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_evidence",
          "type": "bytes"
        }
      ],
      "name": "submitEvidence",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b506040516200549e3803806200549e83398181016040526102e08110156200003857600080fd5b5060a08101516102c082015160408301919060c08401906101208501906101c0860190610200870190610280880190888888888888888888868686868686868f60008181602002015190506000826001602002015190506301e133806001600160401b0316826001600160401b0316106040518060400160405280601a81526020017f434c4b5f5445524d5f4455524154494f4e5f544f4f5f4c4f4e47000000000000815250906200016b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200012f57818101518382015260200162000115565b50505050905090810190601f1680156200015d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5081620001806001600160e01b03620003bc16565b016001600160401b0316816001600160401b031610156040518060400160405280601d81526020017f434c4b5f4241445f46495253545f5445524d5f53544152545f54494d45000000815250906200021b5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b506303c26700620002346001600160e01b03620003bc16565b016001600160401b0316816001600160401b031611156040518060400160405280601d81526020017f434c4b5f4241445f46495253545f5445524d5f53544152545f54494d4500000081525090620002cf5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b50600080546001600160401b038085166001600160401b0319928316178355918052600160208190527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb498054959094039092169316929092179055905062000339600382620010a8565b5062000357600080898989898989896001600160e01b03620003ec16565b5050505050505062000384886000600381106200037057fe5b60200201516001600160e01b0362000ec016565b6020880151620003949062000f2a565b6040880151620003a49062000f94565b50505050505050505050505050505050505062001163565b6000620003e6620003d56001600160e01b0362000ffe16565b6200100260201b62003f051760201c565b90505b90565b6001600160401b0389161580620004145750886001600160401b0316886001600160401b0316115b60405180604001604052806011815260200170434f4e465f544f4f5f4f4c445f5445524d60781b815250906200048d5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b50815115801590620004a25750602082015115155b6040518060400160405280601b81526020017f434f4e465f5a45524f5f434f4c4c41544552414c5f464143544f52000000000081525090620005275760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b50620005468460005b60200201516200109960201b62003ef21760201c565b6040518060400160405280601881526020017f434f4e465f494e56414c49445f50454e414c54595f504354000000000000000081525090620005cb5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b50620005d984600162000530565b6040518060400160405280602081526020017f434f4e465f494e56414c49445f46494e414c5f524f554e445f5245445f504354815250906200065e5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b506000838160200201516001600160401b0316116040518060600160405280602181526020016200547d6021913990620006db5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b50600083600160200201516001600160401b0316116040518060400160405280601b81526020017f434f4e465f4241445f41505045414c5f535445505f464143544f52000000000081525090620007755760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b5060408301516001600160401b031660008115801590620007975750600a8211155b9050806040518060400160405280601e81526020017f434f4e465f494e56414c49445f4d41585f41505045414c5f524f554e44530000815250906200081f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b5060005b6005811015620009025760008882600581106200083c57fe5b60200201516001600160401b03161180156200087357506121de8882600581106200086357fe5b60200201516001600160401b0316105b6040518060400160405280601f81526020017f434f4e465f4c415247455f524f554e445f50484153455f4455524154494f4e0081525090620008f85760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b5060010162000823565b5060408051808201909152601c81527f434f4e465f5a45524f5f4d494e5f4143544956455f42414c414e434500000000602082015283620009865760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b506002546001600160401b03808d1691161115620009bf576002546001600160401b0316600090815260046020526040812055620009d5565b6003805490620009d39060018301620010a8565b505b600380546000198101916000916001600160401b038416908110620009f657fe5b90600052602060002090600b020190506040518060a001604052808c6001600160a01b031681526020018960016002811062000a2e57fe5b602002015161ffff1681526020018b60006003811062000a4a57fe5b602002015181526020018b60016003811062000a6257fe5b602002015181526020018b60026003811062000a7a57fe5b60209081029190910151909152815183549183015161ffff16600160a01b0261ffff60a01b196001600160a01b039092166001600160a01b03199093169290921716178255604080820151600184015560608201516002840155608090910151600383015580516101808101909152808a600060200201516001600160401b031681526020018a60016005811062000b0e57fe5b60200201516001600160401b031681526020018a60026005811062000b2f57fe5b60200201516001600160401b031681526020018a60036005811062000b5057fe5b60200201516001600160401b031681526020018a60046005811062000b7157fe5b60200201516001600160401b031681526020018960006002811062000b9257fe5b602002015161ffff1681526020018860006004811062000bae57fe5b60200201516001600160401b031681526020018860016004811062000bcf57fe5b60200201516001600160401b031681526020018860036004811062000bf057fe5b60200201516001600160401b031681526020018581526020018760006002811062000c1757fe5b602002015181526020018760016002811062000c2f57fe5b60200201518152508160040160008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060a08201518160010160086101000a81548161ffff021916908361ffff16021790555060c082015181600101600a6101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160010160126101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160020160006101000a8154816001600160401b0302191690836001600160401b031602179055506101208201518160030155610140820151816004015561016082015181600501559050508481600a0181905550816001600160401b0316600460008e6001600160401b03166001600160401b03168152602001908152602001600020819055508b600260006101000a8154816001600160401b0302191690836001600160401b031602179055507ff991c74e88b00b8de409caf790045f133e9a8283d3b989db88e2b2d93612c3a78c8360405180836001600160401b03166001600160401b03168152602001826001600160401b03166001600160401b031681526020019250505060405180910390a150505050505050505050505050565b600654604080516001600160a01b039283168152918316602083015280517f2e8176039aca48fb2df80d8a3f0c25cf4f12ba7ba15aabe562bd39f71967954f9281900390910190a1600680546001600160a01b0319166001600160a01b0392909216919091179055565b600754604080516001600160a01b039283168152918316602083015280517fad1fe49159fc13ce805cb23e72eb6724c008509c8095b9499752efea5747af3e9281900390910190a1600780546001600160a01b0319166001600160a01b0392909216919091179055565b600854604080516001600160a01b039283168152918316602083015280517faf8bba87fb343f5755495c80323f32cd6bbfaebd666ff5abac709bc1f76f2f179281900390910190a1600880546001600160a01b0319166001600160a01b0392909216919091179055565b4290565b60408051808201909152601581527f55494e5436345f4e554d4245525f544f4f5f424947000000000000000000000060208201526000906001600160401b03831115620010925760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156200012f57818101518382015260200162000115565b5090919050565b61271061ffff82161115919050565b815481835581811115620010d757600b0281600b028360005260206000209182019101620010d79190620010dc565b505050565b620003e991905b808211156200115f5780546001600160b01b03191681556000600182018190556002820181905560038201819055600482018190556005820180546001600160d01b03191690556006820180546001600160401b0319169055600782018190556008820181905560098201819055600a820155600b01620010e3565b5090565b61430a80620011736000396000f3fe6080604052600436106102715760003560e01c80637cb57c641161014f578063a95f5246116100c1578063db18af6c1161007a578063db18af6c14610ca5578063db9bee4614610cf2578063e008cb6214610d07578063e36057b714610e39578063f137b44e14610e6c578063f7fe578914610ec957610271565b8063a95f524614610b3c578063c13517e114610b6f578063ca0f8f3b14610bf1578063cf0a5af314610c2a578063d7a8469314610c3f578063d9296df214610c7257610271565b80638c8bd218116101135780638c8bd21814610a135780638de10e8714610a2857806395f3c2da14610a5b57806397023f8114610a8e5780639bf6fa5714610aa3578063a949e98214610ad657610271565b80637cb57c64146108ee5780637d1f24c91461097e5780637e9adccf146109935780637fb011d6146109bd57806385acd641146109e957610271565b80633f33bf86116101e8578063610b5925116101ac578063610b5925146107ae57806361f3be6a146107e15780636580af1b14610826578063696670051461083b5780636991fdb81461089a5780637b751b9e146108af57610271565b80633f33bf861461066b578063408a26401461068057806350c365801461069557806350cc0ae1146106aa578063541cd4681461077557610271565b806324bdf7131161023a57806324bdf713146104b257806327fe748c1461057d5780633044e70a146105c45780633b19e84a146106105780633c28e88b146106255780633df50c631461065657610271565b80620be6ea146103da57806308135a93146104125780631986d376146104435780631a7dc8701461045857806322f8f6f31461049d575b600080356001600160e01b0319168152600b6020908152604091829020548251808401909352601b83527f4354525f435553544f4d5f46554e4354494f4e5f4e4f545f5345540000000000918301919091526001600160a01b031690816103565760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561031b578181015183820152602001610303565b50505050905090810190601f1680156103485780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000816001600160a01b031634600036604051808383808284376040519201945060009350909150508083038185875af1925050503d80600081146103b8576040519150601f19603f3d011682016040523d82523d6000602084013e6103bd565b606091505b505090503d604051816000823e828080156103d6578383f35b8383fd5b3480156103e657600080fd5b506103ef610ede565b604080516001600160a01b03909316835290151560208301528051918290030190f35b34801561041e57600080fd5b50610427610f12565b604080516001600160401b039092168252519081900360200190f35b34801561044f57600080fd5b506103ef610f22565b34801561046457600080fd5b5061049b6004803603604081101561047b57600080fd5b5080356001600160e01b03191690602001356001600160a01b0316610f4e565b005b3480156104a957600080fd5b5061042761103d565b3480156104be57600080fd5b5061049b600480360360408110156104d557600080fd5b810190602081018135600160201b8111156104ef57600080fd5b82018360208201111561050157600080fd5b803590602001918460208302840111600160201b8311171561052257600080fd5b919390929091602081019035600160201b81111561053f57600080fd5b82018360208201111561055157600080fd5b803590602001918460208302840111600160201b8311171561057257600080fd5b50909250905061104c565b34801561058957600080fd5b506105b0600480360360208110156105a057600080fd5b50356001600160a01b031661119d565b604080519115158252519081900360200190f35b3480156105d057600080fd5b506105f7600480360360208110156105e757600080fd5b50356001600160a01b03166111bf565b6040805192835290151560208301528051918290030190f35b34801561061c57600080fd5b506103ef6111e8565b34801561063157600080fd5b5061063a611214565b604080516001600160a01b039092168252519081900360200190f35b34801561066257600080fd5b506103ef611223565b34801561067757600080fd5b5061042761124f565b34801561068c57600080fd5b5061063a611259565b3480156106a157600080fd5b50610427611268565b3480156106b657600080fd5b5061049b600480360360408110156106cd57600080fd5b810190602081018135600160201b8111156106e757600080fd5b8201836020820111156106f957600080fd5b803590602001918460208302840111600160201b8311171561071a57600080fd5b919390929091602081019035600160201b81111561073757600080fd5b82018360208201111561074957600080fd5b803590602001918460208302840111600160201b8311171561076a57600080fd5b509092509050611272565b34801561078157600080fd5b5061049b6004803603604081101561079857600080fd5b50803590602001356001600160a01b0316611543565b3480156107ba57600080fd5b5061049b600480360360208110156107d157600080fd5b50356001600160a01b03166115ce565b3480156107ed57600080fd5b506108146004803603602081101561080457600080fd5b50356001600160401b0316611749565b60408051918252519081900360200190f35b34801561083257600080fd5b5061063a6117f0565b34801561084757600080fd5b5061086e6004803603602081101561085e57600080fd5b50356001600160401b03166117fa565b604080516001600160a01b039094168452602084019290925261ffff1682820152519081900360600190f35b3480156108a657600080fd5b50610427611822565b3480156108bb57600080fd5b506108c4611831565b604080516001600160a01b0394851681529290931660208301528183015290519081900360600190f35b3480156108fa57600080fd5b5061049b6004803603606081101561091157600080fd5b8135916001600160a01b0360208201351691810190606081016040820135600160201b81111561094057600080fd5b82018360208201111561095257600080fd5b803590602001918460018302840111600160201b8311171561097357600080fd5b5090925090506118bb565b34801561098a57600080fd5b50610814611a3b565b34801561099f57600080fd5b5061049b600480360360208110156109b657600080fd5b5035611b0f565b3480156109c957600080fd5b5061049b600480360360208110156109e057600080fd5b50351515611b99565b3480156109f557600080fd5b506103ef60048036036020811015610a0c57600080fd5b5035611bef565b348015610a1f57600080fd5b5061049b611c04565b348015610a3457600080fd5b5061049b60048036036020811015610a4b57600080fd5b50356001600160a01b0316611c8d565b348015610a6757600080fd5b5061081460048036036020811015610a7e57600080fd5b50356001600160401b0316611d8e565b348015610a9a57600080fd5b5061063a611da5565b348015610aaf57600080fd5b5061042760048036036020811015610ac657600080fd5b50356001600160401b0316611db4565b348015610ae257600080fd5b5061049b6004803603610260811015610afa57600080fd5b506001600160401b03813516906001600160a01b0360208201351690604081019060a08101906101408101906101808101906102008101906102400135611dc5565b348015610b4857600080fd5b5061049b60048036036020811015610b5f57600080fd5b50356001600160a01b0316611f1e565b348015610b7b57600080fd5b5061081460048036036040811015610b9257600080fd5b81359190810190604081016020820135600160201b811115610bb357600080fd5b820183602082011115610bc557600080fd5b803590602001918460018302840111600160201b83111715610be657600080fd5b50909250905061209e565b348015610bfd57600080fd5b506105b060048036036040811015610c1457600080fd5b50803590602001356001600160a01b0316612180565b348015610c3657600080fd5b5061049b6121b5565b348015610c4b57600080fd5b5061049b60048036036020811015610c6257600080fd5b50356001600160a01b031661223c565b348015610c7e57600080fd5b5061049b60048036036020811015610c9557600080fd5b50356001600160a01b031661233a565b348015610cb157600080fd5b50610ccf60048036036020811015610cc857600080fd5b5035612438565b604080516001600160a01b03909316835260208301919091528051918290030190f35b348015610cfe57600080fd5b506103ef6124d2565b348015610d1357600080fd5b50610d3a60048036036020811015610d2a57600080fd5b50356001600160401b03166124fe565b6040516001600160a01b03881681526020810187606080838360005b83811015610d6e578181015183820152602001610d56565b5050505090500186600560200280838360005b83811015610d99578181015183820152602001610d81565b5050505090500185600260200280838360005b83811015610dc4578181015183820152602001610dac565b5050505090500184600460200280838360005b83811015610def578181015183820152602001610dd7565b5050505090500183600260200280838360005b83811015610e1a578181015183820152602001610e02565b5050505090500182815260200197505050505050505060405180910390f35b348015610e4557600080fd5b5061049b60048036036020811015610e5c57600080fd5b50356001600160401b0316612557565b348015610e7857600080fd5b50610e9f60048036036020811015610e8f57600080fd5b50356001600160401b03166125dd565b604080516001600160401b0394851681529290931660208301528183015290519081900360600190f35b348015610ed557600080fd5b50610427612611565b600080610f0a7f8af7b7118de65da3b974a3fd4b0c702b66442f74b9dff6eaed1037254c0b79fe61261b565b915091509091565b6000610f1c61264f565b90505b90565b600080610f0a7f7cbb12e82a6d63ff16fe43977f43e3e2b247ecd4e62c0e340da8800a48c6734661261b565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b03163314610fca5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001600160e01b031982166000818152600b602090815260409182902080546001600160a01b0319166001600160a01b03861690811790915582519384529083015280517f963ffecd07ecedcf6058ec0ca1bc68d292acd47448528e50af48ea5167c8a6fb9281900390910190a15050565b6000546001600160401b031690565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146110c85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060408051808201909152601e81527f4354525f494e56414c49445f494d504c535f494e5055545f4c454e4754480000602082015283821461114b5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060005b838110156111965761118e85858381811061116657fe5b9050602002013584848481811061117957fe5b905060200201356001600160a01b0316612675565b60010161114f565b5050505050565b6001600160a01b03811660009081526005602052604090205460ff165b919050565b6001600160a01b03166000908152600a602052604090208054600190910154909160ff90911690565b600080610f0a7f06aa03964db1f7257357ef09714a5f0ca3633723df419e97015e0c7a3e83edb761261b565b6006546001600160a01b031690565b600080610f0a7ffa275b1417437a2a2ea8e91e9fe73c28eaf0a28532a250541da5ac0d1892b41861261b565b6000610f1c612779565b6008546001600160a01b031690565b6000610f1c612847565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146112ee5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5080158015906112fd57508215155b6040518060400160405280601e81526020017f4354525f494e56414c49445f494d504c535f494e5055545f4c454e47544800008152509061137f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506040805182815260208084028201019091526060908280156113ac578160200160208202803883390190505b50905060005b82811015611438576000600960008686858181106113cc57fe5b602090810292909201358352508181019290925260409081016000908120546001600160a01b0316808252600a90935220909150611409816128b9565b8184848151811061141657fe5b6001600160a01b039092166020928302919091019091015250506001016113b2565b5060005b8481101561153b5785858281811061145057fe5b905060200201356001600160a01b03166001600160a01b0316634e112d368585856040518463ffffffff1660e01b815260040180806020018060200183810383528686828181526020019250602002808284376000838201819052601f909101601f1916909201858103845286518152865160209182019382890193509102908190849084905b838110156114ef5781810151838201526020016114d7565b5050505090500195505050505050600060405180830381600087803b15801561151757600080fd5b505af115801561152b573d6000803e3d6000fd5b50506001909201915061143c9050565b505050505050565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146115bf5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506115ca8282612675565b5050565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b0316331461164a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001600160a01b0381166000908152600a6020526040902061166c816128b9565b600181015460408051808201909152601a81527f4354525f4d4f44554c455f414c52454144595f454e41424c454400000000000060208201529060ff166116f45760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060018101805460ff191690558054604080519182526001600160a01b038416602083015280517f76a633d819bc10acca13779c3321738b6d0b0688ba75a006a8ef807dd087f4c09281900390910190a15050565b6000805460408051808201909152601781527610d312d7d511549357d113d154d7d393d517d1561254d5604a1b602082015283916001600160401b03600160401b909104811690831611156117df5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506117e983612930565b9392505050565b6000610f1c612a04565b600080600080611808612a5b565b90506118148582612a71565b935093509350509193909250565b6002546001600160401b031690565b600080600061183e612ab1565b92506000839050806001600160a01b0316637b751b9e6040518163ffffffff1660e01b8152600401604080518083038186803b15801561187d57600080fd5b505afa158015611891573d6000803e3d6000fd5b505050506040513d60408110156118a757600080fd5b508051602090910151949590949350915050565b60006118c5612ab1565b90506000816001600160a01b031663e3a96cbd876040518263ffffffff1660e01b81526004018082815260200191505060c06040518083038186803b15801561190d57600080fd5b505afa158015611921573d6000803e3d6000fd5b505050506040513d60c081101561193757600080fd5b505160408051808201909152601d81527f41505f53454e4445525f4e4f545f444953505554455f5355424a45435400000060208201529091506001600160a01b03821633146119c75760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50846001600160a01b0316867fd25027d3faf6af10da1a82e9d4df3c98b93cb0481f9acaf87718a548fad0abce868660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a3505050505050565b60008054600160401b90046001600160401b03168082526001602081905260408320908101548015611a71579250610f1f915050565b6000611a7c84612930565b60408051808201909152601f81527f434c4b5f5445524d5f52414e444f4d4e4553535f554e415641494c41424c4500602082015290915081611aff5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060019092018290555091505090565b336000611b1a612ab1565b9050806001600160a01b031663c39c83d183856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611b7c57600080fd5b505af1158015611b90573d6000803e3d6000fd5b50505050505050565b33600081815260056020908152604091829020805460ff1916851515908117909155825190815291517f189949428c2e58715ea2f0be0d702bc14e73743bdbb58814a595c19e1285c5be9281900390910190a250565b600080611bfb8361261b565b91509150915091565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b03163314611c805760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611c8b6000612b08565b565b60065460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b03163314611d095760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060408051808201909152601c815260008051602061429683398151915260208201526001600160a01b038216611d815760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611d8b81612b72565b50565b600080611d99612a5b565b90506117e98382612bdc565b6007546001600160a01b031690565b6000611dbf82612bf5565b92915050565b60075460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b03163314611e415760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506000611e4c612779565b9050611f13818a8a8a6003806020026040519081016040528092919082600360200280828437600092019190915250506040805160a081810190925291508c9060059083908390808284376000920191909152505060408051808201825291508c9060029083908390808284376000920191909152505060408051608081810190925291508c9060049083908390808284376000920191909152505060408051808201825291508c9060029083908390808284376000920191909152508c9150612df09050565b505050505050505050565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b03163314611f9a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001600160a01b0381166000908152600a60205260409020611fbc816128b9565b600181015460408051808201909152601b81527f4354525f4d4f44554c455f414c52454144595f44495341424c4544000000000060208201529060ff16156120455760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001818101805460ff191690911790558054604080519182526001600160a01b038416602083015280517fe740336c1666075fb80157eb9fed64f7c246823957f469eb4db34be01449bfc99281900390910190a15050565b600033816120aa612ab1565b9050806001600160a01b0316631d2fa1fb836120c589613879565b6040516001600160e01b031960e085901b1681526001600160a01b0383166004820190815260ff83166024830152606060448301908152606483018b90528b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561214a57600080fd5b505af115801561215e573d6000803e3d6000fd5b505050506040513d602081101561217457600080fd5b50519695505050505050565b6001600160a01b0381166000908152600a602052604081208054841480156121ad5750600181015460ff16155b949350505050565b60065460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146122315760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611c8b6000612b72565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146122b85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060408051808201909152601c815260008051602061429683398151915260208201526001600160a01b0382166123305760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611d8b81612b08565b60075460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146123b65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060408051808201909152601c815260008051602061429683398151915260208201526001600160a01b03821661242e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611d8b816138fe565b6000806000612445612ab1565b9050600080826001600160a01b031663bd881e53876040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b15801561248f57600080fd5b505af11580156124a3573d6000803e3d6000fd5b505050506040513d60408110156124b957600080fd5b50805160209091015190955060ff169350505050915091565b600080610f0a7f14a6c70f0f6d449c014c7bbc9e68e31e79e8474fb03b7194df83109a2d888ae661261b565b6000612508614125565b612510614143565b612518614161565b61252061417f565b612528614161565b600080612533612a5b565b905061253f8982613968565b959f949e50929c50909a509850965090945092505050565b60075460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146125d35760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611d8b81613c1e565b6001600160401b039081166000908152600160208190526040909120805491015481831693600160401b9092049092169190565b6000610f1c612a5b565b6000908152600960209081526040808320546001600160a01b0316808452600a90925290912060010154909160ff90911690565b6000610f1c61265c612847565b600054600160401b90046001600160401b031690613de4565b61267e81613e78565b6040518060400160405280601f81526020017f4354525f494d504c454d454e544154494f4e5f4e4f545f434f4e545241435400815250906127005760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50600082815260096020908152604080832080546001600160a01b0319166001600160a01b038616908117909155808452600a83529281902085905580518581529182019290925281517f0669329f751b07de4aa82f60514a409d0dfaef266e791a4a65a95b07b1c4c324929181900390910190a15050565b600080612784612847565b604080518082019091526018815277434c4b5f544f4f5f4d414e595f5452414e534954494f4e5360401b602082015290915060016001600160401b038316111561280f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001600160401b038116612838575050600054600160401b90046001600160401b0316610f1f565b61284181612bf5565b91505090565b600080546001600160401b03600160401b90910481168252600160205260408220541680612873613e97565b6001600160401b0316101561288c576000915050610f1f565b6000546001600160401b0316816128a1613e97565b036001600160401b0316816128b257fe5b0491505090565b805460408051808201909152601281527110d51497d353d115531157d393d517d4d15560721b6020820152906115ca5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b6001600160401b038082166000908152600160205260408120805491929091600160401b90041661295f613ea9565b6001600160401b0316116040518060400160405280601b81526020017f434c4b5f5445524d5f52414e444f4d4e4553535f4e4f545f5945540000000000815250906129eb5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5054600160401b90046001600160401b03164092915050565b7ffa275b1417437a2a2ea8e91e9fe73c28eaf0a28532a250541da5ac0d1892b41860005260096020527f1eb5046c16f851c300950c58c7d7e7f48072d51d671f05a5b14597eaa1b4fca4546001600160a01b031690565b600054600160401b90046001600160401b031690565b600080600080612a818686613eb6565b805460028201546005909201546001600160a01b0390911698919750600160401b900461ffff1695509350505050565b7f14a6c70f0f6d449c014c7bbc9e68e31e79e8474fb03b7194df83109a2d888ae660005260096020527f358b74d107d4ddbcb000da4e31f31605c817c6f46805e34bbf0ff7ddddb38c9a546001600160a01b031690565b600854604080516001600160a01b039283168152918316602083015280517faf8bba87fb343f5755495c80323f32cd6bbfaebd666ff5abac709bc1f76f2f179281900390910190a1600880546001600160a01b0319166001600160a01b0392909216919091179055565b600654604080516001600160a01b039283168152918316602083015280517f2e8176039aca48fb2df80d8a3f0c25cf4f12ba7ba15aabe562bd39f71967954f9281900390910190a1600680546001600160a01b0319166001600160a01b0392909216919091179055565b600080612be98484613eb6565b600a0154949350505050565b600080612c00612847565b90506000816001600160401b0316846001600160401b031610612c235781612c25565b835b6001600160401b03169050600081116040518060400160405280601c81526020017f434c4b5f494e56414c49445f5452414e534954494f4e5f5445524d530000000081525090612cb65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506000612cc1613ea9565b600054909150600160401b90046001600160401b03168060015b848111612d7b576001600160401b0380831660009081526001602081905260408083209590910192831682529020909290612d1584613ee9565b6000548254612d36916001600160401b03918216911663ffffffff613de416565b815467ffffffffffffffff19166001600160401b039182161767ffffffffffffffff60401b1916600160401b6001898101939093160217909155919091019050612cdb565b50600080546001600160401b03808416600160401b810267ffffffffffffffff60401b1990931692909217909255604080519285168352602083019190915280517fb8818b6d0c27e4fc7cf75de16ac2543426d3c0bcc520931d24e5a7dde4adca119281900390910190a19695505050505050565b6001600160401b0389161580612e175750886001600160401b0316886001600160401b0316115b60405180604001604052806011815260200170434f4e465f544f4f5f4f4c445f5445524d60781b81525090612e8d5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50815115801590612ea15750602082015115155b6040518060400160405280601b81526020017f434f4e465f5a45524f5f434f4c4c41544552414c5f464143544f52000000000081525090612f235760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50612f358460005b6020020151613ef2565b6040518060400160405280601881526020017710d3d39197d253959053125117d411539053151657d410d560421b81525090612fb25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50612fbe846001612f2b565b6040518060400160405280602081526020017f434f4e465f494e56414c49445f46494e414c5f524f554e445f5245445f504354815250906130405760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506000838160200201516001600160401b03161160405180606001604052806021815260200161425460219139906130b95760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50600083600160200201516001600160401b0316116040518060400160405280601b81526020017f434f4e465f4241445f41505045414c5f535445505f464143544f520000000000815250906131505760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060408301516001600160401b0316600081158015906131715750600a8211155b9050806040518060400160405280601e81526020017f434f4e465f494e56414c49445f4d41585f41505045414c5f524f554e44530000815250906131f65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060005b60058110156132d157600088826005811061321157fe5b60200201516001600160401b031611801561324657506121de88826005811061323657fe5b60200201516001600160401b0316105b6040518060400160405280601f81526020017f434f4e465f4c415247455f524f554e445f50484153455f4455524154494f4e00815250906132c85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001016131fa565b5060408051808201909152601c81527f434f4e465f5a45524f5f4d494e5f4143544956455f42414c414e4345000000006020820152836133525760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506002546001600160401b03808d1691161115613389576002546001600160401b031660009081526004602052604081205561339d565b600380549061339b906001830161419d565b505b600380546000198101916000916001600160401b0384169081106133bd57fe5b90600052602060002090600b020190506040518060a001604052808c6001600160a01b03168152602001896001600281106133f457fe5b602002015161ffff1681526020018b60006003811061340f57fe5b602002015181526020018b60016003811061342657fe5b602002015181526020018b60026003811061343d57fe5b60209081029190910151909152815183549183015161ffff16600160a01b0261ffff60a01b196001600160a01b039092166001600160a01b03199093169290921716178255604080820151600184015560608201516002840155608090910151600383015580516101808101909152808a600060200201516001600160401b031681526020018a6001600581106134d057fe5b60200201516001600160401b031681526020018a6002600581106134f057fe5b60200201516001600160401b031681526020018a60036005811061351057fe5b60200201516001600160401b031681526020018a60046005811061353057fe5b60200201516001600160401b031681526020018960006002811061355057fe5b602002015161ffff1681526020018860006004811061356b57fe5b60200201516001600160401b031681526020018860016004811061358b57fe5b60200201516001600160401b03168152602001886003600481106135ab57fe5b60200201516001600160401b03168152602001858152602001876000600281106135d157fe5b60200201518152602001876001600281106135e857fe5b60200201518152508160040160008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060a08201518160010160086101000a81548161ffff021916908361ffff16021790555060c082015181600101600a6101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160010160126101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160020160006101000a8154816001600160401b0302191690836001600160401b031602179055506101208201518160030155610140820151816004015561016082015181600501559050508481600a0181905550816001600160401b0316600460008e6001600160401b03166001600160401b03168152602001908152602001600020819055508b600260006101000a8154816001600160401b0302191690836001600160401b031602179055507ff991c74e88b00b8de409caf790045f133e9a8283d3b989db88e2b2d93612c3a78c8360405180836001600160401b03166001600160401b03168152602001826001600160401b03166001600160401b031681526020019250505060405180910390a150505050505050505050505050565b60408051808201909152601481527355494e54385f4e554d4245525f544f4f5f42494760601b602082015260009060ff8311156138f75760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5090919050565b600754604080516001600160a01b039283168152918316602083015280517fad1fe49159fc13ce805cb23e72eb6724c008509c8095b9499752efea5747af3e9281900390910190a1600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000613972614125565b61397a614143565b613982614161565b61398a61417f565b613992614161565b60008061399f8a8a613eb6565b905060008160000190508060000160009054906101000a90046001600160a01b03169850604051806060016040528082600101548152602001826002015481526020018260030154815250975060008260040190506040518060a001604052808260000160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020018260000160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020018260000160109054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020018260000160189054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020018260010160009054906101000a90046001600160401b03166001600160401b03166001600160401b0316815250975060405180604001604052808260010160089054906101000a900461ffff1661ffff1661ffff1681526020018360000160149054906101000a900461ffff1661ffff1661ffff168152509650604051806080016040528082600101600a9054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020018260010160129054906101000a90046001600160401b03166001600160401b03166001600160401b0316815260200182600301546001600160401b03166001600160401b031681526020018260020160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681525095506040518060400160405280826004015481526020018260050154815250945082600a0154935050505092959891949750929550565b613c2661264f565b6001600160401b03166000146040518060600160405280602181526020016142756021913990613c975760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506000808052600160205280547fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb498054909291613ce6916001600160401b03908116911663ffffffff613de416565b9050806001600160401b0316836001600160401b0316116040518060400160405280602081526020017f434c4b5f43414e4e4f545f44454c41595f504153545f53544152545f54494d4581525090613d7f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50600054825467ffffffffffffffff19166001600160401b0391821685038216178355604080518383168152918516602083015280517f9b735da8a0762c6e913df06587b4fa81f87b8075e2a2afdeae6afde9456fd8799281900390910190a1505050565b6040805180820190915260138152724d41544836345f4144445f4f564552464c4f5760681b6020820152600090838301906001600160401b038086169083161015613e705760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b509392505050565b60006001600160a01b038216613e90575060006111ba565b503b151590565b6000610f1c613ea4613f01565b613f05565b6000610f1c613ea4613f8a565b600080613ec38484613f8e565b905060038181548110613ed257fe5b90600052602060002090600b020191505092915050565b611d8b8161401d565b61271061ffff82161115919050565b4290565b60408051808201909152601581527455494e5436345f4e554d4245525f544f4f5f42494760581b60208201526000906001600160401b038311156138f75760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b4390565b6000816001600160401b0316836001600160401b031611613fc857506001600160401b038216600090815260046020526040902054611dbf565b6002546001600160401b039081169084168111613ffe576001600160401b03166000908152600460205260409020549050611dbf565b50506001600160401b0316600090815260046020526040902054919050565b6001600160401b038116600090815260046020526040902054806115ca57600060048161405a6001600160401b038616600163ffffffff61408d16565b6001600160401b039081168252602080830193909352604091820160009081205491871681526004909352912055505050565b6000826001600160401b0316826001600160401b03161115604051806040016040528060148152602001734d41544836345f5355425f554e444552464c4f5760601b8152509061411e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5050900390565b60405180606001604052806003906020820280388339509192915050565b6040518060a001604052806005906020820280388339509192915050565b60405180604001604052806002906020820280388339509192915050565b60405180608001604052806004906020820280388339509192915050565b8154818355818111156141c957600b0281600b0283600052602060002091820191016141c991906141ce565b505050565b610f1f91905b8082111561424f5780546001600160b01b03191681556000600182018190556002820181905560038201819055600482018190556005820180546001600160d01b031916905560068201805467ffffffffffffffff19169055600782018190556008820181905560098201819055600a820155600b016141d4565b509056fe434f4e465f4241445f494e495449414c5f475541524449414e535f4e554d424552434c4b5f43414e4e4f545f44454c41595f535441525445445f50524f544f434f4c4354525f494e56414c49445f474f5645524e4f525f41444452455353000000004354525f53454e4445525f4e4f545f474f5645524e4f52000000000000000000a265627a7a723158202a245db9007fb55885070ea0d613ecc6ca5e03a84d124391d40ff3fe1f052dc164736f6c63430005110032434f4e465f4241445f494e495449414c5f475541524449414e535f4e554d424552",
  "deployedBytecode": "0x6080604052600436106102715760003560e01c80637cb57c641161014f578063a95f5246116100c1578063db18af6c1161007a578063db18af6c14610ca5578063db9bee4614610cf2578063e008cb6214610d07578063e36057b714610e39578063f137b44e14610e6c578063f7fe578914610ec957610271565b8063a95f524614610b3c578063c13517e114610b6f578063ca0f8f3b14610bf1578063cf0a5af314610c2a578063d7a8469314610c3f578063d9296df214610c7257610271565b80638c8bd218116101135780638c8bd21814610a135780638de10e8714610a2857806395f3c2da14610a5b57806397023f8114610a8e5780639bf6fa5714610aa3578063a949e98214610ad657610271565b80637cb57c64146108ee5780637d1f24c91461097e5780637e9adccf146109935780637fb011d6146109bd57806385acd641146109e957610271565b80633f33bf86116101e8578063610b5925116101ac578063610b5925146107ae57806361f3be6a146107e15780636580af1b14610826578063696670051461083b5780636991fdb81461089a5780637b751b9e146108af57610271565b80633f33bf861461066b578063408a26401461068057806350c365801461069557806350cc0ae1146106aa578063541cd4681461077557610271565b806324bdf7131161023a57806324bdf713146104b257806327fe748c1461057d5780633044e70a146105c45780633b19e84a146106105780633c28e88b146106255780633df50c631461065657610271565b80620be6ea146103da57806308135a93146104125780631986d376146104435780631a7dc8701461045857806322f8f6f31461049d575b600080356001600160e01b0319168152600b6020908152604091829020548251808401909352601b83527f4354525f435553544f4d5f46554e4354494f4e5f4e4f545f5345540000000000918301919091526001600160a01b031690816103565760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561031b578181015183820152602001610303565b50505050905090810190601f1680156103485780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000816001600160a01b031634600036604051808383808284376040519201945060009350909150508083038185875af1925050503d80600081146103b8576040519150601f19603f3d011682016040523d82523d6000602084013e6103bd565b606091505b505090503d604051816000823e828080156103d6578383f35b8383fd5b3480156103e657600080fd5b506103ef610ede565b604080516001600160a01b03909316835290151560208301528051918290030190f35b34801561041e57600080fd5b50610427610f12565b604080516001600160401b039092168252519081900360200190f35b34801561044f57600080fd5b506103ef610f22565b34801561046457600080fd5b5061049b6004803603604081101561047b57600080fd5b5080356001600160e01b03191690602001356001600160a01b0316610f4e565b005b3480156104a957600080fd5b5061042761103d565b3480156104be57600080fd5b5061049b600480360360408110156104d557600080fd5b810190602081018135600160201b8111156104ef57600080fd5b82018360208201111561050157600080fd5b803590602001918460208302840111600160201b8311171561052257600080fd5b919390929091602081019035600160201b81111561053f57600080fd5b82018360208201111561055157600080fd5b803590602001918460208302840111600160201b8311171561057257600080fd5b50909250905061104c565b34801561058957600080fd5b506105b0600480360360208110156105a057600080fd5b50356001600160a01b031661119d565b604080519115158252519081900360200190f35b3480156105d057600080fd5b506105f7600480360360208110156105e757600080fd5b50356001600160a01b03166111bf565b6040805192835290151560208301528051918290030190f35b34801561061c57600080fd5b506103ef6111e8565b34801561063157600080fd5b5061063a611214565b604080516001600160a01b039092168252519081900360200190f35b34801561066257600080fd5b506103ef611223565b34801561067757600080fd5b5061042761124f565b34801561068c57600080fd5b5061063a611259565b3480156106a157600080fd5b50610427611268565b3480156106b657600080fd5b5061049b600480360360408110156106cd57600080fd5b810190602081018135600160201b8111156106e757600080fd5b8201836020820111156106f957600080fd5b803590602001918460208302840111600160201b8311171561071a57600080fd5b919390929091602081019035600160201b81111561073757600080fd5b82018360208201111561074957600080fd5b803590602001918460208302840111600160201b8311171561076a57600080fd5b509092509050611272565b34801561078157600080fd5b5061049b6004803603604081101561079857600080fd5b50803590602001356001600160a01b0316611543565b3480156107ba57600080fd5b5061049b600480360360208110156107d157600080fd5b50356001600160a01b03166115ce565b3480156107ed57600080fd5b506108146004803603602081101561080457600080fd5b50356001600160401b0316611749565b60408051918252519081900360200190f35b34801561083257600080fd5b5061063a6117f0565b34801561084757600080fd5b5061086e6004803603602081101561085e57600080fd5b50356001600160401b03166117fa565b604080516001600160a01b039094168452602084019290925261ffff1682820152519081900360600190f35b3480156108a657600080fd5b50610427611822565b3480156108bb57600080fd5b506108c4611831565b604080516001600160a01b0394851681529290931660208301528183015290519081900360600190f35b3480156108fa57600080fd5b5061049b6004803603606081101561091157600080fd5b8135916001600160a01b0360208201351691810190606081016040820135600160201b81111561094057600080fd5b82018360208201111561095257600080fd5b803590602001918460018302840111600160201b8311171561097357600080fd5b5090925090506118bb565b34801561098a57600080fd5b50610814611a3b565b34801561099f57600080fd5b5061049b600480360360208110156109b657600080fd5b5035611b0f565b3480156109c957600080fd5b5061049b600480360360208110156109e057600080fd5b50351515611b99565b3480156109f557600080fd5b506103ef60048036036020811015610a0c57600080fd5b5035611bef565b348015610a1f57600080fd5b5061049b611c04565b348015610a3457600080fd5b5061049b60048036036020811015610a4b57600080fd5b50356001600160a01b0316611c8d565b348015610a6757600080fd5b5061081460048036036020811015610a7e57600080fd5b50356001600160401b0316611d8e565b348015610a9a57600080fd5b5061063a611da5565b348015610aaf57600080fd5b5061042760048036036020811015610ac657600080fd5b50356001600160401b0316611db4565b348015610ae257600080fd5b5061049b6004803603610260811015610afa57600080fd5b506001600160401b03813516906001600160a01b0360208201351690604081019060a08101906101408101906101808101906102008101906102400135611dc5565b348015610b4857600080fd5b5061049b60048036036020811015610b5f57600080fd5b50356001600160a01b0316611f1e565b348015610b7b57600080fd5b5061081460048036036040811015610b9257600080fd5b81359190810190604081016020820135600160201b811115610bb357600080fd5b820183602082011115610bc557600080fd5b803590602001918460018302840111600160201b83111715610be657600080fd5b50909250905061209e565b348015610bfd57600080fd5b506105b060048036036040811015610c1457600080fd5b50803590602001356001600160a01b0316612180565b348015610c3657600080fd5b5061049b6121b5565b348015610c4b57600080fd5b5061049b60048036036020811015610c6257600080fd5b50356001600160a01b031661223c565b348015610c7e57600080fd5b5061049b60048036036020811015610c9557600080fd5b50356001600160a01b031661233a565b348015610cb157600080fd5b50610ccf60048036036020811015610cc857600080fd5b5035612438565b604080516001600160a01b03909316835260208301919091528051918290030190f35b348015610cfe57600080fd5b506103ef6124d2565b348015610d1357600080fd5b50610d3a60048036036020811015610d2a57600080fd5b50356001600160401b03166124fe565b6040516001600160a01b03881681526020810187606080838360005b83811015610d6e578181015183820152602001610d56565b5050505090500186600560200280838360005b83811015610d99578181015183820152602001610d81565b5050505090500185600260200280838360005b83811015610dc4578181015183820152602001610dac565b5050505090500184600460200280838360005b83811015610def578181015183820152602001610dd7565b5050505090500183600260200280838360005b83811015610e1a578181015183820152602001610e02565b5050505090500182815260200197505050505050505060405180910390f35b348015610e4557600080fd5b5061049b60048036036020811015610e5c57600080fd5b50356001600160401b0316612557565b348015610e7857600080fd5b50610e9f60048036036020811015610e8f57600080fd5b50356001600160401b03166125dd565b604080516001600160401b0394851681529290931660208301528183015290519081900360600190f35b348015610ed557600080fd5b50610427612611565b600080610f0a7f8af7b7118de65da3b974a3fd4b0c702b66442f74b9dff6eaed1037254c0b79fe61261b565b915091509091565b6000610f1c61264f565b90505b90565b600080610f0a7f7cbb12e82a6d63ff16fe43977f43e3e2b247ecd4e62c0e340da8800a48c6734661261b565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b03163314610fca5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001600160e01b031982166000818152600b602090815260409182902080546001600160a01b0319166001600160a01b03861690811790915582519384529083015280517f963ffecd07ecedcf6058ec0ca1bc68d292acd47448528e50af48ea5167c8a6fb9281900390910190a15050565b6000546001600160401b031690565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146110c85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060408051808201909152601e81527f4354525f494e56414c49445f494d504c535f494e5055545f4c454e4754480000602082015283821461114b5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060005b838110156111965761118e85858381811061116657fe5b9050602002013584848481811061117957fe5b905060200201356001600160a01b0316612675565b60010161114f565b5050505050565b6001600160a01b03811660009081526005602052604090205460ff165b919050565b6001600160a01b03166000908152600a602052604090208054600190910154909160ff90911690565b600080610f0a7f06aa03964db1f7257357ef09714a5f0ca3633723df419e97015e0c7a3e83edb761261b565b6006546001600160a01b031690565b600080610f0a7ffa275b1417437a2a2ea8e91e9fe73c28eaf0a28532a250541da5ac0d1892b41861261b565b6000610f1c612779565b6008546001600160a01b031690565b6000610f1c612847565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146112ee5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5080158015906112fd57508215155b6040518060400160405280601e81526020017f4354525f494e56414c49445f494d504c535f494e5055545f4c454e47544800008152509061137f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506040805182815260208084028201019091526060908280156113ac578160200160208202803883390190505b50905060005b82811015611438576000600960008686858181106113cc57fe5b602090810292909201358352508181019290925260409081016000908120546001600160a01b0316808252600a90935220909150611409816128b9565b8184848151811061141657fe5b6001600160a01b039092166020928302919091019091015250506001016113b2565b5060005b8481101561153b5785858281811061145057fe5b905060200201356001600160a01b03166001600160a01b0316634e112d368585856040518463ffffffff1660e01b815260040180806020018060200183810383528686828181526020019250602002808284376000838201819052601f909101601f1916909201858103845286518152865160209182019382890193509102908190849084905b838110156114ef5781810151838201526020016114d7565b5050505090500195505050505050600060405180830381600087803b15801561151757600080fd5b505af115801561152b573d6000803e3d6000fd5b50506001909201915061143c9050565b505050505050565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146115bf5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506115ca8282612675565b5050565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b0316331461164a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001600160a01b0381166000908152600a6020526040902061166c816128b9565b600181015460408051808201909152601a81527f4354525f4d4f44554c455f414c52454144595f454e41424c454400000000000060208201529060ff166116f45760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060018101805460ff191690558054604080519182526001600160a01b038416602083015280517f76a633d819bc10acca13779c3321738b6d0b0688ba75a006a8ef807dd087f4c09281900390910190a15050565b6000805460408051808201909152601781527610d312d7d511549357d113d154d7d393d517d1561254d5604a1b602082015283916001600160401b03600160401b909104811690831611156117df5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506117e983612930565b9392505050565b6000610f1c612a04565b600080600080611808612a5b565b90506118148582612a71565b935093509350509193909250565b6002546001600160401b031690565b600080600061183e612ab1565b92506000839050806001600160a01b0316637b751b9e6040518163ffffffff1660e01b8152600401604080518083038186803b15801561187d57600080fd5b505afa158015611891573d6000803e3d6000fd5b505050506040513d60408110156118a757600080fd5b508051602090910151949590949350915050565b60006118c5612ab1565b90506000816001600160a01b031663e3a96cbd876040518263ffffffff1660e01b81526004018082815260200191505060c06040518083038186803b15801561190d57600080fd5b505afa158015611921573d6000803e3d6000fd5b505050506040513d60c081101561193757600080fd5b505160408051808201909152601d81527f41505f53454e4445525f4e4f545f444953505554455f5355424a45435400000060208201529091506001600160a01b03821633146119c75760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50846001600160a01b0316867fd25027d3faf6af10da1a82e9d4df3c98b93cb0481f9acaf87718a548fad0abce868660405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a3505050505050565b60008054600160401b90046001600160401b03168082526001602081905260408320908101548015611a71579250610f1f915050565b6000611a7c84612930565b60408051808201909152601f81527f434c4b5f5445524d5f52414e444f4d4e4553535f554e415641494c41424c4500602082015290915081611aff5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060019092018290555091505090565b336000611b1a612ab1565b9050806001600160a01b031663c39c83d183856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611b7c57600080fd5b505af1158015611b90573d6000803e3d6000fd5b50505050505050565b33600081815260056020908152604091829020805460ff1916851515908117909155825190815291517f189949428c2e58715ea2f0be0d702bc14e73743bdbb58814a595c19e1285c5be9281900390910190a250565b600080611bfb8361261b565b91509150915091565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b03163314611c805760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611c8b6000612b08565b565b60065460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b03163314611d095760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060408051808201909152601c815260008051602061429683398151915260208201526001600160a01b038216611d815760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611d8b81612b72565b50565b600080611d99612a5b565b90506117e98382612bdc565b6007546001600160a01b031690565b6000611dbf82612bf5565b92915050565b60075460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b03163314611e415760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506000611e4c612779565b9050611f13818a8a8a6003806020026040519081016040528092919082600360200280828437600092019190915250506040805160a081810190925291508c9060059083908390808284376000920191909152505060408051808201825291508c9060029083908390808284376000920191909152505060408051608081810190925291508c9060049083908390808284376000920191909152505060408051808201825291508c9060029083908390808284376000920191909152508c9150612df09050565b505050505050505050565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b03163314611f9a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001600160a01b0381166000908152600a60205260409020611fbc816128b9565b600181015460408051808201909152601b81527f4354525f4d4f44554c455f414c52454144595f44495341424c4544000000000060208201529060ff16156120455760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001818101805460ff191690911790558054604080519182526001600160a01b038416602083015280517fe740336c1666075fb80157eb9fed64f7c246823957f469eb4db34be01449bfc99281900390910190a15050565b600033816120aa612ab1565b9050806001600160a01b0316631d2fa1fb836120c589613879565b6040516001600160e01b031960e085901b1681526001600160a01b0383166004820190815260ff83166024830152606060448301908152606483018b90528b928b929190608401848480828437600081840152601f19601f82011690508083019250505095505050505050602060405180830381600087803b15801561214a57600080fd5b505af115801561215e573d6000803e3d6000fd5b505050506040513d602081101561217457600080fd5b50519695505050505050565b6001600160a01b0381166000908152600a602052604081208054841480156121ad5750600181015460ff16155b949350505050565b60065460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146122315760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611c8b6000612b72565b60085460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146122b85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060408051808201909152601c815260008051602061429683398151915260208201526001600160a01b0382166123305760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611d8b81612b08565b60075460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146123b65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060408051808201909152601c815260008051602061429683398151915260208201526001600160a01b03821661242e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611d8b816138fe565b6000806000612445612ab1565b9050600080826001600160a01b031663bd881e53876040518263ffffffff1660e01b8152600401808281526020019150506040805180830381600087803b15801561248f57600080fd5b505af11580156124a3573d6000803e3d6000fd5b505050506040513d60408110156124b957600080fd5b50805160209091015190955060ff169350505050915091565b600080610f0a7f14a6c70f0f6d449c014c7bbc9e68e31e79e8474fb03b7194df83109a2d888ae661261b565b6000612508614125565b612510614143565b612518614161565b61252061417f565b612528614161565b600080612533612a5b565b905061253f8982613968565b959f949e50929c50909a509850965090945092505050565b60075460408051808201909152601781526000805160206142b68339815191526020820152906001600160a01b031633146125d35760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50611d8b81613c1e565b6001600160401b039081166000908152600160208190526040909120805491015481831693600160401b9092049092169190565b6000610f1c612a5b565b6000908152600960209081526040808320546001600160a01b0316808452600a90925290912060010154909160ff90911690565b6000610f1c61265c612847565b600054600160401b90046001600160401b031690613de4565b61267e81613e78565b6040518060400160405280601f81526020017f4354525f494d504c454d454e544154494f4e5f4e4f545f434f4e545241435400815250906127005760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50600082815260096020908152604080832080546001600160a01b0319166001600160a01b038616908117909155808452600a83529281902085905580518581529182019290925281517f0669329f751b07de4aa82f60514a409d0dfaef266e791a4a65a95b07b1c4c324929181900390910190a15050565b600080612784612847565b604080518082019091526018815277434c4b5f544f4f5f4d414e595f5452414e534954494f4e5360401b602082015290915060016001600160401b038316111561280f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001600160401b038116612838575050600054600160401b90046001600160401b0316610f1f565b61284181612bf5565b91505090565b600080546001600160401b03600160401b90910481168252600160205260408220541680612873613e97565b6001600160401b0316101561288c576000915050610f1f565b6000546001600160401b0316816128a1613e97565b036001600160401b0316816128b257fe5b0491505090565b805460408051808201909152601281527110d51497d353d115531157d393d517d4d15560721b6020820152906115ca5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b6001600160401b038082166000908152600160205260408120805491929091600160401b90041661295f613ea9565b6001600160401b0316116040518060400160405280601b81526020017f434c4b5f5445524d5f52414e444f4d4e4553535f4e4f545f5945540000000000815250906129eb5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5054600160401b90046001600160401b03164092915050565b7ffa275b1417437a2a2ea8e91e9fe73c28eaf0a28532a250541da5ac0d1892b41860005260096020527f1eb5046c16f851c300950c58c7d7e7f48072d51d671f05a5b14597eaa1b4fca4546001600160a01b031690565b600054600160401b90046001600160401b031690565b600080600080612a818686613eb6565b805460028201546005909201546001600160a01b0390911698919750600160401b900461ffff1695509350505050565b7f14a6c70f0f6d449c014c7bbc9e68e31e79e8474fb03b7194df83109a2d888ae660005260096020527f358b74d107d4ddbcb000da4e31f31605c817c6f46805e34bbf0ff7ddddb38c9a546001600160a01b031690565b600854604080516001600160a01b039283168152918316602083015280517faf8bba87fb343f5755495c80323f32cd6bbfaebd666ff5abac709bc1f76f2f179281900390910190a1600880546001600160a01b0319166001600160a01b0392909216919091179055565b600654604080516001600160a01b039283168152918316602083015280517f2e8176039aca48fb2df80d8a3f0c25cf4f12ba7ba15aabe562bd39f71967954f9281900390910190a1600680546001600160a01b0319166001600160a01b0392909216919091179055565b600080612be98484613eb6565b600a0154949350505050565b600080612c00612847565b90506000816001600160401b0316846001600160401b031610612c235781612c25565b835b6001600160401b03169050600081116040518060400160405280601c81526020017f434c4b5f494e56414c49445f5452414e534954494f4e5f5445524d530000000081525090612cb65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506000612cc1613ea9565b600054909150600160401b90046001600160401b03168060015b848111612d7b576001600160401b0380831660009081526001602081905260408083209590910192831682529020909290612d1584613ee9565b6000548254612d36916001600160401b03918216911663ffffffff613de416565b815467ffffffffffffffff19166001600160401b039182161767ffffffffffffffff60401b1916600160401b6001898101939093160217909155919091019050612cdb565b50600080546001600160401b03808416600160401b810267ffffffffffffffff60401b1990931692909217909255604080519285168352602083019190915280517fb8818b6d0c27e4fc7cf75de16ac2543426d3c0bcc520931d24e5a7dde4adca119281900390910190a19695505050505050565b6001600160401b0389161580612e175750886001600160401b0316886001600160401b0316115b60405180604001604052806011815260200170434f4e465f544f4f5f4f4c445f5445524d60781b81525090612e8d5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50815115801590612ea15750602082015115155b6040518060400160405280601b81526020017f434f4e465f5a45524f5f434f4c4c41544552414c5f464143544f52000000000081525090612f235760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50612f358460005b6020020151613ef2565b6040518060400160405280601881526020017710d3d39197d253959053125117d411539053151657d410d560421b81525090612fb25760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50612fbe846001612f2b565b6040518060400160405280602081526020017f434f4e465f494e56414c49445f46494e414c5f524f554e445f5245445f504354815250906130405760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506000838160200201516001600160401b03161160405180606001604052806021815260200161425460219139906130b95760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50600083600160200201516001600160401b0316116040518060400160405280601b81526020017f434f4e465f4241445f41505045414c5f535445505f464143544f520000000000815250906131505760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060408301516001600160401b0316600081158015906131715750600a8211155b9050806040518060400160405280601e81526020017f434f4e465f494e56414c49445f4d41585f41505045414c5f524f554e44530000815250906131f65760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5060005b60058110156132d157600088826005811061321157fe5b60200201516001600160401b031611801561324657506121de88826005811061323657fe5b60200201516001600160401b0316105b6040518060400160405280601f81526020017f434f4e465f4c415247455f524f554e445f50484153455f4455524154494f4e00815250906132c85760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506001016131fa565b5060408051808201909152601c81527f434f4e465f5a45524f5f4d494e5f4143544956455f42414c414e4345000000006020820152836133525760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506002546001600160401b03808d1691161115613389576002546001600160401b031660009081526004602052604081205561339d565b600380549061339b906001830161419d565b505b600380546000198101916000916001600160401b0384169081106133bd57fe5b90600052602060002090600b020190506040518060a001604052808c6001600160a01b03168152602001896001600281106133f457fe5b602002015161ffff1681526020018b60006003811061340f57fe5b602002015181526020018b60016003811061342657fe5b602002015181526020018b60026003811061343d57fe5b60209081029190910151909152815183549183015161ffff16600160a01b0261ffff60a01b196001600160a01b039092166001600160a01b03199093169290921716178255604080820151600184015560608201516002840155608090910151600383015580516101808101909152808a600060200201516001600160401b031681526020018a6001600581106134d057fe5b60200201516001600160401b031681526020018a6002600581106134f057fe5b60200201516001600160401b031681526020018a60036005811061351057fe5b60200201516001600160401b031681526020018a60046005811061353057fe5b60200201516001600160401b031681526020018960006002811061355057fe5b602002015161ffff1681526020018860006004811061356b57fe5b60200201516001600160401b031681526020018860016004811061358b57fe5b60200201516001600160401b03168152602001886003600481106135ab57fe5b60200201516001600160401b03168152602001858152602001876000600281106135d157fe5b60200201518152602001876001600281106135e857fe5b60200201518152508160040160008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060a08201518160010160086101000a81548161ffff021916908361ffff16021790555060c082015181600101600a6101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160010160126101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160020160006101000a8154816001600160401b0302191690836001600160401b031602179055506101208201518160030155610140820151816004015561016082015181600501559050508481600a0181905550816001600160401b0316600460008e6001600160401b03166001600160401b03168152602001908152602001600020819055508b600260006101000a8154816001600160401b0302191690836001600160401b031602179055507ff991c74e88b00b8de409caf790045f133e9a8283d3b989db88e2b2d93612c3a78c8360405180836001600160401b03166001600160401b03168152602001826001600160401b03166001600160401b031681526020019250505060405180910390a150505050505050505050505050565b60408051808201909152601481527355494e54385f4e554d4245525f544f4f5f42494760601b602082015260009060ff8311156138f75760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5090919050565b600754604080516001600160a01b039283168152918316602083015280517fad1fe49159fc13ce805cb23e72eb6724c008509c8095b9499752efea5747af3e9281900390910190a1600780546001600160a01b0319166001600160a01b0392909216919091179055565b6000613972614125565b61397a614143565b613982614161565b61398a61417f565b613992614161565b60008061399f8a8a613eb6565b905060008160000190508060000160009054906101000a90046001600160a01b03169850604051806060016040528082600101548152602001826002015481526020018260030154815250975060008260040190506040518060a001604052808260000160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020018260000160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020018260000160109054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020018260000160189054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020018260010160009054906101000a90046001600160401b03166001600160401b03166001600160401b0316815250975060405180604001604052808260010160089054906101000a900461ffff1661ffff1661ffff1681526020018360000160149054906101000a900461ffff1661ffff1661ffff168152509650604051806080016040528082600101600a9054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020018260010160129054906101000a90046001600160401b03166001600160401b03166001600160401b0316815260200182600301546001600160401b03166001600160401b031681526020018260020160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681525095506040518060400160405280826004015481526020018260050154815250945082600a0154935050505092959891949750929550565b613c2661264f565b6001600160401b03166000146040518060600160405280602181526020016142756021913990613c975760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b506000808052600160205280547fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb498054909291613ce6916001600160401b03908116911663ffffffff613de416565b9050806001600160401b0316836001600160401b0316116040518060400160405280602081526020017f434c4b5f43414e4e4f545f44454c41595f504153545f53544152545f54494d4581525090613d7f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b50600054825467ffffffffffffffff19166001600160401b0391821685038216178355604080518383168152918516602083015280517f9b735da8a0762c6e913df06587b4fa81f87b8075e2a2afdeae6afde9456fd8799281900390910190a1505050565b6040805180820190915260138152724d41544836345f4144445f4f564552464c4f5760681b6020820152600090838301906001600160401b038086169083161015613e705760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b509392505050565b60006001600160a01b038216613e90575060006111ba565b503b151590565b6000610f1c613ea4613f01565b613f05565b6000610f1c613ea4613f8a565b600080613ec38484613f8e565b905060038181548110613ed257fe5b90600052602060002090600b020191505092915050565b611d8b8161401d565b61271061ffff82161115919050565b4290565b60408051808201909152601581527455494e5436345f4e554d4245525f544f4f5f42494760581b60208201526000906001600160401b038311156138f75760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b4390565b6000816001600160401b0316836001600160401b031611613fc857506001600160401b038216600090815260046020526040902054611dbf565b6002546001600160401b039081169084168111613ffe576001600160401b03166000908152600460205260409020549050611dbf565b50506001600160401b0316600090815260046020526040902054919050565b6001600160401b038116600090815260046020526040902054806115ca57600060048161405a6001600160401b038616600163ffffffff61408d16565b6001600160401b039081168252602080830193909352604091820160009081205491871681526004909352912055505050565b6000826001600160401b0316826001600160401b03161115604051806040016040528060148152602001734d41544836345f5355425f554e444552464c4f5760601b8152509061411e5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561031b578181015183820152602001610303565b5050900390565b60405180606001604052806003906020820280388339509192915050565b6040518060a001604052806005906020820280388339509192915050565b60405180604001604052806002906020820280388339509192915050565b60405180608001604052806004906020820280388339509192915050565b8154818355818111156141c957600b0281600b0283600052602060002091820191016141c991906141ce565b505050565b610f1f91905b8082111561424f5780546001600160b01b03191681556000600182018190556002820181905560038201819055600482018190556005820180546001600160d01b031916905560068201805467ffffffffffffffff19169055600782018190556008820181905560098201819055600a820155600b016141d4565b509056fe434f4e465f4241445f494e495449414c5f475541524449414e535f4e554d424552434c4b5f43414e4e4f545f44454c41595f535441525445445f50524f544f434f4c4354525f494e56414c49445f474f5645524e4f525f41444452455353000000004354525f53454e4445525f4e4f545f474f5645524e4f52000000000000000000a265627a7a723158202a245db9007fb55885070ea0d613ecc6ca5e03a84d124391d40ff3fe1f052dc164736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
