{
  "abi": [
    {
      "type": "constructor",
      "inputs": [
        {
          "name": "router",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "config",
          "type": "tuple",
          "internalType": "struct FunctionsBillingConfig",
          "components": [
            {
              "name": "fulfillmentGasPriceOverEstimationBP",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "feedStalenessSeconds",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "gasOverheadBeforeCallback",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "gasOverheadAfterCallback",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "minimumEstimateGasPriceWei",
              "type": "uint40",
              "internalType": "uint40"
            },
            {
              "name": "maxSupportedRequestDataVersion",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "fallbackUsdPerUnitLink",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "fallbackUsdPerUnitLinkDecimals",
              "type": "uint8",
              "internalType": "uint8"
            },
            {
              "name": "fallbackNativePerUnitLink",
              "type": "uint224",
              "internalType": "uint224"
            },
            {
              "name": "requestTimeoutSeconds",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "donFeeCentsUsd",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "operationFeeCentsUsd",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "transmitTxSizeBytes",
              "type": "uint16",
              "internalType": "uint16"
            }
          ]
        },
        {
          "name": "linkToNativeFeed",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "linkToUsdFeed",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "acceptOwnership",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "deleteCommitment",
      "inputs": [
        {
          "name": "requestId",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "estimateCost",
      "inputs": [
        {
          "name": "subscriptionId",
          "type": "uint64",
          "internalType": "uint64"
        },
        {
          "name": "data",
          "type": "bytes",
          "internalType": "bytes"
        },
        {
          "name": "callbackGasLimit",
          "type": "uint32",
          "internalType": "uint32"
        },
        {
          "name": "gasPriceWei",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint96",
          "internalType": "uint96"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getAdminFeeJuels",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint72",
          "internalType": "uint72"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getConfig",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "tuple",
          "internalType": "struct FunctionsBillingConfig",
          "components": [
            {
              "name": "fulfillmentGasPriceOverEstimationBP",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "feedStalenessSeconds",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "gasOverheadBeforeCallback",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "gasOverheadAfterCallback",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "minimumEstimateGasPriceWei",
              "type": "uint40",
              "internalType": "uint40"
            },
            {
              "name": "maxSupportedRequestDataVersion",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "fallbackUsdPerUnitLink",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "fallbackUsdPerUnitLinkDecimals",
              "type": "uint8",
              "internalType": "uint8"
            },
            {
              "name": "fallbackNativePerUnitLink",
              "type": "uint224",
              "internalType": "uint224"
            },
            {
              "name": "requestTimeoutSeconds",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "donFeeCentsUsd",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "operationFeeCentsUsd",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "transmitTxSizeBytes",
              "type": "uint16",
              "internalType": "uint16"
            }
          ]
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getDONFeeJuels",
      "inputs": [
        {
          "name": "",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [
        {
          "name": "",
          "type": "uint72",
          "internalType": "uint72"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getDONPublicKey",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getOperationFeeJuels",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint72",
          "internalType": "uint72"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getThresholdPublicKey",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getUsdPerUnitLink",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        },
        {
          "name": "",
          "type": "uint8",
          "internalType": "uint8"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "getWeiPerUnitLink",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "uint256",
          "internalType": "uint256"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "latestConfigDetails",
      "inputs": [],
      "outputs": [
        {
          "name": "configCount",
          "type": "uint32",
          "internalType": "uint32"
        },
        {
          "name": "blockNumber",
          "type": "uint32",
          "internalType": "uint32"
        },
        {
          "name": "configDigest",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "latestConfigDigestAndEpoch",
      "inputs": [],
      "outputs": [
        {
          "name": "scanLogs",
          "type": "bool",
          "internalType": "bool"
        },
        {
          "name": "configDigest",
          "type": "bytes32",
          "internalType": "bytes32"
        },
        {
          "name": "epoch",
          "type": "uint32",
          "internalType": "uint32"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "oracleWithdraw",
      "inputs": [
        {
          "name": "recipient",
          "type": "address",
          "internalType": "address"
        },
        {
          "name": "amount",
          "type": "uint96",
          "internalType": "uint96"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "oracleWithdrawAll",
      "inputs": [],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "owner",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address",
          "internalType": "address"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "setConfig",
      "inputs": [
        {
          "name": "_signers",
          "type": "address[]",
          "internalType": "address[]"
        },
        {
          "name": "_transmitters",
          "type": "address[]",
          "internalType": "address[]"
        },
        {
          "name": "_f",
          "type": "uint8",
          "internalType": "uint8"
        },
        {
          "name": "_onchainConfig",
          "type": "bytes",
          "internalType": "bytes"
        },
        {
          "name": "_offchainConfigVersion",
          "type": "uint64",
          "internalType": "uint64"
        },
        {
          "name": "_offchainConfig",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setDONPublicKey",
      "inputs": [
        {
          "name": "donPublicKey",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "setThresholdPublicKey",
      "inputs": [
        {
          "name": "thresholdPublicKey",
          "type": "bytes",
          "internalType": "bytes"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "startRequest",
      "inputs": [
        {
          "name": "request",
          "type": "tuple",
          "internalType": "struct FunctionsResponse.RequestMeta",
          "components": [
            {
              "name": "data",
              "type": "bytes",
              "internalType": "bytes"
            },
            {
              "name": "flags",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "requestingContract",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "availableBalance",
              "type": "uint96",
              "internalType": "uint96"
            },
            {
              "name": "adminFee",
              "type": "uint72",
              "internalType": "uint72"
            },
            {
              "name": "subscriptionId",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "initiatedRequests",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "callbackGasLimit",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "dataVersion",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "completedRequests",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "subscriptionOwner",
              "type": "address",
              "internalType": "address"
            }
          ]
        }
      ],
      "outputs": [
        {
          "name": "commitment",
          "type": "tuple",
          "internalType": "struct FunctionsResponse.Commitment",
          "components": [
            {
              "name": "requestId",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "coordinator",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "estimatedTotalCostJuels",
              "type": "uint96",
              "internalType": "uint96"
            },
            {
              "name": "client",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "subscriptionId",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "callbackGasLimit",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "adminFee",
              "type": "uint72",
              "internalType": "uint72"
            },
            {
              "name": "donFee",
              "type": "uint72",
              "internalType": "uint72"
            },
            {
              "name": "gasOverheadBeforeCallback",
              "type": "uint40",
              "internalType": "uint40"
            },
            {
              "name": "gasOverheadAfterCallback",
              "type": "uint40",
              "internalType": "uint40"
            },
            {
              "name": "timeoutTimestamp",
              "type": "uint32",
              "internalType": "uint32"
            }
          ]
        }
      ],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transferOwnership",
      "inputs": [
        {
          "name": "to",
          "type": "address",
          "internalType": "address"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transmit",
      "inputs": [
        {
          "name": "reportContext",
          "type": "bytes32[3]",
          "internalType": "bytes32[3]"
        },
        {
          "name": "report",
          "type": "bytes",
          "internalType": "bytes"
        },
        {
          "name": "rs",
          "type": "bytes32[]",
          "internalType": "bytes32[]"
        },
        {
          "name": "ss",
          "type": "bytes32[]",
          "internalType": "bytes32[]"
        },
        {
          "name": "rawVs",
          "type": "bytes32",
          "internalType": "bytes32"
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "function",
      "name": "transmitters",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "address[]",
          "internalType": "address[]"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "typeAndVersion",
      "inputs": [],
      "outputs": [
        {
          "name": "",
          "type": "string",
          "internalType": "string"
        }
      ],
      "stateMutability": "view"
    },
    {
      "type": "function",
      "name": "updateConfig",
      "inputs": [
        {
          "name": "config",
          "type": "tuple",
          "internalType": "struct FunctionsBillingConfig",
          "components": [
            {
              "name": "fulfillmentGasPriceOverEstimationBP",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "feedStalenessSeconds",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "gasOverheadBeforeCallback",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "gasOverheadAfterCallback",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "minimumEstimateGasPriceWei",
              "type": "uint40",
              "internalType": "uint40"
            },
            {
              "name": "maxSupportedRequestDataVersion",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "fallbackUsdPerUnitLink",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "fallbackUsdPerUnitLinkDecimals",
              "type": "uint8",
              "internalType": "uint8"
            },
            {
              "name": "fallbackNativePerUnitLink",
              "type": "uint224",
              "internalType": "uint224"
            },
            {
              "name": "requestTimeoutSeconds",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "donFeeCentsUsd",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "operationFeeCentsUsd",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "transmitTxSizeBytes",
              "type": "uint16",
              "internalType": "uint16"
            }
          ]
        }
      ],
      "outputs": [],
      "stateMutability": "nonpayable"
    },
    {
      "type": "event",
      "name": "CommitmentDeleted",
      "inputs": [
        {
          "name": "requestId",
          "type": "bytes32",
          "indexed": false,
          "internalType": "bytes32"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "ConfigSet",
      "inputs": [
        {
          "name": "previousConfigBlockNumber",
          "type": "uint32",
          "indexed": false,
          "internalType": "uint32"
        },
        {
          "name": "configDigest",
          "type": "bytes32",
          "indexed": false,
          "internalType": "bytes32"
        },
        {
          "name": "configCount",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        },
        {
          "name": "signers",
          "type": "address[]",
          "indexed": false,
          "internalType": "address[]"
        },
        {
          "name": "transmitters",
          "type": "address[]",
          "indexed": false,
          "internalType": "address[]"
        },
        {
          "name": "f",
          "type": "uint8",
          "indexed": false,
          "internalType": "uint8"
        },
        {
          "name": "onchainConfig",
          "type": "bytes",
          "indexed": false,
          "internalType": "bytes"
        },
        {
          "name": "offchainConfigVersion",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        },
        {
          "name": "offchainConfig",
          "type": "bytes",
          "indexed": false,
          "internalType": "bytes"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "ConfigUpdated",
      "inputs": [
        {
          "name": "config",
          "type": "tuple",
          "indexed": false,
          "internalType": "struct FunctionsBillingConfig",
          "components": [
            {
              "name": "fulfillmentGasPriceOverEstimationBP",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "feedStalenessSeconds",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "gasOverheadBeforeCallback",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "gasOverheadAfterCallback",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "minimumEstimateGasPriceWei",
              "type": "uint40",
              "internalType": "uint40"
            },
            {
              "name": "maxSupportedRequestDataVersion",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "fallbackUsdPerUnitLink",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "fallbackUsdPerUnitLinkDecimals",
              "type": "uint8",
              "internalType": "uint8"
            },
            {
              "name": "fallbackNativePerUnitLink",
              "type": "uint224",
              "internalType": "uint224"
            },
            {
              "name": "requestTimeoutSeconds",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "donFeeCentsUsd",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "operationFeeCentsUsd",
              "type": "uint16",
              "internalType": "uint16"
            },
            {
              "name": "transmitTxSizeBytes",
              "type": "uint16",
              "internalType": "uint16"
            }
          ]
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OracleRequest",
      "inputs": [
        {
          "name": "requestId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "bytes32"
        },
        {
          "name": "requestingContract",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "requestInitiator",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "subscriptionId",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        },
        {
          "name": "subscriptionOwner",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        },
        {
          "name": "data",
          "type": "bytes",
          "indexed": false,
          "internalType": "bytes"
        },
        {
          "name": "dataVersion",
          "type": "uint16",
          "indexed": false,
          "internalType": "uint16"
        },
        {
          "name": "flags",
          "type": "bytes32",
          "indexed": false,
          "internalType": "bytes32"
        },
        {
          "name": "callbackGasLimit",
          "type": "uint64",
          "indexed": false,
          "internalType": "uint64"
        },
        {
          "name": "commitment",
          "type": "tuple",
          "indexed": false,
          "internalType": "struct FunctionsResponse.Commitment",
          "components": [
            {
              "name": "requestId",
              "type": "bytes32",
              "internalType": "bytes32"
            },
            {
              "name": "coordinator",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "estimatedTotalCostJuels",
              "type": "uint96",
              "internalType": "uint96"
            },
            {
              "name": "client",
              "type": "address",
              "internalType": "address"
            },
            {
              "name": "subscriptionId",
              "type": "uint64",
              "internalType": "uint64"
            },
            {
              "name": "callbackGasLimit",
              "type": "uint32",
              "internalType": "uint32"
            },
            {
              "name": "adminFee",
              "type": "uint72",
              "internalType": "uint72"
            },
            {
              "name": "donFee",
              "type": "uint72",
              "internalType": "uint72"
            },
            {
              "name": "gasOverheadBeforeCallback",
              "type": "uint40",
              "internalType": "uint40"
            },
            {
              "name": "gasOverheadAfterCallback",
              "type": "uint40",
              "internalType": "uint40"
            },
            {
              "name": "timeoutTimestamp",
              "type": "uint32",
              "internalType": "uint32"
            }
          ]
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OracleResponse",
      "inputs": [
        {
          "name": "requestId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "bytes32"
        },
        {
          "name": "transmitter",
          "type": "address",
          "indexed": false,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferRequested",
      "inputs": [
        {
          "name": "from",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "to",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "OwnershipTransferred",
      "inputs": [
        {
          "name": "from",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        },
        {
          "name": "to",
          "type": "address",
          "indexed": true,
          "internalType": "address"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "RequestBilled",
      "inputs": [
        {
          "name": "requestId",
          "type": "bytes32",
          "indexed": true,
          "internalType": "bytes32"
        },
        {
          "name": "juelsPerGas",
          "type": "uint96",
          "indexed": false,
          "internalType": "uint96"
        },
        {
          "name": "l1FeeShareWei",
          "type": "uint256",
          "indexed": false,
          "internalType": "uint256"
        },
        {
          "name": "callbackCostJuels",
          "type": "uint96",
          "indexed": false,
          "internalType": "uint96"
        },
        {
          "name": "donFeeJuels",
          "type": "uint72",
          "indexed": false,
          "internalType": "uint72"
        },
        {
          "name": "adminFeeJuels",
          "type": "uint72",
          "indexed": false,
          "internalType": "uint72"
        },
        {
          "name": "operationFeeJuels",
          "type": "uint72",
          "indexed": false,
          "internalType": "uint72"
        }
      ],
      "anonymous": false
    },
    {
      "type": "event",
      "name": "Transmitted",
      "inputs": [
        {
          "name": "configDigest",
          "type": "bytes32",
          "indexed": false,
          "internalType": "bytes32"
        },
        {
          "name": "epoch",
          "type": "uint32",
          "indexed": false,
          "internalType": "uint32"
        }
      ],
      "anonymous": false
    },
    {
      "type": "error",
      "name": "EmptyPublicKey",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InconsistentReportData",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InsufficientBalance",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidCalldata",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidConfig",
      "inputs": [
        {
          "name": "message",
          "type": "string",
          "internalType": "string"
        }
      ]
    },
    {
      "type": "error",
      "name": "InvalidLinkWeiPrice",
      "inputs": [
        {
          "name": "linkWei",
          "type": "int256",
          "internalType": "int256"
        }
      ]
    },
    {
      "type": "error",
      "name": "InvalidSubscription",
      "inputs": []
    },
    {
      "type": "error",
      "name": "InvalidUsdLinkPrice",
      "inputs": [
        {
          "name": "usdLink",
          "type": "int256",
          "internalType": "int256"
        }
      ]
    },
    {
      "type": "error",
      "name": "MustBeSubOwner",
      "inputs": [
        {
          "name": "owner",
          "type": "address",
          "internalType": "address"
        }
      ]
    },
    {
      "type": "error",
      "name": "NoTransmittersSet",
      "inputs": []
    },
    {
      "type": "error",
      "name": "OnlyCallableByRouter",
      "inputs": []
    },
    {
      "type": "error",
      "name": "OnlyCallableByRouterOwner",
      "inputs": []
    },
    {
      "type": "error",
      "name": "PaymentTooLarge",
      "inputs": []
    },
    {
      "type": "error",
      "name": "ReportInvalid",
      "inputs": [
        {
          "name": "message",
          "type": "string",
          "internalType": "string"
        }
      ]
    },
    {
      "type": "error",
      "name": "RouterMustBeSet",
      "inputs": []
    },
    {
      "type": "error",
      "name": "UnauthorizedPublicKeyChange",
      "inputs": []
    },
    {
      "type": "error",
      "name": "UnauthorizedSender",
      "inputs": []
    },
    {
      "type": "error",
      "name": "UnsupportedRequestDataVersion",
      "inputs": []
    }
  ],
  "bytecode": {
    "object": "0x60a06040523480156200001157600080fd5b5060405162006047380380620060478339810160408190526200003491620004f2565b83838383833380600081620000905760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000c357620000c3816200014e565b5050506001600160a01b038116620000ee57604051632530e88560e11b815260040160405180910390fd5b6001600160a01b03908116608052600c80546001600160601b03166c0100000000000000000000000085841602179055600d80546001600160a01b0319169183169190911790556200014083620001f9565b505050505050505062000779565b336001600160a01b03821603620001a85760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000087565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b62000203620003b5565b80516008805460208401516040808601516060870151608088015160a089015160c08a015160e08b015163ffffffff9a8b166001600160401b031990991698909817640100000000978b16880217600160401b600160801b03191668010000000000000000958b169590950263ffffffff60601b1916949094176c01000000000000000000000000938a16939093029290921766ffffffffffffff60801b1916600160801b64ffffffffff9092169190910261ffff60a81b191617600160a81b61ffff92831602176001600160b81b0316600160b81b6001600160401b03909316929092026001600160f81b031691909117600160f81b60ff90951694909402939093179093556101008501516101208601516001600160e01b03909116600160e01b919095160293909317600955610140840151600a805461016087015161018088015193851663ffffffff199092169190911762010000918516919091021761ffff60201b19169190921690930292909217909155517f9832846a11905a128363408ace5f9803f449fcb017d3cf7e22a50c6e332931b290620003aa90839062000663565b60405180910390a150565b620003bf620003c1565b565b6000546001600160a01b03163314620003bf5760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640162000087565b80516001600160a01b03811681146200043557600080fd5b919050565b6040516101a081016001600160401b03811182821017156200046c57634e487b7160e01b600052604160045260246000fd5b60405290565b805163ffffffff811681146200043557600080fd5b805164ffffffffff811681146200043557600080fd5b805161ffff811681146200043557600080fd5b80516001600160401b03811681146200043557600080fd5b805160ff811681146200043557600080fd5b80516001600160e01b03811681146200043557600080fd5b6000806000808486036102008112156200050b57600080fd5b62000516866200041d565b94506101a080601f19830112156200052d57600080fd5b620005376200043a565b9150620005476020880162000472565b8252620005576040880162000472565b60208301526200056a6060880162000472565b60408301526200057d6080880162000472565b60608301526200059060a0880162000487565b6080830152620005a360c088016200049d565b60a0830152620005b660e08801620004b0565b60c0830152610100620005cb818901620004c8565b60e0840152610120620005e0818a01620004da565b828501526101409150620005f6828a0162000472565b908401526101606200060a8982016200049d565b82850152610180915062000620828a016200049d565b90840152620006318883016200049d565b90830152509250620006476101c086016200041d565b9150620006586101e086016200041d565b905092959194509250565b815163ffffffff1681526101a0810160208301516200068a602084018263ffffffff169052565b506040830151620006a3604084018263ffffffff169052565b506060830151620006bc606084018263ffffffff169052565b506080830151620006d6608084018264ffffffffff169052565b5060a0830151620006ed60a084018261ffff169052565b5060c08301516200070960c08401826001600160401b03169052565b5060e08301516200071f60e084018260ff169052565b50610100838101516001600160e01b0316908301526101208084015163ffffffff16908301526101408084015161ffff90811691840191909152610160808501518216908401526101809384015116929091019190915290565b608051615888620007bf600039600081816107af01528181610c9001528181610f240152818161103a01528181611b7101528181612a2f015261397801526158886000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c80638da5cb5b116100ee578063d227d24511610097578063e4ddcea611610071578063e4ddcea6146105e8578063f2f22ef1146105fe578063f2fde38b14610606578063f6ea41f61461061957600080fd5b8063d227d2451461059d578063d328a91e146105cd578063e3d0e712146105d557600080fd5b8063b1dc65a4116100c8578063b1dc65a414610396578063c074ef21146103a9578063c3f909d4146103bc57600080fd5b80638da5cb5b1461032e578063a631571e14610356578063afcb95d71461037657600080fd5b80637d4807871161015057806381f1b9381161012a57806381f1b938146102a657806381ff7048146102ae57806385b214cf1461031b57600080fd5b80637d480787146102765780637f15e1661461027e578063814118341461029157600080fd5b806366316d8d1161018157806366316d8d1461023c5780637212762f1461024f57806379ba50971461026e57600080fd5b8063083a5466146101a8578063181f5a77146101bd578063626f458c1461020f575b600080fd5b6101bb6101b6366004614029565b610621565b005b6101f96040518060400160405280601c81526020017f46756e6374696f6e7320436f6f7264696e61746f722076312e332e310000000081525081565b60405161020691906140cf565b60405180910390f35b61022261021d36600461423c565b610676565b60405168ffffffffffffffffff9091168152602001610206565b6101bb61024a3660046142c3565b6106b3565b61025761086c565b6040805192835260ff909116602083015201610206565b6101bb610a7f565b6101bb610b7c565b6101bb61028c366004614029565b610d7c565b610299610dcc565b604051610206919061434d565b6101f9610e3b565b6102f860015460025463ffffffff74010000000000000000000000000000000000000000830481169378010000000000000000000000000000000000000000000000009093041691565b6040805163ffffffff948516815293909216602084015290820152606001610206565b6101bb610329366004614360565b610f0c565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610206565b610369610364366004614379565b610fc9565b60405161020691906144ce565b604080516001815260006020820181905291810191909152606001610206565b6101bb6103a4366004614522565b61125a565b6101bb6103b736600461468d565b611871565b610590604080516101a081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081019190915250604080516101a08101825260085463ffffffff8082168352640100000000808304821660208501526801000000000000000083048216948401949094526c01000000000000000000000000820481166060840152700100000000000000000000000000000000820464ffffffffff1660808401527501000000000000000000000000000000000000000000820461ffff90811660a085015277010000000000000000000000000000000000000000000000830467ffffffffffffffff1660c08501527f010000000000000000000000000000000000000000000000000000000000000090920460ff1660e08401526009547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81166101008501527c0100000000000000000000000000000000000000000000000000000000900416610120830152600a5480821661014084015262010000810482166101608401529290920490911661018082015290565b604051610206919061478b565b6105b06105ab3660046148b5565b611b6d565b6040516bffffffffffffffffffffffff9091168152602001610206565b6101f9611cdb565b6101bb6105e33660046149bd565b611d32565b6105f06128ae565b604051908152602001610206565b6102226129f2565b6101bb610614366004614a8a565b612a17565b610222612a2b565b610629612abc565b6000819003610664576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f610671828483614b3a565b505050565b600a546000906106ad906064906106909061ffff16612b3f565b61069a9190614cb3565b6bffffffffffffffffffffffff16612b8c565b92915050565b6106bb612c2b565b806bffffffffffffffffffffffff166000036106f55750336000908152600b60205260409020546bffffffffffffffffffffffff1661074f565b336000908152600b60205260409020546bffffffffffffffffffffffff8083169116101561074f576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600b60205260408120805483929061077c9084906bffffffffffffffffffffffff16614cde565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506107d17f000000000000000000000000000000000000000000000000000000000000000090565b6040517f66316d8d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526bffffffffffffffffffffffff8416602483015291909116906366316d8d90604401600060405180830381600087803b15801561085057600080fd5b505af1158015610864573d6000803e3d6000fd5b505050505050565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156108df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109039190614d24565b5093505092505080426109169190614d74565b600854640100000000900463ffffffff161080156109435750600854640100000000900463ffffffff1615155b156109a057505060085477010000000000000000000000000000000000000000000000810467ffffffffffffffff16937f010000000000000000000000000000000000000000000000000000000000000090910460ff1692509050565b600082136109e2576040517f56b22ab8000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b600d54604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051849273ffffffffffffffffffffffffffffffffffffffff169163313ce5679160048083019260209291908290030181865afa158015610a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a759190614d87565b9350935050509091565b60015473ffffffffffffffffffffffffffffffffffffffff163314610b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016109d9565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610b84612df2565b610b8c612c2b565b6000610b96610dcc565b905060005b8151811015610d78576000600b6000848481518110610bbc57610bbc614da4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252810191909152604001600020546bffffffffffffffffffffffff1690508015610d67576000600b6000858581518110610c1b57610c1b614da4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610cb27f000000000000000000000000000000000000000000000000000000000000000090565b73ffffffffffffffffffffffffffffffffffffffff166366316d8d848481518110610cdf57610cdf614da4565b6020026020010151836040518363ffffffff1660e01b8152600401610d3492919073ffffffffffffffffffffffffffffffffffffffff9290921682526bffffffffffffffffffffffff16602082015260400190565b600060405180830381600087803b158015610d4e57600080fd5b505af1158015610d62573d6000803e3d6000fd5b505050505b50610d7181614dd3565b9050610b9b565b5050565b610d84612abc565b6000819003610dbf576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e610671828483614b3a565b60606006805480602002602001604051908101604052809291908181526020018280548015610e3157602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610e06575b5050505050905090565b6060600f8054610e4a90614aa7565b9050600003610e85576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f8054610e9290614aa7565b80601f0160208091040260200160405190810160405280929190818152602001828054610ebe90614aa7565b8015610e315780601f10610ee057610100808354040283529160200191610e31565b820191906000526020600020905b815481529060010190602001808311610eee57509395945050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610f7b576040517fc41a5b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526007602052604080822091909155517f8a4b97add3359bd6bcf5e82874363670eb5ad0f7615abddbd0ed0a3a98f0f41690610fbe9083815260200190565b60405180910390a150565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091523373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611091576040517fc41a5b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006110a461109f84614e2d565b612dfa565b90925090506110b96060840160408501614a8a565b825173ffffffffffffffffffffffffffffffffffffffff91909116907fbf50768ccf13bd0110ca6d53a9c4f1f3271abdd4c24a56878863ed25b20598ff3261110760c0880160a08901614f1a565b61111961016089016101408a01614a8a565b6111238980614f37565b6111356101208c016101008d01614f9c565b60208c013561114b6101008e0160e08f01614fb7565b6040518061016001604052808e6000015181526020018e6020015173ffffffffffffffffffffffffffffffffffffffff1681526020018e604001516bffffffffffffffffffffffff1681526020018e6060015173ffffffffffffffffffffffffffffffffffffffff1681526020018e6080015167ffffffffffffffff1681526020018e60a0015163ffffffff1681526020018d68ffffffffffffffffff1681526020018e60e0015168ffffffffffffffffff1681526020018e610100015164ffffffffff1681526020018e610120015164ffffffffff1681526020018e610140015163ffffffff1681525060405161124b99989796959493929190614fd4565b60405180910390a3505b919050565b60008061126789896131ac565b915091508115611278575050611867565b604080518b3580825262ffffff6020808f0135600881901c9290921690840152909290917fb04e63db38c49950639fa09d29872f21f5d49d614f3a969d8adf3d4b52e41a62910160405180910390a16112d58b8b8b8b8b8b613335565b6003546000906002906112f39060ff8082169161010090041661508a565b6112fd91906150a3565b61130890600161508a565b60ff169050888114611376576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f77726f6e67206e756d626572206f66207369676e61747572657300000000000060448201526064016109d9565b888714611405576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f7265706f727420727320616e64207373206d757374206265206f66206571756160448201527f6c206c656e67746800000000000000000000000000000000000000000000000060648201526084016109d9565b3360009081526004602090815260408083208151808301909252805460ff80821684529293919291840191610100909104166002811115611448576114486150c5565b6002811115611459576114596150c5565b9052509050600281602001516002811115611476576114766150c5565b141580156114bf57506006816000015160ff168154811061149957611499614da4565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff163314155b15611526576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f756e617574686f72697a6564207472616e736d6974746572000000000000000060448201526064016109d9565b50505050611532613fc8565b60008a8a6040516115449291906150f4565b60405190819003812061155b918e90602001615104565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120838301909252600080845290830152915060005b898110156118575760006001848984602081106115c4576115c4614da4565b6115d191901a601b61508a565b8e8e868181106115e3576115e3614da4565b905060200201358d8d878181106115fc576115fc614da4565b9050602002013560405160008152602001604052604051611639949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561165b573d6000803e3d6000fd5b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081015173ffffffffffffffffffffffffffffffffffffffff811660009081526004602090815290849020838501909452835460ff808216855292965092945084019161010090041660028111156116db576116db6150c5565b60028111156116ec576116ec6150c5565b9052509250600183602001516002811115611709576117096150c5565b14611770576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f61646472657373206e6f7420617574686f72697a656420746f207369676e000060448201526064016109d9565b8251600090869060ff16601f811061178a5761178a614da4565b602002015173ffffffffffffffffffffffffffffffffffffffff161461180c576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f6e2d756e69717565207369676e617475726500000000000000000000000060448201526064016109d9565b8085846000015160ff16601f811061182657611826614da4565b73ffffffffffffffffffffffffffffffffffffffff90921660209290920201525061185081614dd3565b90506115a5565b505050611863826133ec565b5050505b5050505050505050565b611879612df2565b80516008805460208401516040808601516060870151608088015160a089015160c08a015160e08b015163ffffffff9a8b167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090991698909817640100000000978b168802177fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff1668010000000000000000958b16959095027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff16949094176c01000000000000000000000000938a1693909302929092177fffffffffffffffffff00000000000000ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000064ffffffffff909216919091027fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff1617750100000000000000000000000000000000000000000061ffff928316021776ffffffffffffffffffffffffffffffffffffffffffffff167701000000000000000000000000000000000000000000000067ffffffffffffffff909316929092027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16919091177f010000000000000000000000000000000000000000000000000000000000000060ff90951694909402939093179093556101008501516101208601517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091167c0100000000000000000000000000000000000000000000000000000000919095160293909317600955610140840151600a80546101608701516101808801519385167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216919091176201000091851691909102177fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff169190921690930292909217909155517f9832846a11905a128363408ace5f9803f449fcb017d3cf7e22a50c6e332931b290610fbe90839061478b565b60007f00000000000000000000000000000000000000000000000000000000000000006040517f10fc49c100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8816600482015263ffffffff8516602482015273ffffffffffffffffffffffffffffffffffffffff91909116906310fc49c19060440160006040518083038186803b158015611c0d57600080fd5b505afa158015611c21573d6000803e3d6000fd5b5050505066038d7ea4c68000821115611c66576040517f8129bbcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c70612a2b565b90506000611cb387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061067692505050565b90506000611cbf6129f2565b9050611cce868684868561353b565b9998505050505050505050565b6060600e8054611cea90614aa7565b9050600003611d25576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e8054610e9290614aa7565b855185518560ff16601f831115611da5576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f746f6f206d616e79207369676e6572730000000000000000000000000000000060448201526064016109d9565b80600003611e0f576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f66206d75737420626520706f736974697665000000000000000000000000000060448201526064016109d9565b818314611e9d576040517f89a61989000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f6f7261636c6520616464726573736573206f7574206f6620726567697374726160448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016109d9565b611ea8816003615118565b8311611f10576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661756c74792d6f7261636c65206620746f6f2068696768000000000000000060448201526064016109d9565b611f18612abc565b6040805160c0810182528a8152602081018a905260ff89169181018290526060810188905267ffffffffffffffff8716608082015260a0810186905290611f5f9088613699565b6005541561211457600554600090611f7990600190614d74565b9050600060058281548110611f9057611f90614da4565b60009182526020822001546006805473ffffffffffffffffffffffffffffffffffffffff90921693509084908110611fca57611fca614da4565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff85811684526004909252604080842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009081169091559290911680845292208054909116905560058054919250908061204a5761204a61512f565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905560068054806120b3576120b361512f565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550611f5f915050565b60005b8151518110156126cb5781518051600091908390811061213957612139614da4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036121be576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7369676e6572206d757374206e6f7420626520656d707479000000000000000060448201526064016109d9565b600073ffffffffffffffffffffffffffffffffffffffff16826020015182815181106121ec576121ec614da4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603612271576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f7472616e736d6974746572206d757374206e6f7420626520656d70747900000060448201526064016109d9565b6000600460008460000151848151811061228d5761228d614da4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002054610100900460ff1660028111156122d7576122d76150c5565b1461233e576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f7265706561746564207369676e6572206164647265737300000000000000000060448201526064016109d9565b6040805180820190915260ff8216815260016020820152825180516004916000918590811061236f5761236f614da4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252818101929092526040016000208251815460ff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082168117835592840151919283917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001617610100836002811115612410576124106150c5565b0217905550600091506124209050565b600460008460200151848151811061243a5761243a614da4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002054610100900460ff166002811115612484576124846150c5565b146124eb576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7265706561746564207472616e736d697474657220616464726573730000000060448201526064016109d9565b6040805180820190915260ff82168152602081016002815250600460008460200151848151811061251e5761251e614da4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252818101929092526040016000208251815460ff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082168117835592840151919283917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016176101008360028111156125bf576125bf6150c5565b0217905550508251805160059250839081106125dd576125dd614da4565b602090810291909101810151825460018101845560009384529282902090920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909316929092179091558201518051600691908390811061265957612659614da4565b60209081029190910181015182546001810184556000938452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055806126c381614dd3565b915050612117565b506040810151600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff909216919091179055600180547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff8116780100000000000000000000000000000000000000000000000063ffffffff43811682029290921780855592048116929182916014916127839184917401000000000000000000000000000000000000000090041661515e565b92506101000a81548163ffffffff021916908363ffffffff1602179055506127e24630600160149054906101000a900463ffffffff1663ffffffff16856000015186602001518760400151886060015189608001518a60a001516136b2565b600281905582518051600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010060ff9093169290920291909117905560015460208501516040808701516060880151608089015160a08a015193517f1591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e0598612899988b9891977401000000000000000000000000000000000000000090920463ffffffff1696909591949193919261517b565b60405180910390a15050505050505050505050565b6000806000600c8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561291e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129429190614d24565b5093505092505080426129559190614d74565b600854640100000000900463ffffffff161080156129825750600854640100000000900463ffffffff1615155b156129af5750506009547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16919050565b600082136129ec576040517f43d4cf66000000000000000000000000000000000000000000000000000000008152600481018390526024016109d9565b50919050565b600a54600090612a12906064906106909062010000900461ffff16612b3f565b905090565b612a1f612abc565b612a288161375d565b50565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632a905ccc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a12919061520c565b60005473ffffffffffffffffffffffffffffffffffffffff163314612b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016109d9565b565b6000806000612b4c61086c565b9092509050612b8482612b6083601261508a565b612b6b90600a615349565b612b759087615118565b612b7f9190615358565b613852565b949350505050565b600068ffffffffffffffffff821115612c27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203760448201527f322062697473000000000000000000000000000000000000000000000000000060648201526084016109d9565b5090565b600c546bffffffffffffffffffffffff16600003612c4557565b6000612c4f610dcc565b80519091506000819003612c8f576040517f30274b3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54600090612cae9083906bffffffffffffffffffffffff16614cb3565b9050806bffffffffffffffffffffffff16600003612ccb57505050565b60005b82811015612d945781600b6000868481518110612ced57612ced614da4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a90046bffffffffffffffffffffffff16612d55919061536c565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555080612d8d90614dd3565b9050612cce565b50612d9f8282615391565b600c8054600090612dbf9084906bffffffffffffffffffffffff16614cde565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505050565b612b3d612abc565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081019190915260085461010083015160009161ffff7501000000000000000000000000000000000000000000909104811691161115612eb8576040517fdada758700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ec78460000151610676565b9050612ed16129f2565b91506000612eea8560e001513a8488608001518761353b565b9050806bffffffffffffffffffffffff1685606001516bffffffffffffffffffffffff161015612f46576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600954600090612f7c907c0100000000000000000000000000000000000000000000000000000000900463ffffffff16426153b9565b905060003087604001518860a001518960c001516001612f9c91906153cc565b8a5180516020918201206101008d015160e08e015160405161305098979695948c918c9132910173ffffffffffffffffffffffffffffffffffffffff9a8b168152988a1660208a015267ffffffffffffffff97881660408a0152959096166060880152608087019390935261ffff9190911660a086015263ffffffff90811660c08601526bffffffffffffffffffffffff9190911660e0850152919091166101008301529091166101208201526101400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201206101608401835280845230848301526bffffffffffffffffffffffff8716848401528a83015173ffffffffffffffffffffffffffffffffffffffff16606085015260a0808c015167ffffffffffffffff1660808087019190915260e0808e015163ffffffff90811693880193909352908d015168ffffffffffffffffff90811660c08801528a169086015260085468010000000000000000810482166101008701526c01000000000000000000000000900481166101208601528616610140850152915192985090925061315c918891016144ce565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600093845260079092529091205550929491935090915050565b60006131e06040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000808080806131f2888a018a6154c8565b84519499509297509095509350915060ff16801580613212575084518114155b8061321e575083518114155b8061322a575082518114155b80613236575081518114155b1561329d576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4669656c6473206d75737420626520657175616c206c656e677468000000000060448201526064016109d9565b60005b81811015613303576132d98782815181106132bd576132bd614da4565b6020026020010151600090815260076020526040902054151590565b613303576132e8600183614d74565b81036132f357600198505b6132fc81614dd3565b90506132a0565b50506040805160a0810182529586526020860194909452928401919091526060830152608082015290505b9250929050565b6000613342826020615118565b61334d856020615118565b613359886101446153b9565b61336391906153b9565b61336d91906153b9565b6133789060006153b9565b90503681146133e3576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f63616c6c64617461206c656e677468206d69736d61746368000000000000000060448201526064016109d9565b50505050505050565b80515160ff1660005b8181101561067157600061349e8460000151838151811061341857613418614da4565b60200260200101518560200151848151811061343657613436614da4565b60200260200101518660400151858151811061345457613454614da4565b60200260200101518760600151868151811061347257613472614da4565b60200260200101518860800151878151811061349057613490614da4565b6020026020010151886138f0565b905060008160068111156134b4576134b46150c5565b14806134d1575060018160068111156134cf576134cf6150c5565b145b1561352a5783518051839081106134ea576134ea614da4565b60209081029190910181015160405133815290917fc708e0440951fd63499c0f7a73819b469ee5dd3ecc356c0ab4eb7f18389009d9910160405180910390a25b5061353481614dd3565b90506133f5565b600854600090700100000000000000000000000000000000900464ffffffffff1685101561358457600854700100000000000000000000000000000000900464ffffffffff1694505b60085460009087906135ba9063ffffffff6c0100000000000000000000000082048116916801000000000000000090041661515e565b6135c4919061515e565b600a5463ffffffff9190911691506000906135ea90640100000000900461ffff16613d82565b90506000816135f9848a615118565b61360391906153b9565b600854909150600090612710906136209063ffffffff1684615118565b61362a9190615358565b61363490836153b9565b9050600061364182613ece565b905060008768ffffffffffffffffff168968ffffffffffffffffff168b68ffffffffffffffffff16613673919061536c565b61367d919061536c565b9050613689818361536c565b9c9b505050505050505050505050565b60006136a3610dcc565b511115610d7857610d78612c2b565b6000808a8a8a8a8a8a8a8a8a6040516020016136d69998979695949392919061559a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e01000000000000000000000000000000000000000000000000000000000000179150509998505050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff8216036137dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016109d9565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006bffffffffffffffffffffffff821115612c27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f362062697473000000000000000000000000000000000000000000000000000060648201526084016109d9565b600080848060200190518101906139079190615666565b905060003a826101200151836101000151613922919061572e565b64ffffffffff166139339190615118565b9050600060ff851661394436613d82565b61394e9190615358565b9050600061396461395f83856153b9565b613ece565b905060006139713a613ece565b90506000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663330605298e8e868b60c0015168ffffffffffffffffff168c60e0015168ffffffffffffffffff168a6139e0919061536c565b6139ea919061536c565b336040518061016001604052808f6000015181526020018f6020015173ffffffffffffffffffffffffffffffffffffffff1681526020018f604001516bffffffffffffffffffffffff1681526020018f6060015173ffffffffffffffffffffffffffffffffffffffff1681526020018f6080015167ffffffffffffffff1681526020018f60a0015163ffffffff168152602001600068ffffffffffffffffff1681526020018f60e0015168ffffffffffffffffff1681526020018f610100015164ffffffffff1681526020018f610120015164ffffffffff1681526020018f610140015163ffffffff168152506040518763ffffffff1660e01b8152600401613af89695949392919061574c565b60408051808303816000875af1158015613b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b3a91906157c8565b90925090506000826006811115613b5357613b536150c5565b1480613b7057506001826006811115613b6e57613b6e6150c5565b145b15613d715760008e815260076020526040812055613b8e818561536c565b336000908152600b602052604081208054909190613bbb9084906bffffffffffffffffffffffff1661536c565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508660e0015168ffffffffffffffffff16600c60008282829054906101000a90046bffffffffffffffffffffffff16613c21919061536c565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508660c0015168ffffffffffffffffff16600b6000613c6b613eed565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160009081208054909190613cb19084906bffffffffffffffffffffffff1661536c565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508d7f08a4a0761e3c98d288cb4af9342660f49550d83139fb3b762b70d34bed6273688487848b60e0015160008d60c00151604051613d68969594939291906bffffffffffffffffffffffff9687168152602081019590955292909416604084015268ffffffffffffffffff9081166060840152928316608083015290911660a082015260c00190565b60405180910390a25b509c9b505050505050505050505050565b600046613d8e81613f5e565b15613e23576000606c73ffffffffffffffffffffffffffffffffffffffff166341b247a86040518163ffffffff1660e01b815260040160c060405180830381865afa158015613de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e0591906157fb565b50505050915050608c84613e1991906153b9565b612b849082615118565b613e2c81613f81565b15613ec5576040517ff1c7a58b0000000000000000000000000000000000000000000000000000000081526004810184905273420000000000000000000000000000000000000f9063f1c7a58b90602401602060405180830381865afa158015613e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ebe9190615845565b9392505050565b50600092915050565b60006106ad613edb6128ae565b612b7584670de0b6b3a7640000615118565b60003073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a12919061585e565b600061a4b1821480613f72575062066eed82145b806106ad57505062066eee1490565b6000600a821480613f9357506101a482145b80613fa0575062aa37dc82145b80613fac575061210582145b80613fb9575062014a3382145b806106ad57505062014a341490565b604051806103e00160405280601f906020820280368337509192915050565b60008083601f840112613ff957600080fd5b50813567ffffffffffffffff81111561401157600080fd5b60208301915083602082850101111561332e57600080fd5b6000806020838503121561403c57600080fd5b823567ffffffffffffffff81111561405357600080fd5b61405f85828601613fe7565b90969095509350505050565b6000815180845260005b8181101561409157602081850181015186830182015201614075565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000613ebe602083018461406b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101a0810167ffffffffffffffff81118282101715614135576141356140e2565b60405290565b604051610160810167ffffffffffffffff81118282101715614135576141356140e2565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156141a6576141a66140e2565b604052919050565b600082601f8301126141bf57600080fd5b813567ffffffffffffffff8111156141d9576141d96140e2565b61420a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161415f565b81815284602083860101111561421f57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561424e57600080fd5b813567ffffffffffffffff81111561426557600080fd5b612b84848285016141ae565b73ffffffffffffffffffffffffffffffffffffffff81168114612a2857600080fd5b803561125581614271565b6bffffffffffffffffffffffff81168114612a2857600080fd5b80356112558161429e565b600080604083850312156142d657600080fd5b82356142e181614271565b915060208301356142f18161429e565b809150509250929050565b600081518084526020808501945080840160005b8381101561434257815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614310565b509495945050505050565b602081526000613ebe60208301846142fc565b60006020828403121561437257600080fd5b5035919050565b60006020828403121561438b57600080fd5b813567ffffffffffffffff8111156143a257600080fd5b82016101608185031215613ebe57600080fd5b8051825260208101516143e0602084018273ffffffffffffffffffffffffffffffffffffffff169052565b50604081015161440060408401826bffffffffffffffffffffffff169052565b506060810151614428606084018273ffffffffffffffffffffffffffffffffffffffff169052565b506080810151614444608084018267ffffffffffffffff169052565b5060a081015161445c60a084018263ffffffff169052565b5060c081015161447960c084018268ffffffffffffffffff169052565b5060e081015161449660e084018268ffffffffffffffffff169052565b506101008181015164ffffffffff9081169184019190915261012080830151909116908301526101409081015163ffffffff16910152565b61016081016106ad82846143b5565b60008083601f8401126144ef57600080fd5b50813567ffffffffffffffff81111561450757600080fd5b6020830191508360208260051b850101111561332e57600080fd5b60008060008060008060008060e0898b03121561453e57600080fd5b606089018a81111561454f57600080fd5b8998503567ffffffffffffffff8082111561456957600080fd5b6145758c838d01613fe7565b909950975060808b013591508082111561458e57600080fd5b61459a8c838d016144dd565b909750955060a08b01359150808211156145b357600080fd5b506145c08b828c016144dd565b999c989b50969995989497949560c00135949350505050565b63ffffffff81168114612a2857600080fd5b8035611255816145d9565b64ffffffffff81168114612a2857600080fd5b8035611255816145f6565b803561ffff8116811461125557600080fd5b67ffffffffffffffff81168114612a2857600080fd5b803561125581614626565b60ff81168114612a2857600080fd5b803561125581614647565b80357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116811461125557600080fd5b60006101a082840312156146a057600080fd5b6146a8614111565b6146b1836145eb565b81526146bf602084016145eb565b60208201526146d0604084016145eb565b60408201526146e1606084016145eb565b60608201526146f260808401614609565b608082015261470360a08401614614565b60a082015261471460c0840161463c565b60c082015261472560e08401614656565b60e0820152610100614738818501614661565b9082015261012061474a8482016145eb565b9082015261014061475c848201614614565b9082015261016061476e848201614614565b90820152610180614780848201614614565b908201529392505050565b815163ffffffff1681526101a0810160208301516147b1602084018263ffffffff169052565b5060408301516147c9604084018263ffffffff169052565b5060608301516147e1606084018263ffffffff169052565b5060808301516147fa608084018264ffffffffff169052565b5060a083015161481060a084018261ffff169052565b5060c083015161482c60c084018267ffffffffffffffff169052565b5060e083015161484160e084018260ff169052565b50610100838101517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16908301526101208084015163ffffffff16908301526101408084015161ffff90811691840191909152610160808501518216908401526101808085015191821681850152905b505092915050565b6000806000806000608086880312156148cd57600080fd5b85356148d881614626565b9450602086013567ffffffffffffffff8111156148f457600080fd5b61490088828901613fe7565b9095509350506040860135614914816145d9565b949793965091946060013592915050565b600067ffffffffffffffff82111561493f5761493f6140e2565b5060051b60200190565b600082601f83011261495a57600080fd5b8135602061496f61496a83614925565b61415f565b82815260059290921b8401810191818101908684111561498e57600080fd5b8286015b848110156149b25780356149a581614271565b8352918301918301614992565b509695505050505050565b60008060008060008060c087890312156149d657600080fd5b863567ffffffffffffffff808211156149ee57600080fd5b6149fa8a838b01614949565b97506020890135915080821115614a1057600080fd5b614a1c8a838b01614949565b9650614a2a60408a01614656565b95506060890135915080821115614a4057600080fd5b614a4c8a838b016141ae565b9450614a5a60808a0161463c565b935060a0890135915080821115614a7057600080fd5b50614a7d89828a016141ae565b9150509295509295509295565b600060208284031215614a9c57600080fd5b8135613ebe81614271565b600181811c90821680614abb57607f821691505b6020821081036129ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b601f82111561067157600081815260208120601f850160051c81016020861015614b1b5750805b601f850160051c820191505b8181101561086457828155600101614b27565b67ffffffffffffffff831115614b5257614b526140e2565b614b6683614b608354614aa7565b83614af4565b6000601f841160018114614bb85760008515614b825750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614c4e565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614c075786850135825560209485019460019092019101614be7565b5086821015614c42577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006bffffffffffffffffffffffff80841680614cd257614cd2614c55565b92169190910492915050565b6bffffffffffffffffffffffff828116828216039080821115614d0357614d03614c84565b5092915050565b805169ffffffffffffffffffff8116811461125557600080fd5b600080600080600060a08688031215614d3c57600080fd5b614d4586614d0a565b9450602086015193506040860151925060608601519150614d6860808701614d0a565b90509295509295909350565b818103818111156106ad576106ad614c84565b600060208284031215614d9957600080fd5b8151613ebe81614647565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e0457614e04614c84565b5060010190565b68ffffffffffffffffff81168114612a2857600080fd5b803561125581614e0b565b60006101608236031215614e4057600080fd5b614e4861413b565b823567ffffffffffffffff811115614e5f57600080fd5b614e6b368286016141ae565b82525060208301356020820152614e8460408401614293565b6040820152614e95606084016142b8565b6060820152614ea660808401614e22565b6080820152614eb760a0840161463c565b60a0820152614ec860c0840161463c565b60c0820152614ed960e084016145eb565b60e0820152610100614eec818501614614565b90820152610120614efe84820161463c565b90820152610140614f10848201614293565b9082015292915050565b600060208284031215614f2c57600080fd5b8135613ebe81614626565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f6c57600080fd5b83018035915067ffffffffffffffff821115614f8757600080fd5b60200191503681900382131561332e57600080fd5b600060208284031215614fae57600080fd5b613ebe82614614565b600060208284031215614fc957600080fd5b8135613ebe816145d9565b73ffffffffffffffffffffffffffffffffffffffff8a8116825267ffffffffffffffff8a166020830152881660408201526102406060820181905281018690526000610260878982850137600083890182015261ffff8716608084015260a0830186905263ffffffff851660c0840152601f88017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016830101905061507c60e08301846143b5565b9a9950505050505050505050565b60ff81811683821601908111156106ad576106ad614c84565b600060ff8316806150b6576150b6614c55565b8060ff84160491505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8183823760009101908152919050565b828152606082602083013760800192915050565b80820281158282048414176106ad576106ad614c84565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b63ffffffff818116838216019080821115614d0357614d03614c84565b600061012063ffffffff808d1684528b6020850152808b166040850152508060608401526151ab8184018a6142fc565b905082810360808401526151bf81896142fc565b905060ff871660a084015282810360c08401526151dc818761406b565b905067ffffffffffffffff851660e0840152828103610100840152613689818561406b565b805161125581614e0b565b60006020828403121561521e57600080fd5b8151613ebe81614e0b565b600181815b8085111561528257817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561526857615268614c84565b8085161561527557918102915b93841c939080029061522e565b509250929050565b600082615299575060016106ad565b816152a6575060006106ad565b81600181146152bc57600281146152c6576152e2565b60019150506106ad565b60ff8411156152d7576152d7614c84565b50506001821b6106ad565b5060208310610133831016604e8410600b8410161715615305575081810a6106ad565b61530f8383615229565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561534157615341614c84565b029392505050565b6000613ebe60ff84168361528a565b60008261536757615367614c55565b500490565b6bffffffffffffffffffffffff818116838216019080821115614d0357614d03614c84565b6bffffffffffffffffffffffff8181168382160280821691908281146148ad576148ad614c84565b808201808211156106ad576106ad614c84565b67ffffffffffffffff818116838216019080821115614d0357614d03614c84565b600082601f8301126153fe57600080fd5b8135602061540e61496a83614925565b82815260059290921b8401810191818101908684111561542d57600080fd5b8286015b848110156149b25780358352918301918301615431565b600082601f83011261545957600080fd5b8135602061546961496a83614925565b82815260059290921b8401810191818101908684111561548857600080fd5b8286015b848110156149b257803567ffffffffffffffff8111156154ac5760008081fd5b6154ba8986838b01016141ae565b84525091830191830161548c565b600080600080600060a086880312156154e057600080fd5b853567ffffffffffffffff808211156154f857600080fd5b61550489838a016153ed565b9650602088013591508082111561551a57600080fd5b61552689838a01615448565b9550604088013591508082111561553c57600080fd5b61554889838a01615448565b9450606088013591508082111561555e57600080fd5b61556a89838a01615448565b9350608088013591508082111561558057600080fd5b5061558d88828901615448565b9150509295509295909350565b60006101208b835273ffffffffffffffffffffffffffffffffffffffff8b16602084015267ffffffffffffffff808b1660408501528160608501526155e18285018b6142fc565b915083820360808501526155f5828a6142fc565b915060ff881660a085015283820360c0850152615612828861406b565b90861660e08501528381036101008501529050613689818561406b565b805161125581614271565b80516112558161429e565b805161125581614626565b8051611255816145d9565b8051611255816145f6565b6000610160828403121561567957600080fd5b61568161413b565b825181526156916020840161562f565b60208201526156a26040840161563a565b60408201526156b36060840161562f565b60608201526156c460808401615645565b60808201526156d560a08401615650565b60a08201526156e660c08401615201565b60c08201526156f760e08401615201565b60e082015261010061570a81850161565b565b9082015261012061571c84820161565b565b90820152610140614780848201615650565b64ffffffffff818116838216019080821115614d0357614d03614c84565b60006102008083526157608184018a61406b565b90508281036020840152615774818961406b565b6bffffffffffffffffffffffff88811660408601528716606085015273ffffffffffffffffffffffffffffffffffffffff8616608085015291506157bd905060a08301846143b5565b979650505050505050565b600080604083850312156157db57600080fd5b8251600781106157ea57600080fd5b60208401519092506142f18161429e565b60008060008060008060c0878903121561581457600080fd5b865195506020870151945060408701519350606087015192506080870151915060a087015190509295509295509295565b60006020828403121561585757600080fd5b5051919050565b60006020828403121561587057600080fd5b8151613ebe8161427156fea164736f6c6343000813000a",
    "sourceMap": "541:7330:29:-:0;;;1494:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1657:6;1665;1673:16;1691:13;1657:6;588:10:45;;373:1:63;588:10:45;590:59:64;;;;-1:-1:-1;;;590:59:64;;3560:2:98;590:59:64;;;3542:21:98;3599:2;3579:18;;;3572:30;3638:26;3618:18;;;3611:54;3682:18;;590:59:64;;;;;;;;;656:7;:18;;-1:-1:-1;;;;;;656:18:64;-1:-1:-1;;;;;656:18:64;;;;;;;;;;684:26;;;680:79;;720:32;739:12;720:18;:32::i;:::-;-1:-1:-1;;;;;;;;695:20:32;;691:65;;732:17;;-1:-1:-1;;;732:17:32;;;;;;;;;;;691:65;-1:-1:-1;;;;;761:51:32;;;;;3029:18:27::1;:60:::0;;-1:-1:-1;;;;;3029:60:27::1;::::0;;;::::1;;;::::0;;3095:15:::1;:54:::0;;-1:-1:-1;;;;;;3095:54:27::1;::::0;;::::1;::::0;;;::::1;::::0;;3156:20:::1;3169:6:::0;3156:12:::1;:20::i;:::-;2871:310:::0;;;;1494:214:29;;;;541:7330;;1536:239:64;1655:10;-1:-1:-1;;;;;1649:16:64;;;1641:52;;;;-1:-1:-1;;;1641:52:64;;3913:2:98;1641:52:64;;;3895:21:98;3952:2;3932:18;;;3925:30;3991:25;3971:18;;;3964:53;4034:18;;1641:52:64;3711:347:98;1641:52:64;1700:14;:19;;-1:-1:-1;;;;;;1700:19:64;-1:-1:-1;;;;;1700:19:64;;;;;;;;;-1:-1:-1;1758:7:64;;1731:39;;1700:19;;1758:7;;1731:39;;-1:-1:-1;1731:39:64;1536:239;:::o;3782:146:27:-;3855:12;:10;:12::i;:::-;3874:17;;:8;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3874:17:27;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;3874:17:27;;;;;;;;;-1:-1:-1;;;;3874:17:27;;;;;;;;;;;;;;;;;-1:-1:-1;;;;3874:17:27;-1:-1:-1;;;3874:17:27;;;;;;;;-1:-1:-1;;;;3874:17:27;;-1:-1:-1;;;3874:17:27;;;;;;-1:-1:-1;;;;;3874:17:27;-1:-1:-1;;;;;;;;3874:17:27;;;;;;;-1:-1:-1;;;;;3874:17:27;;;;;-1:-1:-1;;;3874:17:27;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3874:17:27;;;-1:-1:-1;;;3874:17:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3874:17:27;;;;;;;;;;;;;;;;-1:-1:-1;;;;3874:17:27;;;;;;;;;;;;;;;3902:21;;;;;3874:17;;3902:21;:::i;:::-;;;;;;;;3782:146;:::o;7654:76:29:-;7705:20;:18;:20::i;:::-;7654:76::o;1809:162:64:-;1932:7;;-1:-1:-1;;;;;1932:7:64;1918:10;:21;1910:56;;;;-1:-1:-1;;;1910:56:64;;6672:2:98;1910:56:64;;;6654:21:98;6711:2;6691:18;;;6684:30;6750:24;6730:18;;;6723:52;6792:18;;1910:56:64;6470:346:98;14:177;93:13;;-1:-1:-1;;;;;135:31:98;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:347::-;263:2;257:9;305:6;293:19;;-1:-1:-1;;;;;327:34:98;;363:22;;;324:62;321:185;;;428:10;423:3;419:20;416:1;409:31;463:4;460:1;453:15;491:4;488:1;481:15;321:185;522:2;515:22;196:347;:::o;548:167::-;626:13;;679:10;668:22;;658:33;;648:61;;705:1;702;695:12;720:169;798:13;;851:12;840:24;;830:35;;820:63;;879:1;876;869:12;894:163;972:13;;1025:6;1014:18;;1004:29;;994:57;;1047:1;1044;1037:12;1062:175;1140:13;;-1:-1:-1;;;;;1182:30:98;;1172:41;;1162:69;;1227:1;1224;1217:12;1242:160;1319:13;;1372:4;1361:16;;1351:27;;1341:55;;1392:1;1389;1382:12;1407:177;1486:13;;-1:-1:-1;;;;;1528:31:98;;1518:42;;1508:70;;1574:1;1571;1564:12;1589:1764;1727:6;1735;1743;1751;1795:9;1786:7;1782:23;1825:3;1821:2;1817:12;1814:32;;;1842:1;1839;1832:12;1814:32;1865:40;1895:9;1865:40;:::i;:::-;1855:50;;1924:6;1964:2;1958;1954:7;1950:2;1946:16;1942:25;1939:45;;;1980:1;1977;1970:12;1939:45;2006:17;;:::i;:::-;1993:30;;2046:48;2090:2;2079:9;2075:18;2046:48;:::i;:::-;2039:5;2032:63;2127:48;2171:2;2160:9;2156:18;2127:48;:::i;:::-;2122:2;2115:5;2111:14;2104:72;2208:48;2252:2;2241:9;2237:18;2208:48;:::i;:::-;2203:2;2196:5;2192:14;2185:72;2289:49;2333:3;2322:9;2318:19;2289:49;:::i;:::-;2284:2;2277:5;2273:14;2266:73;2372:49;2416:3;2405:9;2401:19;2372:49;:::i;:::-;2366:3;2359:5;2355:15;2348:74;2455:49;2499:3;2488:9;2484:19;2455:49;:::i;:::-;2449:3;2442:5;2438:15;2431:74;2538:49;2582:3;2571:9;2567:19;2538:49;:::i;:::-;2532:3;2525:5;2521:15;2514:74;2607:3;2643:47;2686:2;2675:9;2671:18;2643:47;:::i;:::-;2637:3;2630:5;2626:15;2619:72;2710:3;2745:49;2790:2;2779:9;2775:18;2745:49;:::i;:::-;2740:2;2733:5;2729:14;2722:73;2814:3;2804:13;;2849:48;2893:2;2882:9;2878:18;2849:48;:::i;:::-;2833:14;;;2826:72;2917:3;2952:48;2981:18;;;2952:48;:::i;:::-;2947:2;2940:5;2936:14;2929:72;3020:3;3010:13;;3055:48;3099:2;3088:9;3084:18;3055:48;:::i;:::-;3039:14;;;3032:72;3136:48;3165:18;;;3136:48;:::i;:::-;3120:14;;;3113:72;-1:-1:-1;3124:5:98;-1:-1:-1;3228:50:98;3273:3;3258:19;;3228:50;:::i;:::-;3218:60;;3297:50;3342:3;3331:9;3327:19;3297:50;:::i;:::-;3287:60;;1589:1764;;;;;;;:::o;4654:1811::-;4901:13;;4139:10;4128:22;4116:35;;4870:3;4855:19;;4973:4;4965:6;4961:17;4955:24;4988:53;5035:4;5024:9;5020:20;5006:12;4139:10;4128:22;4116:35;;4063:94;4988:53;;5090:4;5082:6;5078:17;5072:24;5105:55;5154:4;5143:9;5139:20;5123:14;4139:10;4128:22;4116:35;;4063:94;5105:55;;5209:4;5201:6;5197:17;5191:24;5224:55;5273:4;5262:9;5258:20;5242:14;4139:10;4128:22;4116:35;;4063:94;5224:55;;5328:4;5320:6;5316:17;5310:24;5343:55;5392:4;5381:9;5377:20;5361:14;4238:12;4227:24;4215:37;;4162:96;5343:55;;5447:4;5439:6;5435:17;5429:24;5462:55;5511:4;5500:9;5496:20;5480:14;4339:6;4328:18;4316:31;;4263:90;5462:55;;5566:4;5558:6;5554:17;5548:24;5581:55;5630:4;5619:9;5615:20;5599:14;-1:-1:-1;;;;;4423:30:98;4411:43;;4358:102;5581:55;;5685:4;5677:6;5673:17;5667:24;5700:54;5748:4;5737:9;5733:20;5717:14;4532:4;4521:16;4509:29;;4465:75;5700:54;-1:-1:-1;5773:6:98;5816:15;;;5810:22;-1:-1:-1;;;;;4611:31:98;5876:18;;;4599:44;5914:6;5957:15;;;5951:22;4139:10;4128:22;6016:18;;;4116:35;6054:6;6097:15;;;6091:22;4339:6;4328:18;;;6156;;;4316:31;;;;6194:6;6238:15;;;6232:22;4328:18;;6298;;;4316:31;6336:6;6380:15;;;6374:22;4328:18;6440;;;;4316:31;;;;4654:1811;:::o;6470:346::-;541:7330:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106101a35760003560e01c80638da5cb5b116100ee578063d227d24511610097578063e4ddcea611610071578063e4ddcea6146105e8578063f2f22ef1146105fe578063f2fde38b14610606578063f6ea41f61461061957600080fd5b8063d227d2451461059d578063d328a91e146105cd578063e3d0e712146105d557600080fd5b8063b1dc65a4116100c8578063b1dc65a414610396578063c074ef21146103a9578063c3f909d4146103bc57600080fd5b80638da5cb5b1461032e578063a631571e14610356578063afcb95d71461037657600080fd5b80637d4807871161015057806381f1b9381161012a57806381f1b938146102a657806381ff7048146102ae57806385b214cf1461031b57600080fd5b80637d480787146102765780637f15e1661461027e578063814118341461029157600080fd5b806366316d8d1161018157806366316d8d1461023c5780637212762f1461024f57806379ba50971461026e57600080fd5b8063083a5466146101a8578063181f5a77146101bd578063626f458c1461020f575b600080fd5b6101bb6101b6366004614029565b610621565b005b6101f96040518060400160405280601c81526020017f46756e6374696f6e7320436f6f7264696e61746f722076312e332e310000000081525081565b60405161020691906140cf565b60405180910390f35b61022261021d36600461423c565b610676565b60405168ffffffffffffffffff9091168152602001610206565b6101bb61024a3660046142c3565b6106b3565b61025761086c565b6040805192835260ff909116602083015201610206565b6101bb610a7f565b6101bb610b7c565b6101bb61028c366004614029565b610d7c565b610299610dcc565b604051610206919061434d565b6101f9610e3b565b6102f860015460025463ffffffff74010000000000000000000000000000000000000000830481169378010000000000000000000000000000000000000000000000009093041691565b6040805163ffffffff948516815293909216602084015290820152606001610206565b6101bb610329366004614360565b610f0c565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610206565b610369610364366004614379565b610fc9565b60405161020691906144ce565b604080516001815260006020820181905291810191909152606001610206565b6101bb6103a4366004614522565b61125a565b6101bb6103b736600461468d565b611871565b610590604080516101a081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081019190915250604080516101a08101825260085463ffffffff8082168352640100000000808304821660208501526801000000000000000083048216948401949094526c01000000000000000000000000820481166060840152700100000000000000000000000000000000820464ffffffffff1660808401527501000000000000000000000000000000000000000000820461ffff90811660a085015277010000000000000000000000000000000000000000000000830467ffffffffffffffff1660c08501527f010000000000000000000000000000000000000000000000000000000000000090920460ff1660e08401526009547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81166101008501527c0100000000000000000000000000000000000000000000000000000000900416610120830152600a5480821661014084015262010000810482166101608401529290920490911661018082015290565b604051610206919061478b565b6105b06105ab3660046148b5565b611b6d565b6040516bffffffffffffffffffffffff9091168152602001610206565b6101f9611cdb565b6101bb6105e33660046149bd565b611d32565b6105f06128ae565b604051908152602001610206565b6102226129f2565b6101bb610614366004614a8a565b612a17565b610222612a2b565b610629612abc565b6000819003610664576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f610671828483614b3a565b505050565b600a546000906106ad906064906106909061ffff16612b3f565b61069a9190614cb3565b6bffffffffffffffffffffffff16612b8c565b92915050565b6106bb612c2b565b806bffffffffffffffffffffffff166000036106f55750336000908152600b60205260409020546bffffffffffffffffffffffff1661074f565b336000908152600b60205260409020546bffffffffffffffffffffffff8083169116101561074f576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600b60205260408120805483929061077c9084906bffffffffffffffffffffffff16614cde565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506107d17f000000000000000000000000000000000000000000000000000000000000000090565b6040517f66316d8d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526bffffffffffffffffffffffff8416602483015291909116906366316d8d90604401600060405180830381600087803b15801561085057600080fd5b505af1158015610864573d6000803e3d6000fd5b505050505050565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156108df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109039190614d24565b5093505092505080426109169190614d74565b600854640100000000900463ffffffff161080156109435750600854640100000000900463ffffffff1615155b156109a057505060085477010000000000000000000000000000000000000000000000810467ffffffffffffffff16937f010000000000000000000000000000000000000000000000000000000000000090910460ff1692509050565b600082136109e2576040517f56b22ab8000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b600d54604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051849273ffffffffffffffffffffffffffffffffffffffff169163313ce5679160048083019260209291908290030181865afa158015610a51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a759190614d87565b9350935050509091565b60015473ffffffffffffffffffffffffffffffffffffffff163314610b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016109d9565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610b84612df2565b610b8c612c2b565b6000610b96610dcc565b905060005b8151811015610d78576000600b6000848481518110610bbc57610bbc614da4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252810191909152604001600020546bffffffffffffffffffffffff1690508015610d67576000600b6000858581518110610c1b57610c1b614da4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610cb27f000000000000000000000000000000000000000000000000000000000000000090565b73ffffffffffffffffffffffffffffffffffffffff166366316d8d848481518110610cdf57610cdf614da4565b6020026020010151836040518363ffffffff1660e01b8152600401610d3492919073ffffffffffffffffffffffffffffffffffffffff9290921682526bffffffffffffffffffffffff16602082015260400190565b600060405180830381600087803b158015610d4e57600080fd5b505af1158015610d62573d6000803e3d6000fd5b505050505b50610d7181614dd3565b9050610b9b565b5050565b610d84612abc565b6000819003610dbf576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e610671828483614b3a565b60606006805480602002602001604051908101604052809291908181526020018280548015610e3157602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610e06575b5050505050905090565b6060600f8054610e4a90614aa7565b9050600003610e85576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f8054610e9290614aa7565b80601f0160208091040260200160405190810160405280929190818152602001828054610ebe90614aa7565b8015610e315780601f10610ee057610100808354040283529160200191610e31565b820191906000526020600020905b815481529060010190602001808311610eee57509395945050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610f7b576040517fc41a5b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526007602052604080822091909155517f8a4b97add3359bd6bcf5e82874363670eb5ad0f7615abddbd0ed0a3a98f0f41690610fbe9083815260200190565b60405180910390a150565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091523373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611091576040517fc41a5b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006110a461109f84614e2d565b612dfa565b90925090506110b96060840160408501614a8a565b825173ffffffffffffffffffffffffffffffffffffffff91909116907fbf50768ccf13bd0110ca6d53a9c4f1f3271abdd4c24a56878863ed25b20598ff3261110760c0880160a08901614f1a565b61111961016089016101408a01614a8a565b6111238980614f37565b6111356101208c016101008d01614f9c565b60208c013561114b6101008e0160e08f01614fb7565b6040518061016001604052808e6000015181526020018e6020015173ffffffffffffffffffffffffffffffffffffffff1681526020018e604001516bffffffffffffffffffffffff1681526020018e6060015173ffffffffffffffffffffffffffffffffffffffff1681526020018e6080015167ffffffffffffffff1681526020018e60a0015163ffffffff1681526020018d68ffffffffffffffffff1681526020018e60e0015168ffffffffffffffffff1681526020018e610100015164ffffffffff1681526020018e610120015164ffffffffff1681526020018e610140015163ffffffff1681525060405161124b99989796959493929190614fd4565b60405180910390a3505b919050565b60008061126789896131ac565b915091508115611278575050611867565b604080518b3580825262ffffff6020808f0135600881901c9290921690840152909290917fb04e63db38c49950639fa09d29872f21f5d49d614f3a969d8adf3d4b52e41a62910160405180910390a16112d58b8b8b8b8b8b613335565b6003546000906002906112f39060ff8082169161010090041661508a565b6112fd91906150a3565b61130890600161508a565b60ff169050888114611376576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f77726f6e67206e756d626572206f66207369676e61747572657300000000000060448201526064016109d9565b888714611405576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f7265706f727420727320616e64207373206d757374206265206f66206571756160448201527f6c206c656e67746800000000000000000000000000000000000000000000000060648201526084016109d9565b3360009081526004602090815260408083208151808301909252805460ff80821684529293919291840191610100909104166002811115611448576114486150c5565b6002811115611459576114596150c5565b9052509050600281602001516002811115611476576114766150c5565b141580156114bf57506006816000015160ff168154811061149957611499614da4565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff163314155b15611526576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f756e617574686f72697a6564207472616e736d6974746572000000000000000060448201526064016109d9565b50505050611532613fc8565b60008a8a6040516115449291906150f4565b60405190819003812061155b918e90602001615104565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120838301909252600080845290830152915060005b898110156118575760006001848984602081106115c4576115c4614da4565b6115d191901a601b61508a565b8e8e868181106115e3576115e3614da4565b905060200201358d8d878181106115fc576115fc614da4565b9050602002013560405160008152602001604052604051611639949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa15801561165b573d6000803e3d6000fd5b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081015173ffffffffffffffffffffffffffffffffffffffff811660009081526004602090815290849020838501909452835460ff808216855292965092945084019161010090041660028111156116db576116db6150c5565b60028111156116ec576116ec6150c5565b9052509250600183602001516002811115611709576117096150c5565b14611770576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f61646472657373206e6f7420617574686f72697a656420746f207369676e000060448201526064016109d9565b8251600090869060ff16601f811061178a5761178a614da4565b602002015173ffffffffffffffffffffffffffffffffffffffff161461180c576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f6e2d756e69717565207369676e617475726500000000000000000000000060448201526064016109d9565b8085846000015160ff16601f811061182657611826614da4565b73ffffffffffffffffffffffffffffffffffffffff90921660209290920201525061185081614dd3565b90506115a5565b505050611863826133ec565b5050505b5050505050505050565b611879612df2565b80516008805460208401516040808601516060870151608088015160a089015160c08a015160e08b015163ffffffff9a8b167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090991698909817640100000000978b168802177fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff1668010000000000000000958b16959095027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff16949094176c01000000000000000000000000938a1693909302929092177fffffffffffffffffff00000000000000ffffffffffffffffffffffffffffffff1670010000000000000000000000000000000064ffffffffff909216919091027fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff1617750100000000000000000000000000000000000000000061ffff928316021776ffffffffffffffffffffffffffffffffffffffffffffff167701000000000000000000000000000000000000000000000067ffffffffffffffff909316929092027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16919091177f010000000000000000000000000000000000000000000000000000000000000060ff90951694909402939093179093556101008501516101208601517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff9091167c0100000000000000000000000000000000000000000000000000000000919095160293909317600955610140840151600a80546101608701516101808801519385167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000909216919091176201000091851691909102177fffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff169190921690930292909217909155517f9832846a11905a128363408ace5f9803f449fcb017d3cf7e22a50c6e332931b290610fbe90839061478b565b60007f00000000000000000000000000000000000000000000000000000000000000006040517f10fc49c100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8816600482015263ffffffff8516602482015273ffffffffffffffffffffffffffffffffffffffff91909116906310fc49c19060440160006040518083038186803b158015611c0d57600080fd5b505afa158015611c21573d6000803e3d6000fd5b5050505066038d7ea4c68000821115611c66576040517f8129bbcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c70612a2b565b90506000611cb387878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061067692505050565b90506000611cbf6129f2565b9050611cce868684868561353b565b9998505050505050505050565b6060600e8054611cea90614aa7565b9050600003611d25576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e8054610e9290614aa7565b855185518560ff16601f831115611da5576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f746f6f206d616e79207369676e6572730000000000000000000000000000000060448201526064016109d9565b80600003611e0f576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f66206d75737420626520706f736974697665000000000000000000000000000060448201526064016109d9565b818314611e9d576040517f89a61989000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f6f7261636c6520616464726573736573206f7574206f6620726567697374726160448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016109d9565b611ea8816003615118565b8311611f10576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661756c74792d6f7261636c65206620746f6f2068696768000000000000000060448201526064016109d9565b611f18612abc565b6040805160c0810182528a8152602081018a905260ff89169181018290526060810188905267ffffffffffffffff8716608082015260a0810186905290611f5f9088613699565b6005541561211457600554600090611f7990600190614d74565b9050600060058281548110611f9057611f90614da4565b60009182526020822001546006805473ffffffffffffffffffffffffffffffffffffffff90921693509084908110611fca57611fca614da4565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff85811684526004909252604080842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009081169091559290911680845292208054909116905560058054919250908061204a5761204a61512f565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905560068054806120b3576120b361512f565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550611f5f915050565b60005b8151518110156126cb5781518051600091908390811061213957612139614da4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff16036121be576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7369676e6572206d757374206e6f7420626520656d707479000000000000000060448201526064016109d9565b600073ffffffffffffffffffffffffffffffffffffffff16826020015182815181106121ec576121ec614da4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603612271576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f7472616e736d6974746572206d757374206e6f7420626520656d70747900000060448201526064016109d9565b6000600460008460000151848151811061228d5761228d614da4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002054610100900460ff1660028111156122d7576122d76150c5565b1461233e576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f7265706561746564207369676e6572206164647265737300000000000000000060448201526064016109d9565b6040805180820190915260ff8216815260016020820152825180516004916000918590811061236f5761236f614da4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252818101929092526040016000208251815460ff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082168117835592840151919283917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001617610100836002811115612410576124106150c5565b0217905550600091506124209050565b600460008460200151848151811061243a5761243a614da4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002054610100900460ff166002811115612484576124846150c5565b146124eb576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7265706561746564207472616e736d697474657220616464726573730000000060448201526064016109d9565b6040805180820190915260ff82168152602081016002815250600460008460200151848151811061251e5761251e614da4565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252818101929092526040016000208251815460ff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082168117835592840151919283917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016176101008360028111156125bf576125bf6150c5565b0217905550508251805160059250839081106125dd576125dd614da4565b602090810291909101810151825460018101845560009384529282902090920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909316929092179091558201518051600691908390811061265957612659614da4565b60209081029190910181015182546001810184556000938452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055806126c381614dd3565b915050612117565b506040810151600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff909216919091179055600180547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff8116780100000000000000000000000000000000000000000000000063ffffffff43811682029290921780855592048116929182916014916127839184917401000000000000000000000000000000000000000090041661515e565b92506101000a81548163ffffffff021916908363ffffffff1602179055506127e24630600160149054906101000a900463ffffffff1663ffffffff16856000015186602001518760400151886060015189608001518a60a001516136b2565b600281905582518051600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010060ff9093169290920291909117905560015460208501516040808701516060880151608089015160a08a015193517f1591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e0598612899988b9891977401000000000000000000000000000000000000000090920463ffffffff1696909591949193919261517b565b60405180910390a15050505050505050505050565b6000806000600c8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561291e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129429190614d24565b5093505092505080426129559190614d74565b600854640100000000900463ffffffff161080156129825750600854640100000000900463ffffffff1615155b156129af5750506009547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16919050565b600082136129ec576040517f43d4cf66000000000000000000000000000000000000000000000000000000008152600481018390526024016109d9565b50919050565b600a54600090612a12906064906106909062010000900461ffff16612b3f565b905090565b612a1f612abc565b612a288161375d565b50565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632a905ccc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a12919061520c565b60005473ffffffffffffffffffffffffffffffffffffffff163314612b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016109d9565b565b6000806000612b4c61086c565b9092509050612b8482612b6083601261508a565b612b6b90600a615349565b612b759087615118565b612b7f9190615358565b613852565b949350505050565b600068ffffffffffffffffff821115612c27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203760448201527f322062697473000000000000000000000000000000000000000000000000000060648201526084016109d9565b5090565b600c546bffffffffffffffffffffffff16600003612c4557565b6000612c4f610dcc565b80519091506000819003612c8f576040517f30274b3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54600090612cae9083906bffffffffffffffffffffffff16614cb3565b9050806bffffffffffffffffffffffff16600003612ccb57505050565b60005b82811015612d945781600b6000868481518110612ced57612ced614da4565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a90046bffffffffffffffffffffffff16612d55919061536c565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555080612d8d90614dd3565b9050612cce565b50612d9f8282615391565b600c8054600090612dbf9084906bffffffffffffffffffffffff16614cde565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505050565b612b3d612abc565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081019190915260085461010083015160009161ffff7501000000000000000000000000000000000000000000909104811691161115612eb8576040517fdada758700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612ec78460000151610676565b9050612ed16129f2565b91506000612eea8560e001513a8488608001518761353b565b9050806bffffffffffffffffffffffff1685606001516bffffffffffffffffffffffff161015612f46576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600954600090612f7c907c0100000000000000000000000000000000000000000000000000000000900463ffffffff16426153b9565b905060003087604001518860a001518960c001516001612f9c91906153cc565b8a5180516020918201206101008d015160e08e015160405161305098979695948c918c9132910173ffffffffffffffffffffffffffffffffffffffff9a8b168152988a1660208a015267ffffffffffffffff97881660408a0152959096166060880152608087019390935261ffff9190911660a086015263ffffffff90811660c08601526bffffffffffffffffffffffff9190911660e0850152919091166101008301529091166101208201526101400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201206101608401835280845230848301526bffffffffffffffffffffffff8716848401528a83015173ffffffffffffffffffffffffffffffffffffffff16606085015260a0808c015167ffffffffffffffff1660808087019190915260e0808e015163ffffffff90811693880193909352908d015168ffffffffffffffffff90811660c08801528a169086015260085468010000000000000000810482166101008701526c01000000000000000000000000900481166101208601528616610140850152915192985090925061315c918891016144ce565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600093845260079092529091205550929491935090915050565b60006131e06040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b6000808080806131f2888a018a6154c8565b84519499509297509095509350915060ff16801580613212575084518114155b8061321e575083518114155b8061322a575082518114155b80613236575081518114155b1561329d576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4669656c6473206d75737420626520657175616c206c656e677468000000000060448201526064016109d9565b60005b81811015613303576132d98782815181106132bd576132bd614da4565b6020026020010151600090815260076020526040902054151590565b613303576132e8600183614d74565b81036132f357600198505b6132fc81614dd3565b90506132a0565b50506040805160a0810182529586526020860194909452928401919091526060830152608082015290505b9250929050565b6000613342826020615118565b61334d856020615118565b613359886101446153b9565b61336391906153b9565b61336d91906153b9565b6133789060006153b9565b90503681146133e3576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f63616c6c64617461206c656e677468206d69736d61746368000000000000000060448201526064016109d9565b50505050505050565b80515160ff1660005b8181101561067157600061349e8460000151838151811061341857613418614da4565b60200260200101518560200151848151811061343657613436614da4565b60200260200101518660400151858151811061345457613454614da4565b60200260200101518760600151868151811061347257613472614da4565b60200260200101518860800151878151811061349057613490614da4565b6020026020010151886138f0565b905060008160068111156134b4576134b46150c5565b14806134d1575060018160068111156134cf576134cf6150c5565b145b1561352a5783518051839081106134ea576134ea614da4565b60209081029190910181015160405133815290917fc708e0440951fd63499c0f7a73819b469ee5dd3ecc356c0ab4eb7f18389009d9910160405180910390a25b5061353481614dd3565b90506133f5565b600854600090700100000000000000000000000000000000900464ffffffffff1685101561358457600854700100000000000000000000000000000000900464ffffffffff1694505b60085460009087906135ba9063ffffffff6c0100000000000000000000000082048116916801000000000000000090041661515e565b6135c4919061515e565b600a5463ffffffff9190911691506000906135ea90640100000000900461ffff16613d82565b90506000816135f9848a615118565b61360391906153b9565b600854909150600090612710906136209063ffffffff1684615118565b61362a9190615358565b61363490836153b9565b9050600061364182613ece565b905060008768ffffffffffffffffff168968ffffffffffffffffff168b68ffffffffffffffffff16613673919061536c565b61367d919061536c565b9050613689818361536c565b9c9b505050505050505050505050565b60006136a3610dcc565b511115610d7857610d78612c2b565b6000808a8a8a8a8a8a8a8a8a6040516020016136d69998979695949392919061559a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e01000000000000000000000000000000000000000000000000000000000000179150509998505050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff8216036137dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016109d9565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006bffffffffffffffffffffffff821115612c27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f362062697473000000000000000000000000000000000000000000000000000060648201526084016109d9565b600080848060200190518101906139079190615666565b905060003a826101200151836101000151613922919061572e565b64ffffffffff166139339190615118565b9050600060ff851661394436613d82565b61394e9190615358565b9050600061396461395f83856153b9565b613ece565b905060006139713a613ece565b90506000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663330605298e8e868b60c0015168ffffffffffffffffff168c60e0015168ffffffffffffffffff168a6139e0919061536c565b6139ea919061536c565b336040518061016001604052808f6000015181526020018f6020015173ffffffffffffffffffffffffffffffffffffffff1681526020018f604001516bffffffffffffffffffffffff1681526020018f6060015173ffffffffffffffffffffffffffffffffffffffff1681526020018f6080015167ffffffffffffffff1681526020018f60a0015163ffffffff168152602001600068ffffffffffffffffff1681526020018f60e0015168ffffffffffffffffff1681526020018f610100015164ffffffffff1681526020018f610120015164ffffffffff1681526020018f610140015163ffffffff168152506040518763ffffffff1660e01b8152600401613af89695949392919061574c565b60408051808303816000875af1158015613b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b3a91906157c8565b90925090506000826006811115613b5357613b536150c5565b1480613b7057506001826006811115613b6e57613b6e6150c5565b145b15613d715760008e815260076020526040812055613b8e818561536c565b336000908152600b602052604081208054909190613bbb9084906bffffffffffffffffffffffff1661536c565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508660e0015168ffffffffffffffffff16600c60008282829054906101000a90046bffffffffffffffffffffffff16613c21919061536c565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508660c0015168ffffffffffffffffff16600b6000613c6b613eed565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160009081208054909190613cb19084906bffffffffffffffffffffffff1661536c565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508d7f08a4a0761e3c98d288cb4af9342660f49550d83139fb3b762b70d34bed6273688487848b60e0015160008d60c00151604051613d68969594939291906bffffffffffffffffffffffff9687168152602081019590955292909416604084015268ffffffffffffffffff9081166060840152928316608083015290911660a082015260c00190565b60405180910390a25b509c9b505050505050505050505050565b600046613d8e81613f5e565b15613e23576000606c73ffffffffffffffffffffffffffffffffffffffff166341b247a86040518163ffffffff1660e01b815260040160c060405180830381865afa158015613de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e0591906157fb565b50505050915050608c84613e1991906153b9565b612b849082615118565b613e2c81613f81565b15613ec5576040517ff1c7a58b0000000000000000000000000000000000000000000000000000000081526004810184905273420000000000000000000000000000000000000f9063f1c7a58b90602401602060405180830381865afa158015613e9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ebe9190615845565b9392505050565b50600092915050565b60006106ad613edb6128ae565b612b7584670de0b6b3a7640000615118565b60003073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a12919061585e565b600061a4b1821480613f72575062066eed82145b806106ad57505062066eee1490565b6000600a821480613f9357506101a482145b80613fa0575062aa37dc82145b80613fac575061210582145b80613fb9575062014a3382145b806106ad57505062014a341490565b604051806103e00160405280601f906020820280368337509192915050565b60008083601f840112613ff957600080fd5b50813567ffffffffffffffff81111561401157600080fd5b60208301915083602082850101111561332e57600080fd5b6000806020838503121561403c57600080fd5b823567ffffffffffffffff81111561405357600080fd5b61405f85828601613fe7565b90969095509350505050565b6000815180845260005b8181101561409157602081850181015186830182015201614075565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081526000613ebe602083018461406b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516101a0810167ffffffffffffffff81118282101715614135576141356140e2565b60405290565b604051610160810167ffffffffffffffff81118282101715614135576141356140e2565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156141a6576141a66140e2565b604052919050565b600082601f8301126141bf57600080fd5b813567ffffffffffffffff8111156141d9576141d96140e2565b61420a60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160161415f565b81815284602083860101111561421f57600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561424e57600080fd5b813567ffffffffffffffff81111561426557600080fd5b612b84848285016141ae565b73ffffffffffffffffffffffffffffffffffffffff81168114612a2857600080fd5b803561125581614271565b6bffffffffffffffffffffffff81168114612a2857600080fd5b80356112558161429e565b600080604083850312156142d657600080fd5b82356142e181614271565b915060208301356142f18161429e565b809150509250929050565b600081518084526020808501945080840160005b8381101561434257815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614310565b509495945050505050565b602081526000613ebe60208301846142fc565b60006020828403121561437257600080fd5b5035919050565b60006020828403121561438b57600080fd5b813567ffffffffffffffff8111156143a257600080fd5b82016101608185031215613ebe57600080fd5b8051825260208101516143e0602084018273ffffffffffffffffffffffffffffffffffffffff169052565b50604081015161440060408401826bffffffffffffffffffffffff169052565b506060810151614428606084018273ffffffffffffffffffffffffffffffffffffffff169052565b506080810151614444608084018267ffffffffffffffff169052565b5060a081015161445c60a084018263ffffffff169052565b5060c081015161447960c084018268ffffffffffffffffff169052565b5060e081015161449660e084018268ffffffffffffffffff169052565b506101008181015164ffffffffff9081169184019190915261012080830151909116908301526101409081015163ffffffff16910152565b61016081016106ad82846143b5565b60008083601f8401126144ef57600080fd5b50813567ffffffffffffffff81111561450757600080fd5b6020830191508360208260051b850101111561332e57600080fd5b60008060008060008060008060e0898b03121561453e57600080fd5b606089018a81111561454f57600080fd5b8998503567ffffffffffffffff8082111561456957600080fd5b6145758c838d01613fe7565b909950975060808b013591508082111561458e57600080fd5b61459a8c838d016144dd565b909750955060a08b01359150808211156145b357600080fd5b506145c08b828c016144dd565b999c989b50969995989497949560c00135949350505050565b63ffffffff81168114612a2857600080fd5b8035611255816145d9565b64ffffffffff81168114612a2857600080fd5b8035611255816145f6565b803561ffff8116811461125557600080fd5b67ffffffffffffffff81168114612a2857600080fd5b803561125581614626565b60ff81168114612a2857600080fd5b803561125581614647565b80357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116811461125557600080fd5b60006101a082840312156146a057600080fd5b6146a8614111565b6146b1836145eb565b81526146bf602084016145eb565b60208201526146d0604084016145eb565b60408201526146e1606084016145eb565b60608201526146f260808401614609565b608082015261470360a08401614614565b60a082015261471460c0840161463c565b60c082015261472560e08401614656565b60e0820152610100614738818501614661565b9082015261012061474a8482016145eb565b9082015261014061475c848201614614565b9082015261016061476e848201614614565b90820152610180614780848201614614565b908201529392505050565b815163ffffffff1681526101a0810160208301516147b1602084018263ffffffff169052565b5060408301516147c9604084018263ffffffff169052565b5060608301516147e1606084018263ffffffff169052565b5060808301516147fa608084018264ffffffffff169052565b5060a083015161481060a084018261ffff169052565b5060c083015161482c60c084018267ffffffffffffffff169052565b5060e083015161484160e084018260ff169052565b50610100838101517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16908301526101208084015163ffffffff16908301526101408084015161ffff90811691840191909152610160808501518216908401526101808085015191821681850152905b505092915050565b6000806000806000608086880312156148cd57600080fd5b85356148d881614626565b9450602086013567ffffffffffffffff8111156148f457600080fd5b61490088828901613fe7565b9095509350506040860135614914816145d9565b949793965091946060013592915050565b600067ffffffffffffffff82111561493f5761493f6140e2565b5060051b60200190565b600082601f83011261495a57600080fd5b8135602061496f61496a83614925565b61415f565b82815260059290921b8401810191818101908684111561498e57600080fd5b8286015b848110156149b25780356149a581614271565b8352918301918301614992565b509695505050505050565b60008060008060008060c087890312156149d657600080fd5b863567ffffffffffffffff808211156149ee57600080fd5b6149fa8a838b01614949565b97506020890135915080821115614a1057600080fd5b614a1c8a838b01614949565b9650614a2a60408a01614656565b95506060890135915080821115614a4057600080fd5b614a4c8a838b016141ae565b9450614a5a60808a0161463c565b935060a0890135915080821115614a7057600080fd5b50614a7d89828a016141ae565b9150509295509295509295565b600060208284031215614a9c57600080fd5b8135613ebe81614271565b600181811c90821680614abb57607f821691505b6020821081036129ec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b601f82111561067157600081815260208120601f850160051c81016020861015614b1b5750805b601f850160051c820191505b8181101561086457828155600101614b27565b67ffffffffffffffff831115614b5257614b526140e2565b614b6683614b608354614aa7565b83614af4565b6000601f841160018114614bb85760008515614b825750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614c4e565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614c075786850135825560209485019460019092019101614be7565b5086821015614c42577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006bffffffffffffffffffffffff80841680614cd257614cd2614c55565b92169190910492915050565b6bffffffffffffffffffffffff828116828216039080821115614d0357614d03614c84565b5092915050565b805169ffffffffffffffffffff8116811461125557600080fd5b600080600080600060a08688031215614d3c57600080fd5b614d4586614d0a565b9450602086015193506040860151925060608601519150614d6860808701614d0a565b90509295509295909350565b818103818111156106ad576106ad614c84565b600060208284031215614d9957600080fd5b8151613ebe81614647565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e0457614e04614c84565b5060010190565b68ffffffffffffffffff81168114612a2857600080fd5b803561125581614e0b565b60006101608236031215614e4057600080fd5b614e4861413b565b823567ffffffffffffffff811115614e5f57600080fd5b614e6b368286016141ae565b82525060208301356020820152614e8460408401614293565b6040820152614e95606084016142b8565b6060820152614ea660808401614e22565b6080820152614eb760a0840161463c565b60a0820152614ec860c0840161463c565b60c0820152614ed960e084016145eb565b60e0820152610100614eec818501614614565b90820152610120614efe84820161463c565b90820152610140614f10848201614293565b9082015292915050565b600060208284031215614f2c57600080fd5b8135613ebe81614626565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f6c57600080fd5b83018035915067ffffffffffffffff821115614f8757600080fd5b60200191503681900382131561332e57600080fd5b600060208284031215614fae57600080fd5b613ebe82614614565b600060208284031215614fc957600080fd5b8135613ebe816145d9565b73ffffffffffffffffffffffffffffffffffffffff8a8116825267ffffffffffffffff8a166020830152881660408201526102406060820181905281018690526000610260878982850137600083890182015261ffff8716608084015260a0830186905263ffffffff851660c0840152601f88017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016830101905061507c60e08301846143b5565b9a9950505050505050505050565b60ff81811683821601908111156106ad576106ad614c84565b600060ff8316806150b6576150b6614c55565b8060ff84160491505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8183823760009101908152919050565b828152606082602083013760800192915050565b80820281158282048414176106ad576106ad614c84565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b63ffffffff818116838216019080821115614d0357614d03614c84565b600061012063ffffffff808d1684528b6020850152808b166040850152508060608401526151ab8184018a6142fc565b905082810360808401526151bf81896142fc565b905060ff871660a084015282810360c08401526151dc818761406b565b905067ffffffffffffffff851660e0840152828103610100840152613689818561406b565b805161125581614e0b565b60006020828403121561521e57600080fd5b8151613ebe81614e0b565b600181815b8085111561528257817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561526857615268614c84565b8085161561527557918102915b93841c939080029061522e565b509250929050565b600082615299575060016106ad565b816152a6575060006106ad565b81600181146152bc57600281146152c6576152e2565b60019150506106ad565b60ff8411156152d7576152d7614c84565b50506001821b6106ad565b5060208310610133831016604e8410600b8410161715615305575081810a6106ad565b61530f8383615229565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561534157615341614c84565b029392505050565b6000613ebe60ff84168361528a565b60008261536757615367614c55565b500490565b6bffffffffffffffffffffffff818116838216019080821115614d0357614d03614c84565b6bffffffffffffffffffffffff8181168382160280821691908281146148ad576148ad614c84565b808201808211156106ad576106ad614c84565b67ffffffffffffffff818116838216019080821115614d0357614d03614c84565b600082601f8301126153fe57600080fd5b8135602061540e61496a83614925565b82815260059290921b8401810191818101908684111561542d57600080fd5b8286015b848110156149b25780358352918301918301615431565b600082601f83011261545957600080fd5b8135602061546961496a83614925565b82815260059290921b8401810191818101908684111561548857600080fd5b8286015b848110156149b257803567ffffffffffffffff8111156154ac5760008081fd5b6154ba8986838b01016141ae565b84525091830191830161548c565b600080600080600060a086880312156154e057600080fd5b853567ffffffffffffffff808211156154f857600080fd5b61550489838a016153ed565b9650602088013591508082111561551a57600080fd5b61552689838a01615448565b9550604088013591508082111561553c57600080fd5b61554889838a01615448565b9450606088013591508082111561555e57600080fd5b61556a89838a01615448565b9350608088013591508082111561558057600080fd5b5061558d88828901615448565b9150509295509295909350565b60006101208b835273ffffffffffffffffffffffffffffffffffffffff8b16602084015267ffffffffffffffff808b1660408501528160608501526155e18285018b6142fc565b915083820360808501526155f5828a6142fc565b915060ff881660a085015283820360c0850152615612828861406b565b90861660e08501528381036101008501529050613689818561406b565b805161125581614271565b80516112558161429e565b805161125581614626565b8051611255816145d9565b8051611255816145f6565b6000610160828403121561567957600080fd5b61568161413b565b825181526156916020840161562f565b60208201526156a26040840161563a565b60408201526156b36060840161562f565b60608201526156c460808401615645565b60808201526156d560a08401615650565b60a08201526156e660c08401615201565b60c08201526156f760e08401615201565b60e082015261010061570a81850161565b565b9082015261012061571c84820161565b565b90820152610140614780848201615650565b64ffffffffff818116838216019080821115614d0357614d03614c84565b60006102008083526157608184018a61406b565b90508281036020840152615774818961406b565b6bffffffffffffffffffffffff88811660408601528716606085015273ffffffffffffffffffffffffffffffffffffffff8616608085015291506157bd905060a08301846143b5565b979650505050505050565b600080604083850312156157db57600080fd5b8251600781106157ea57600080fd5b60208401519092506142f18161429e565b60008060008060008060c0878903121561581457600080fd5b865195506020870151945060408701519350606087015192506080870151915060a087015190509295509295509295565b60006020828403121561585757600080fd5b5051919050565b60006020828403121561587057600080fd5b8151613ebe8161427156fea164736f6c6343000813000a",
    "sourceMap": "541:7330:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1994:225;;;;;;:::i;:::-;;:::i;:::-;;847:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4179:273:27;;;;;;:::i;:::-;;:::i;:::-;;;3739:20:98;3727:33;;;3709:52;;3697:2;3682:18;4179:273:27;3565:202:98;16750:405:27;;;;;;:::i;:::-;;:::i;5820:619::-;;;:::i;:::-;;;;4990:25:98;;;5063:4;5051:17;;;5046:2;5031:18;;5024:45;4963:18;5820:619:27;4820:255:98;1026:316:64;;;:::i;17245:502:27:-;;;:::i;2487:195:29:-;;;;;;:::i;:::-;;:::i;8232:97:45:-;;;:::i;:::-;;;;;;;:::i;1752:198:29:-;;;:::i;7813:236:45:-;;7970:13;;8012:12;:31;7970:13;;;;;;;7985:25;;;;;;7813:236;;;;;6497:10:98;6534:15;;;6516:34;;6586:15;;;;6581:2;6566:18;;6559:43;6618:18;;;6611:34;6475:2;6460:18;7813:236:45;6289:362:98;16312:187:27;;;;;;:::i;:::-;;:::i;1382:81:64:-;1429:7;1451;1382:81;;1451:7;;;;6987:74:98;;6975:2;6960:18;1382:81:64;6841:226:98;3062:1404:29;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3328:198:45:-;;;;3493:4;9530:41:98;;3426:13:45;9602:2:98;9587:18;;9580:34;;;9630:18;;;9623:51;;;;9518:2;9503:18;3328:198:45;9336:344:98;10615:2447:45;;;;;;:::i;:::-;;:::i;3782:146:27:-;;;;;;:::i;:::-;;:::i;3486:101::-;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3567:15:27;;;;;;;;3574:8;3567:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3486:101;;;;;;;;:::i;7090:633::-;;;;;;:::i;:::-;;:::i;:::-;;;17023:26:98;17011:39;;;16993:58;;16981:2;16966:18;7090:633:27;16849:208:98;2263:180:29;;;:::i;4045:2576:45:-;;;;;;:::i;:::-;;:::i;4930:545:27:-;;;:::i;:::-;;;19279:25:98;;;19267:2;19252:18;4930:545:27;19133:177:98;4492:248:27;;;:::i;847:98:64:-;;;;;;:::i;:::-;;:::i;4780:110:27:-;;;:::i;1994:225:29:-;2075:20:64;:18;:20::i;:::-;2127:1:29::1;2098:30:::0;;;2094:74:::1;;2145:16;;;;;;;;;;;;;;2094:74;2173:20;:41;2196:18:::0;;2173:20;:41:::1;:::i;:::-;;1994:225:::0;;:::o;4179:273:27:-;4416:23;;4265:6;;4381:66;;4443:3;;4399:41;;4416:23;;4399:16;:41::i;:::-;:47;;;;:::i;:::-;4381:66;;:17;:66::i;:::-;4374:73;4179:273;-1:-1:-1;;4179:273:27:o;16750:405::-;16823:18;:16;:18::i;:::-;16852:6;:11;;16862:1;16852:11;16848:169;;-1:-1:-1;16903:10:27;16882:32;;;;:20;:32;;;;;;;;16848:169;;;16952:10;16931:32;;;;:20;:32;;;;;;:41;;;;:32;;:41;16927:90;;;16989:21;;;;;;;;;;;;;;16927:90;17043:10;17022:32;;;;:20;:32;;;;;:42;;17058:6;;17022:32;:42;;17058:6;;17022:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17102:12;943:17:32;;853:112;17102:12:27;17070:80;;;;;:61;23216:55:98;;;17070:80:27;;;23198:74:98;23320:26;23308:39;;23288:18;;;23281:67;17070:61:27;;;;;;;23171:18:98;;17070:80:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16750:405;;:::o;5820:619::-;5870:7;5879:5;5895:21;5920:17;5943:15;;;;;;;;;;;:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5892:84;;;;;;;6138:9;6120:15;:27;;;;:::i;:::-;6088:8;:29;;;;;;:59;:96;;;;-1:-1:-1;6151:8:27;:29;;;;;;:33;;6088:96;6084:198;;;-1:-1:-1;;6202:8:27;:31;;;;;;;6235:39;;;;;;;-1:-1:-1;6202:31:27;-1:-1:-1;5820:619:27:o;6084:198::-;6309:1;6291:14;:19;6287:82;;6327:35;;;;;;;;19279:25:98;;;19252:18;;6327:35:27;;;;;;;;6287:82;6407:15;;:26;;;;;;;;6390:14;;6407:15;;;:24;;:26;;;;;;;;;;;;;;:15;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6374:60;;;;;;5820:619;;:::o;1026:316:64:-;1150:14;;;;1136:10;:28;1128:63;;;;;;;24788:2:98;1128:63:64;;;24770:21:98;24827:2;24807:18;;;24800:30;24866:24;24846:18;;;24839:52;24908:18;;1128:63:64;24586:346:98;1128:63:64;1198:16;1217:7;;1240:10;1230:20;;;;;;;;-1:-1:-1;1256:27:64;;;;;;;1295:42;;1217:7;;;;;1240:10;;1217:7;;1295:42;;;1071:271;1026:316::o;17245:502:27:-;17289:12;:10;:12::i;:::-;17307:18;:16;:18::i;:::-;17332:29;17364:18;:16;:18::i;:::-;17332:50;;17448:9;17443:300;17467:12;:19;17463:1;:23;17443:300;;;17501:14;17518:20;:37;17539:12;17552:1;17539:15;;;;;;;;:::i;:::-;;;;;;;;;;;;17518:37;;;;;;;;;;;;-1:-1:-1;17518:37:27;;;;;-1:-1:-1;17567:11:27;;17563:174;;17630:1;17590:20;:37;17611:12;17624:1;17611:15;;;;;;;;:::i;:::-;;;;;;;17590:37;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;17673:12;943:17:32;;853:112;17673:12:27;17641:61;;;17703:12;17716:1;17703:15;;;;;;;;:::i;:::-;;;;;;;17720:7;17641:87;;;;;;;;;;;;;;;23228:42:98;23216:55;;;;23198:74;;23320:26;23308:39;23303:2;23288:18;;23281:67;23186:2;23171:18;;23026:328;17641:87:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17563:174;-1:-1:-1;17488:3:27;;;:::i;:::-;;;17443:300;;;;17283:464;17245:502::o;2487:195:29:-;2075:20:64;:18;:20::i;:::-;2602:1:29::1;2579:24:::0;;;2575:68:::1;;2620:16;;;;;;;;;;;;;;2575:68;2648:14;:29;2665:12:::0;;2648:14;:29:::1;:::i;8232:97:45:-:0;8279:16;8310:14;8303:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8232:97;:::o;1752:198:29:-;1817:12;1841:20;:27;;;;;:::i;:::-;;;1872:1;1841:32;1837:76;;1890:16;;;;;;;;;;;;;;1837:76;1925:20;1918:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1918:27:29;;1752:198;-1:-1:-1;;;;;1752:198:29:o;16312:187:27:-;1066:10:32;:40;1088:17;1066:40;;1062:90;;1123:22;;;;;;;;;;;;;;1062:90;16424:31:27::1;::::0;;;:20:::1;:31;::::0;;;;;16417:38;;;;16466:28;::::1;::::0;::::1;::::0;16445:9;19279:25:98;;19267:2;19252:18;;19133:177;16466:28:27::1;;;;;;;;16312:187:::0;:::o;3062:1404:29:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:10:32;:40;1088:17;1066:40;;1062:90;;1123:22;;;;;;;;;;;;;;1062:90;3232:19:29::1;3286:22;;3300:7:::0;3286:22:::1;:::i;:::-;:13;:22::i;:::-;3257:51:::0;;-1:-1:-1;3257:51:29;-1:-1:-1;3369:26:29::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;3341:20:::0;;3320:1117:::1;::::0;;;::::1;::::0;::::1;3454:9;3471:22;::::0;;;::::1;::::0;::::1;;:::i;:::-;3501:25;::::0;;;::::1;::::0;::::1;;:::i;:::-;3534:12;:7:::0;;:12:::1;:::i;:::-;3554:19;::::0;;;::::1;::::0;::::1;;:::i;:::-;3581:13;::::0;::::1;;3602:24;::::0;;;::::1;::::0;::::1;;:::i;:::-;3634:797;;;;;;;;3994:10;:20;;;3634:797;;;;3686:10;:22;;;3634:797;;;;;;3884:10;:34;;;3634:797;;;;;;3726:10;:17;;;3634:797;;;;;;3769:10;:25;;;3634:797;;;;;;3822:10;:27;;;3634:797;;;;;;4410:12;3634:797;;;;;;4032:10;:17;;;3634:797;;;;;;4086:10;:36;;;3634:797;;;;;;4158:10;:35;;;3634:797;;;;;;3946:10;:27;;;3634:797;;;;::::0;3320:1117:::1;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4444:17;1157:1:32;3062:1404:29::0;;;:::o;10615:2447:45:-;10971:15;10988:34;11026:23;11042:6;;11026:15;:23::i;:::-;10970:79;;;;11060:10;11056:37;;;11080:7;;;;11056:37;11411:53;;;11317:16;;29643:25:98;;;11444:18:45;11317:16;11379;;;;11461:1;11444:18;;;;;;;29684::98;;;29677:51;11317:16:45;;11379;;11411:53;;29616:18:98;11411:53:45;;;;;;;11840:45;11870:6;;11878:2;;11882;;11840:29;:45::i;:::-;11944:14;;11894:29;;11962:1;;11927:31;;11944:14;;;;;;11927;;;:31;:::i;:::-;11926:37;;;;:::i;:::-;:41;;11966:1;11926:41;:::i;:::-;11894:73;;;-1:-1:-1;11980:34:45;;;11976:90;;12023:43;;;;;30264:2:98;12023:43:45;;;30246:21:98;30303:2;30283:18;;;30276:30;30342:28;30322:18;;;30315:56;30388:18;;12023:43:45;30062:350:98;11976:90:45;12078:22;;;12074:92;;12109:57;;;;;30619:2:98;12109:57:45;;;30601:21:98;30658:2;30638:18;;;30631:30;30697:34;30677:18;;;30670:62;30768:10;30748:18;;;30741:38;30796:19;;12109:57:45;30417:404:98;12074:92:45;12213:10;12175:25;12203:21;;;:9;:21;;;;;;;;12175:49;;;;;;;;;;;;;;;;;;12203:21;;12175:49;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;12175:49:45;-1:-1:-1;12256:16:45;12236:11;:16;;;:36;;;;;;;;:::i;:::-;;;:87;;;;;12290:14;12305:11;:17;;;12290:33;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;12276:10;:47;;12236:87;12232:149;;;12340:41;;;;;31217:2:98;12340:41:45;;;31199:21:98;31256:2;31236:18;;;31229:30;31295:26;31275:18;;;31268:54;31339:18;;12340:41:45;31015:348:98;12232:149:45;11099:1289;;;;12394:38;;:::i;:::-;12493:9;12542:6;;12532:17;;;;;;;:::i;:::-;;;;;;;;;12515:50;;12551:13;;12515:50;;;:::i;:::-;;;;;;;;;;;;;;12505:61;;12515:50;12505:61;;;;-1:-1:-1;;;;;;;;;;;;;;12505:61:45;-1:-1:-1;12659:9:45;12654:369;12674:13;;;12654:369;;;12704:14;12721:48;12731:1;12740:5;12746:1;12740:8;;;;;;;:::i;:::-;12734:20;;12740:8;;12752:2;12734:20;:::i;:::-;12756:2;;12759:1;12756:5;;;;;;;:::i;:::-;;;;;;;12763:2;;12766:1;12763:5;;;;;;;:::i;:::-;;;;;;;12721:48;;;;;;;;;;;;;;;;;32184:25:98;;;32257:4;32245:17;;;;32240:2;32225:18;;32218:45;32294:2;32279:18;;32272:34;32337:2;32322:18;;32315:34;32171:3;32156:19;;31957:398;12721:48:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12721:48:45;;;;;;;12783:17;;;;;;;:9;12721:48;12783:17;;;;;;;12779:21;;;;;;;;;;;;;;12721:48;;-1:-1:-1;12721:48:45;;-1:-1:-1;12779:21:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;12779:21:45;-1:-1:-1;12824:11:45;12814:1;:6;;;:21;;;;;;;;:::i;:::-;;12810:81;;12844:47;;;;;32562:2:98;12844:47:45;;;32544:21:98;32601:2;32581:18;;;32574:30;32640:32;32620:18;;;32613:60;32690:18;;12844:47:45;32360:354:98;12810:81:45;12912:7;;12932:1;;12905:6;;:15;;;;;;;;;:::i;:::-;;;;;:29;;;12901:79;;12943:37;;;;;32921:2:98;12943:37:45;;;32903:21:98;32960:2;32940:18;;;32933:30;32999:22;32979:18;;;32972:50;33039:18;;12943:37:45;32719:344:98;12901:79:45;13008:6;12990;12997:1;:7;;;12990:15;;;;;;;;;:::i;:::-;:24;;;;:15;;;;;;:24;-1:-1:-1;12689:3:45;;;:::i;:::-;;;12654:369;;;;12439:590;;13035:22;13043:13;13035:7;:22::i;:::-;10964:2098;;;10615:2447;;;;;;;;;:::o;3782:146:27:-;3855:12;:10;:12::i;:::-;3874:17;;:8;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3902:21;;;;;3874:17;;3902:21;:::i;7090:633::-;7254:6;943:17:32;7268:70:27;;;;;33268:18:98;33256:31;;7268:70:27;;;33238:50:98;7268:70:27;33324:23:98;;33304:18;;;33297:51;7268:36:27;;;;;;;;33211:18:98;;7268:70:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1075:21;7404:11;:42;7400:87;;;7463:17;;;;;;;;;;;;;;7400:87;7492:15;7510:18;:16;:18::i;:::-;7492:36;;7534:13;7550:20;7565:4;;7550:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7550:14:27;;-1:-1:-1;;;7550:20:27:i;:::-;7534:36;;7576:19;7598:22;:20;:22::i;:::-;7576:44;;7633:85;7656:16;7674:11;7687:6;7695:8;7705:12;7633:22;:85::i;:::-;7626:92;7090:633;-1:-1:-1;;;;;;;;;7090:633:27:o;2263:180:29:-;2322:12;2346:14;:21;;;;;:::i;:::-;;;2371:1;2346:26;2342:70;;2389:16;;;;;;;;;;;;;;2342:70;2424:14;2417:21;;;;;:::i;4045:2576:45:-;4286:8;:15;4303:13;:20;4325:2;2634:430;;319:2:44;2742:10:45;:28;2738:74;;;2779:33;;;;;33561:2:98;2779:33:45;;;33543:21:98;33600:2;33580:18;;;33573:30;33639:18;33619;;;33612:46;33675:18;;2779:33:45;33359:340:98;2738:74:45;2822:1;2827;2822:6;2818:54;;2837:35;;;;;33906:2:98;2837:35:45;;;33888:21:98;33945:2;33925:18;;;33918:30;33984:20;33964:18;;;33957:48;34022:18;;2837:35:45;33704:342:98;2818:54:45;2896:15;2882:10;:29;2878:95;;2920:53;;;;;34253:2:98;2920:53:45;;;34235:21:98;34292:2;34272:18;;;34265:30;34331:34;34311:18;;;34304:62;34402:6;34382:18;;;34375:34;34426:19;;2920:53:45;34051:400:98;2878:95:45;2997:5;3001:1;2997;:5;:::i;:::-;2983:10;:19;2979:73;;3011:41;;;;;34831:2:98;3011:41:45;;;34813:21:98;34870:2;34850:18;;;34843:30;34909:26;34889:18;;;34882:54;34953:18;;3011:41:45;34629:348:98;2979:73:45;2075:20:64::1;:18;:20::i;:::-;4373:223:45::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;4603:44:::2;::::0;4483:14;4603:16:::2;:44::i;:::-;4661:9;:16:::0;:21;4654:352:::2;;4763:9;:16:::0;4745:15:::2;::::0;4763:20:::2;::::0;4782:1:::2;::::0;4763:20:::2;:::i;:::-;4745:38;;4791:14;4808:9;4818:7;4808:18;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;::::0;4856:14:::2;:23:::0;;4808:18:::2;::::0;;::::2;::::0;-1:-1:-1;4856:14:45;4871:7;;4856:23;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;::::2;::::0;::::2;4894:17:::0;;::::2;::::0;;:9:::2;:17:::0;;;;;;;4887:24;;;;;;;;;4856:23;;;::::2;4926:22:::0;;;;;4919:29;;;;;;;4956:9:::2;:15:::0;;4856:23;;-1:-1:-1;4956:9:45;:15;::::2;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;;;;;;;::::2;::::0;;;;;4979:14:::2;:20:::0;;;::::2;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;;;;;;;::::2;::::0;;;;;-1:-1:-1;4654:352:45::2;::::0;-1:-1:-1;;4654:352:45::2;;5071:9;5066:747;5090:12:::0;;:19;5086:23;::::2;5066:747;;;5128:12:::0;;:15;;5155:1:::2;::::0;5128:12;5141:1;;5128:15;::::2;;;;;:::i;:::-;;;;;;;:29;;::::0;5124:83:::2;;5166:41;::::0;::::2;::::0;;35373:2:98;5166:41:45::2;::::0;::::2;35355:21:98::0;35412:2;35392:18;;;35385:30;35451:26;35431:18;;;35424:54;35495:18;;5166:41:45::2;35171:348:98::0;5124:83:45::2;5251:1;5219:34;;:4;:17;;;5237:1;5219:20;;;;;;;;:::i;:::-;;;;;;;:34;;::::0;5215:93:::2;;5262:46;::::0;::::2;::::0;;35726:2:98;5262:46:45::2;::::0;::::2;35708:21:98::0;35765:2;35745:18;;;35738:30;35804:31;35784:18;;;35777:59;35853:18;;5262:46:45::2;35524:353:98::0;5215:93:45::2;5401:10;5366:9;:26;5376:4;:12;;;5389:1;5376:15;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5366:26:::2;;::::0;;;::::2;::::0;;;;;;-1:-1:-1;5366:26:45;:31;::::2;::::0;::::2;;;:45;::::0;::::2;;;;;;:::i;:::-;;5362:98;;5420:40;::::0;::::2;::::0;;36084:2:98;5420:40:45::2;::::0;::::2;36066:21:98::0;36123:2;36103:18;;;36096:30;36162:25;36142:18;;;36135:53;36205:18;;5420:40:45::2;35882:347:98::0;5362:98:45::2;5497:29;::::0;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;;5514:11:::2;5497:29;::::0;::::2;::::0;5478:12;;:15;;5468:9:::2;::::0;-1:-1:-1;;5497:29:45;;5478:15;::::2;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5468:26:::2;;::::0;;;;::::2;::::0;;;;;;-1:-1:-1;5468:26:45;:58;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;::::2;::::0;:26;;;;:58;;;::::2;::::0;::::2;::::0;::::2;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;5578:10:45::2;::::0;-1:-1:-1;5538:50:45::2;::::0;-1:-1:-1;5538:50:45;::::2;:9;:31;5548:4;:17;;;5566:1;5548:20;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5538:31:::2;;::::0;;;::::2;::::0;;;;;;-1:-1:-1;5538:31:45;:36;::::2;::::0;::::2;;;:50;::::0;::::2;;;;;;:::i;:::-;;5534:108;;5597:45;::::0;::::2;::::0;;36436:2:98;5597:45:45::2;::::0;::::2;36418:21:98::0;36475:2;36455:18;;;36448:30;36514;36494:18;;;36487:58;36562:18;;5597:45:45::2;36234:352:98::0;5534:108:45::2;5684:34;::::0;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;5701:16;5684:34;;::::0;5650:9:::2;:31;5660:4;:17;;;5678:1;5660:20;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5650:31:::2;;::::0;;;;::::2;::::0;;;;;;-1:-1:-1;5650:31:45;:68;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;::::2;::::0;:31;;;;:68;;;::::2;::::0;::::2;::::0;::::2;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;;5741:12:45;;:15;;5726:9:::2;::::0;-1:-1:-1;5754:1:45;;5741:15;::::2;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5726:31;;::::2;::::0;::::2;::::0;;-1:-1:-1;5726:31:45;;;;;;;;;::::2;::::0;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;;;5785:17;::::2;::::0;:20;;5765:14:::2;::::0;5785:17;5803:1;;5785:20;::::2;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5765:41;;::::2;::::0;::::2;::::0;;-1:-1:-1;5765:41:45;;;;;;;::::2;::::0;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;;5111:3;::::2;::::0;::::2;:::i;:::-;;;;5066:747;;;-1:-1:-1::0;5835:6:45::2;::::0;::::2;::::0;5818:14;:23;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;5882:25:45;;5913:48;;::::2;5882:25:::0;::::2;5948:12;5913:48:::0;::::2;::::0;::::2;::::0;;;::::2;::::0;;;5882:25;::::2;::::0;::::2;::::0;-1:-1:-1;;;5967:13:45::2;::::0;:18:::2;::::0;-1:-1:-1;;5967:18:45;;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6033:262;6070:13;6101:4;6116:13;;;;;;;;;;;6033:262;;6139:4;:12;;;6161:4;:17;;;6188:4;:6;;;6204:4;:18;;;6232:4;:26;;;6268:4;:19;;;6033:27;:262::i;:::-;5999:12;:296:::0;;;6330:12;;:19;;6307:14;:43;;;::::2;;;::::0;;::::2;::::0;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;6451:13:45;6492:17:::2;::::0;::::2;::::0;6517:6:::2;::::0;;::::2;::::0;6531:18:::2;::::0;::::2;::::0;6557:26:::2;::::0;::::2;::::0;6591:19:::2;::::0;::::2;::::0;6362:254;;::::2;::::0;::::2;::::0;6379:25;;5999:296;;6451:13;;;::::2;;;::::0;6330:12;;6492:17;;6517:6;;6531:18;;6362:254:::2;:::i;:::-;;;;;;;;4339:2282;;4045:2576:::0;;;;;;;;;:::o;4930:545:27:-;4980:7;4998:21;5023:17;5046:18;;;;;;;;;;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4995:87;;;;;;;5244:9;5226:15;:27;;;;:::i;:::-;5194:8;:29;;;;;;:59;:96;;;;-1:-1:-1;5257:8:27;:29;;;;;;:33;;5194:96;5190:158;;;-1:-1:-1;;5307:34:27;;;;;4930:545;-1:-1:-1;4930:545:27:o;5190:158::-;5375:1;5357:14;:19;5353:82;;5393:35;;;;;;;;19279:25:98;;;19252:18;;5393:35:27;19133:177:98;5353:82:27;-1:-1:-1;5455:14:27;4930:545;-1:-1:-1;4930:545:27:o;4492:248::-;4698:29;;4554:6;;4663:72;;4731:3;;4681:47;;4698:29;;;;;4681:16;:47::i;4663:72::-;4656:79;;4492:248;:::o;847:98:64:-;2075:20;:18;:20::i;:::-;918:22:::1;937:2;918:18;:22::i;:::-;847:98:::0;:::o;4780:110:27:-;4838:6;943:17:32;4859:24:27;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1809:162:64:-;1932:7;;;;1918:10;:21;1910:56;;;;;;;38612:2:98;1910:56:64;;;38594:21:98;38651:2;38631:18;;;38624:30;38690:24;38670:18;;;38663:52;38732:18;;1910:56:64;38410:346:98;1910:56:64;1809:162::o;6443:396:27:-;6510:6;6525:18;6545:14;6563:19;:17;:19::i;:::-;6524:58;;-1:-1:-1;6524:58:27;-1:-1:-1;6767:67:27;6524:58;6805:13;6524:58;6805:2;:13;:::i;:::-;6798:21;;:2;:21;:::i;:::-;6786:33;;:9;:33;:::i;:::-;6785:48;;;;:::i;:::-;6767:17;:67::i;:::-;6760:74;6443:396;-1:-1:-1;;;;6443:396:27:o;11886:177:93:-;11942:6;11973:16;11964:25;;;11956:76;;;;;;;40591:2:98;11956:76:93;;;40573:21:98;40630:2;40610:18;;;40603:30;40669:34;40649:18;;;40642:62;40740:8;40720:18;;;40713:36;40766:19;;11956:76:93;40389:402:98;11956:76:93;-1:-1:-1;12052:5:93;11886:177::o;18046:801:27:-;18093:9;;;;;:14;18089:41;;18046:801::o;18089:41::-;18239:29;18271:18;:16;:18::i;:::-;18326:19;;18239:50;;-1:-1:-1;18295:28:27;18355:25;;;18351:72;;18397:19;;;;;;;;;;;;;;18351:72;18450:9;;18428:19;;18450:40;;18469:20;;18450:9;;:40;:::i;:::-;18428:62;;18500:12;:17;;18516:1;18500:17;18496:107;;18590:7;;;18046:801::o;18496:107::-;18667:9;18662:119;18686:20;18682:1;:24;18662:119;;;18762:12;18721:20;:37;18742:12;18755:1;18742:15;;;;;;;;:::i;:::-;;;;;;;18721:37;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18708:3;;;;:::i;:::-;;;18662:119;;;-1:-1:-1;18799:43:27;18821:20;18799:12;:43;:::i;:::-;18786:9;:56;;:9;;:56;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18083:764;;;18046:801::o;7654:76:29:-;7705:20;:18;:20::i;9667:1968:27:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9926:8:27;:39;;9904:19;;;9810;;9926:39;;;;;;;9904:61;;;9900:120;;;9982:31;;;;;;;;;;;;;;9900:120;10026:13;10042:28;10057:7;:12;;;10042:14;:28::i;:::-;10026:44;;10091:22;:20;:22::i;:::-;10076:37;;10119:30;10152:137;10182:7;:24;;;10214:11;10233:6;10247:7;:16;;;10271:12;10152:22;:137::i;:::-;10119:170;;10390:23;10361:52;;10362:7;:24;;;10361:52;;;10357:101;;;10430:21;;;;;;;;;;;;;;10357:101;10515:30;;10464:23;;10497:48;;10515:30;;;;;10497:15;:48;:::i;:::-;10464:82;;10552:17;10617:4;10632:7;:26;;;10668:7;:22;;;10700:7;:25;;;10728:1;10700:29;;;;:::i;:::-;10749:12;;10739:23;;;;;;;10772:19;;;;10801:24;;;;10589:375;;;;;;;;10835:23;;10868:16;;10947:9;;10589:375;41971:42:98;42040:15;;;42022:34;;42092:15;;;42087:2;42072:18;;42065:43;42127:18;42181:15;;;42176:2;42161:18;;42154:43;42233:15;;;;42228:2;42213:18;;42206:43;42280:3;42265:19;;42258:35;;;;42342:6;42330:19;;;;42324:3;42309:19;;42302:48;42369:10;42416:15;;;42410:3;42395:19;;42388:44;42481:26;42469:39;;;;42463:3;42448:19;;42441:68;42546:15;;;;42540:3;42525:19;;42518:44;42599:15;;;42593:3;42578:19;;42571:44;41948:3;41933:19;;41574:1047;10589:375:27;;;;;;;;;;;;;;10572:398;;10589:375;10572:398;;;;10990:526;;;;;;;;11082:4;10990:526;;;;;;;;;;;11103:26;;;;10990:526;;;;;;11153:22;;;;;10990:526;;;;;;;;;;11201:24;;;;;10990:526;;;;;;;;;;;11037:16;;;;10990:526;;;;;;;;;;;;;;11408:8;:34;;;;;;10990:526;;;;11476:33;;;;;10990:526;;;;;;;;;;11567:22;;10589:375;;-1:-1:-1;10572:398:27;;-1:-1:-1;11567:22:27;;10589:375;;11567:22;;:::i;:::-;;;;;;;;;;;;;;11557:33;;11567:22;11557:33;;;;11523:31;;;;:20;:31;;;;;;:67;-1:-1:-1;9667:1968:27;;;;-1:-1:-1;9667:1968:27;;-1:-1:-1;;9667:1968:27:o;4917:1514:29:-;5005:15;5022:34;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5022:34:29;5072:27;;;;;5244:67;;;;5255:6;5244:67;:::i;:::-;5354:17;;5064:247;;-1:-1:-1;5064:247:29;;-1:-1:-1;5064:247:29;;-1:-1:-1;5064:247:29;-1:-1:-1;5064:247:29;-1:-1:-1;5317:55:29;;5390:25;;;:73;;;5449:7;:14;5425:20;:38;;5390:73;:120;;;;5497:6;:13;5473:20;:37;;5390:120;:176;;;;5544:15;:22;5520:20;:46;;5390:176;:233;;;;5600:16;:23;5576:20;:47;;5390:233;5379:317;;;5645:44;;;;;45694:2:98;5645:44:29;;;45676:21:98;45733:2;45713:18;;;45706:30;45772:29;45752:18;;;45745:57;45819:18;;5645:44:29;45492:351:98;5379:317:29;5707:9;5702:488;5726:20;5722:1;:24;5702:488;;;5765:33;5784:10;5795:1;5784:13;;;;;;;;:::i;:::-;;;;;;;19050:4:27;19069:31;;;:20;:31;;;;;;:45;;;18980:139;5765:33:29;5916:5;5761:169;5946:24;5969:1;5946:20;:24;:::i;:::-;5941:1;:29;5937:247;;6171:4;6158:17;;5937:247;5748:3;;;:::i;:::-;;;5702:488;;;-1:-1:-1;;6229:191:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4917:1514:29;;;;;;:::o;9442:565:45:-;9648:16;9841:20;:2;9859;9841:20;:::i;:::-;9783;:2;9801;9783:20;:::i;:::-;9667:73;9727:6;8969:453;9667:73;:::i;:::-;:136;;;;:::i;:::-;:194;;;;:::i;:::-;:233;;9899:1;9667:233;:::i;:::-;9648:252;-1:-1:-1;9925:8:45;:27;;9921:81;;9961:41;;;;;46050:2:98;9961:41:45;;;46032:21:98;46089:2;46069:18;;;46062:30;46128:26;46108:18;;;46101:54;46172:18;;9961:41:45;45848:348:98;9921:81:45;9579:428;9442:565;;;;;;:::o;6485:1125:29:-;6599:24;;:31;6562:69;;:28;6713:893;6737:20;6733:1;:24;6713:893;;;6772:38;6854:339;6881:13;:24;;;6906:1;6881:27;;;;;;;;:::i;:::-;;;;;;;6920:13;:21;;;6942:1;6920:24;;;;;;;;:::i;:::-;;;;;;;6956:13;:20;;;6977:1;6956:23;;;;;;;;:::i;:::-;;;;;;;6991:13;:29;;;7021:1;6991:32;;;;;;;;:::i;:::-;;;;;;;7035:13;:30;;;7066:1;7035:33;;;;;;;;:::i;:::-;;;;;;;7086:20;6854:15;:339::i;:::-;6772:429;-1:-1:-1;7398:41:29;7388:6;:51;;;;;;;;:::i;:::-;;:124;;;-1:-1:-1;7461:51:29;7451:6;:61;;;;;;;;:::i;:::-;;7388:124;7375:225;;;7551:24;;:27;;7576:1;;7551:27;;;;;;:::i;:::-;;;;;;;;;;;;7536:55;;7580:10;6987:74:98;;7551:27:29;;7536:55;;6960:18:98;7536:55:29;;;;;;;7375:225;-1:-1:-1;6759:3:29;;;:::i;:::-;;;6713:893;;7948:1175:27;8271:8;:35;8141:6;;8271:35;;;;;8257:49;;8253:119;;;8330:8;:35;;;;;;;-1:-1:-1;8253:119:27;8438:8;:33;8378:20;;8474:16;;8401:70;;8438:33;;;;;;;8401:34;;;;:70;:::i;:::-;:89;;;;:::i;:::-;8553:28;;8378:112;;;;;;-1:-1:-1;8496:16:27;;8515:67;;8553:28;;;;;8515:37;:67::i;:::-;8496:86;-1:-1:-1;8588:19:27;8496:86;8611:26;8625:12;8611:11;:26;:::i;:::-;8610:39;;;;:::i;:::-;8818:8;:44;8588:61;;-1:-1:-1;8744:35:27;;8866:6;;8804:58;;8818:44;;8588:61;8804:58;:::i;:::-;8803:69;;;;:::i;:::-;8782:91;;:11;:91;:::i;:::-;8744:129;;8880:37;8920:45;8937:27;8920:16;:45::i;:::-;8880:85;;8972:16;9044:17;9037:25;;9020:13;9013:21;;8998:11;8991:19;;:43;;;;:::i;:::-;:71;;;;:::i;:::-;8972:90;-1:-1:-1;9076:42:27;8972:90;9076:30;:42;:::i;:::-;9069:49;7948:1175;-1:-1:-1;;;;;;;;;;;;7948:1175:27:o;4586:173:29:-;4719:1;4691:18;:16;:18::i;:::-;:25;:29;4687:68;;;4730:18;:16;:18::i;6625:819:45:-;6947:7;6962:9;7030:8;7050:16;7078:12;7102:8;7122:13;7147:2;7161:14;7187:21;7220:14;7008:236;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6989:263;;7008:236;6989:263;;;;7426:11;7422:15;7355:20;7412:26;;-1:-1:-1;;6625:819:45;;;;;;;;;;;:::o;1536:239:64:-;1655:10;1649:16;;;;1641:52;;;;;;;47684:2:98;1641:52:64;;;47666:21:98;47723:2;47703:18;;;47696:30;47762:25;47742:18;;;47735:53;47805:18;;1641:52:64;47482:347:98;1641:52:64;1700:14;:19;;;;;;;;;;;;;;-1:-1:-1;1758:7:64;;1731:39;;1700:19;;1758:7;;1731:39;;-1:-1:-1;1731:39:64;1536:239;:::o;10458:177:93:-;10514:6;10545:16;10536:25;;;10528:76;;;;;;;48036:2:98;10528:76:93;;;48018:21:98;48075:2;48055:18;;;48048:30;48114:34;48094:18;;;48087:62;48185:8;48165:18;;;48158:36;48211:19;;10528:76:93;47834:402:98;12296:3659:27;12562:31;12601:46;12661:15;12650:59;;;;;;;;;;;;:::i;:::-;12601:108;;12716:22;12820:11;12781:10;:35;;;12742:10;:36;;;:74;;;;:::i;:::-;12741:90;;;;;;:::i;:::-;12716:115;-1:-1:-1;12837:21:27;12861:72;;;:54;12899:8;12861:37;:54::i;:::-;:72;;;;:::i;:::-;12837:96;-1:-1:-1;12976:23:27;13002:48;13019:30;12837:96;13019:14;:30;:::i;:::-;13002:16;:48::i;:::-;12976:74;;13056:18;13077:29;13094:11;13077:16;:29::i;:::-;13056:50;-1:-1:-1;13191:42:27;;943:17:32;13263:20:27;;;13291:8;13307:3;13318:11;13690:10;:19;;;13651:58;;13670:10;:17;;;13651:36;;:16;:36;;;;:::i;:::-;:58;;;;:::i;:::-;13717:10;13735:757;;;;;;;;14284:10;:20;;;13735:757;;;;13976:10;:22;;;13735:757;;;;;;14174:10;:34;;;13735:757;;;;;;14016:10;:17;;;13735:757;;;;;;14059:10;:25;;;13735:757;;;;;;14112:10;:27;;;13735:757;;;;;;13784:1;13735:757;;;;;;14322:10;:17;;;13735:757;;;;;;14376:10;:36;;;13735:757;;;;;;14448:10;:35;;;13735:757;;;;;;14236:10;:27;;;13735:757;;;;;13263:1235;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13190:1308;;-1:-1:-1;13190:1308:27;-1:-1:-1;14754:41:27;14740:10;:55;;;;;;;;:::i;:::-;;:130;;;-1:-1:-1;14819:51:27;14805:10;:65;;;;;;;;:::i;:::-;;14740:130;14729:1199;;;14892:31;;;;:20;:31;;;;;14885:38;15031:36;15050:17;15031:16;:36;:::i;:::-;15016:10;14995:32;;;;:20;:32;;;;;:72;;:32;;;:72;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15226:10;:17;;;15213:30;;:9;;:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15341:10;:19;;;15307:53;;:20;:30;15328:8;:6;:8::i;:::-;15307:30;;;;;;;;;;;;;-1:-1:-1;15307:30:27;;;:53;;:30;;-1:-1:-1;15307:53:27;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15570:9;15535:386;15602:11;15638:13;15680:17;15720:10;:17;;;15863:1;15893:10;:19;;;15535:386;;;;;;;;;;51897:26:98;51950:15;;;51932:34;;51997:2;51982:18;;51975:34;;;;52045:15;;;;52040:2;52025:18;;52018:43;52080:20;52136:15;;;52131:2;52116:18;;52109:43;52189:15;;;52183:3;52168:19;;52161:44;52242:15;;;52236:3;52221:19;;52214:44;51874:3;51859:19;;51601:663;15535:386:27;;;;;;;;14729:1199;-1:-1:-1;15940:10:27;12296:3659;-1:-1:-1;;;;;;;;;;;;12296:3659:27:o;2628:577:41:-;2707:16;2749:13;2772:27;2749:13;2772:18;:27::i;:::-;2768:419;;;2933:22;776:42;2967:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2930:60;;;;;;;1243:3;3023:17;:41;;;;:::i;:::-;3005:60;;:14;:60;:::i;2768:419::-;3082:27;3101:7;3082:18;:27::i;:::-;3078:109;;;3126:54;;;;;;;;19279:25:98;;;1702:42:41;;3126:35;;19252:18:98;;3126:54:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3119:61;2628:577;-1:-1:-1;;;2628:577:41:o;3078:109::-;-1:-1:-1;3199:1:41;;2628:577;-1:-1:-1;;2628:577:41:o;5479:301:27:-;5546:6;5716:59;5755:19;:17;:19::i;:::-;5735:16;5742:9;5735:4;:16;:::i;7774:95:29:-;7824:13;7852:4;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3297:226:41:-;3365:4;1299:5;3390:7;:31;:79;;;;1363:6;3431:7;:38;3390:79;:128;;;-1:-1:-1;;1429:6:41;3479:39;;3297:226::o;3699:332::-;3767:4;1889:2;3792:7;:30;:69;;;;1941:3;3832:7;:29;3792:69;:109;;;;1995:8;3871:7;:30;3792:109;:151;;;;2151:4;3911:7;:32;3792:151;:192;;;;2207:5;3953:7;:31;3792:192;:234;;;-1:-1:-1;;2265:5:41;3994:32;;3699:332::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:347:98:-;65:8;75:6;129:3;122:4;114:6;110:17;106:27;96:55;;147:1;144;137:12;96:55;-1:-1:-1;170:20:98;;213:18;202:30;;199:50;;;245:1;242;235:12;199:50;282:4;274:6;270:17;258:29;;334:3;327:4;318:6;310;306:19;302:30;299:39;296:59;;;351:1;348;341:12;366:409;436:6;444;497:2;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;553:9;540:23;586:18;578:6;575:30;572:50;;;618:1;615;608:12;572:50;657:58;707:7;698:6;687:9;683:22;657:58;:::i;:::-;734:8;;631:84;;-1:-1:-1;366:409:98;-1:-1:-1;;;;366:409:98:o;780:482::-;822:3;860:5;854:12;887:6;882:3;875:19;912:1;922:162;936:6;933:1;930:13;922:162;;;998:4;1054:13;;;1050:22;;1044:29;1026:11;;;1022:20;;1015:59;951:12;922:162;;;926:3;1129:1;1122:4;1113:6;1108:3;1104:16;1100:27;1093:38;1251:4;1181:66;1176:2;1168:6;1164:15;1160:88;1155:3;1151:98;1147:109;1140:116;;;780:482;;;;:::o;1267:220::-;1416:2;1405:9;1398:21;1379:4;1436:45;1477:2;1466:9;1462:18;1454:6;1436:45;:::i;1492:184::-;1544:77;1541:1;1534:88;1641:4;1638:1;1631:15;1665:4;1662:1;1655:15;1681:252;1753:2;1747:9;1795:3;1783:16;;1829:18;1814:34;;1850:22;;;1811:62;1808:88;;;1876:18;;:::i;:::-;1912:2;1905:22;1681:252;:::o;1938:255::-;2010:2;2004:9;2052:6;2040:19;;2089:18;2074:34;;2110:22;;;2071:62;2068:88;;;2136:18;;:::i;2198:334::-;2269:2;2263:9;2325:2;2315:13;;2330:66;2311:86;2299:99;;2428:18;2413:34;;2449:22;;;2410:62;2407:88;;;2475:18;;:::i;:::-;2511:2;2504:22;2198:334;;-1:-1:-1;2198:334:98:o;2537:589::-;2579:5;2632:3;2625:4;2617:6;2613:17;2609:27;2599:55;;2650:1;2647;2640:12;2599:55;2686:6;2673:20;2712:18;2708:2;2705:26;2702:52;;;2734:18;;:::i;:::-;2778:114;2886:4;2817:66;2810:4;2806:2;2802:13;2798:86;2794:97;2778:114;:::i;:::-;2917:2;2908:7;2901:19;2963:3;2956:4;2951:2;2943:6;2939:15;2935:26;2932:35;2929:55;;;2980:1;2977;2970:12;2929:55;3045:2;3038:4;3030:6;3026:17;3019:4;3010:7;3006:18;2993:55;3093:1;3068:16;;;3086:4;3064:27;3057:38;;;;3072:7;2537:589;-1:-1:-1;;;2537:589:98:o;3131:320::-;3199:6;3252:2;3240:9;3231:7;3227:23;3223:32;3220:52;;;3268:1;3265;3258:12;3220:52;3308:9;3295:23;3341:18;3333:6;3330:30;3327:50;;;3373:1;3370;3363:12;3327:50;3396:49;3437:7;3428:6;3417:9;3413:22;3396:49;:::i;3772:154::-;3858:42;3851:5;3847:54;3840:5;3837:65;3827:93;;3916:1;3913;3906:12;3931:134;3999:20;;4028:31;3999:20;4028:31;:::i;4070:137::-;4155:26;4148:5;4144:38;4137:5;4134:49;4124:77;;4197:1;4194;4187:12;4212:132;4279:20;;4308:30;4279:20;4308:30;:::i;4349:386::-;4416:6;4424;4477:2;4465:9;4456:7;4452:23;4448:32;4445:52;;;4493:1;4490;4483:12;4445:52;4532:9;4519:23;4551:31;4576:5;4551:31;:::i;:::-;4601:5;-1:-1:-1;4658:2:98;4643:18;;4630:32;4671;4630;4671;:::i;:::-;4722:7;4712:17;;;4349:386;;;;;:::o;5212:484::-;5265:3;5303:5;5297:12;5330:6;5325:3;5318:19;5356:4;5385:2;5380:3;5376:12;5369:19;;5422:2;5415:5;5411:14;5443:1;5453:218;5467:6;5464:1;5461:13;5453:218;;;5532:13;;5547:42;5528:62;5516:75;;5611:12;;;;5646:15;;;;5489:1;5482:9;5453:218;;;-1:-1:-1;5687:3:98;;5212:484;-1:-1:-1;;;;;5212:484:98:o;5701:261::-;5880:2;5869:9;5862:21;5843:4;5900:56;5952:2;5941:9;5937:18;5929:6;5900:56;:::i;6656:180::-;6715:6;6768:2;6756:9;6747:7;6743:23;6739:32;6736:52;;;6784:1;6781;6774:12;6736:52;-1:-1:-1;6807:23:98;;6656:180;-1:-1:-1;6656:180:98:o;7072:392::-;7163:6;7216:2;7204:9;7195:7;7191:23;7187:32;7184:52;;;7232:1;7229;7222:12;7184:52;7272:9;7259:23;7305:18;7297:6;7294:30;7291:50;;;7337:1;7334;7327:12;7291:50;7360:22;;7416:3;7398:16;;;7394:26;7391:46;;;7433:1;7430;7423:12;7792:1276;7874:5;7868:12;7863:3;7856:25;7927:4;7920:5;7916:16;7910:23;7942:48;7984:4;7979:3;7975:14;7961:12;5157:42;5146:54;5134:67;;5080:127;7942:48;;8038:4;8031:5;8027:16;8021:23;8053:49;8096:4;8091:3;8087:14;8071;7545:26;7534:38;7522:51;;7469:110;8053:49;;8150:4;8143:5;8139:16;8133:23;8165:50;8209:4;8204:3;8200:14;8184;5157:42;5146:54;5134:67;;5080:127;8165:50;;8263:4;8256:5;8252:16;8246:23;8278:49;8321:4;8316:3;8312:14;8296;7660:18;7649:30;7637:43;;7584:102;8278:49;;8375:4;8368:5;8364:16;8358:23;8390:49;8433:4;8428:3;8424:14;8408;6266:10;6255:22;6243:35;;6190:94;8390:49;;8487:4;8480:5;8476:16;8470:23;8502:49;8545:4;8540:3;8536:14;8520;3532:20;3521:32;3509:45;;3456:104;8502:49;;8599:4;8592:5;8588:16;8582:23;8614:49;8657:4;8652:3;8648:14;8632;3532:20;3521:32;3509:45;;3456:104;8614:49;-1:-1:-1;8682:6:98;8725:14;;;8719:21;7767:12;7756:24;;;8783:12;;;7744:37;;;;8815:6;8858:14;;;8852:21;7756:24;;;8916:12;;;7744:37;8948:6;8991:14;;;8985:21;6266:10;6255:22;9049:12;;6243:35;7792:1276::o;9073:258::-;9265:3;9250:19;;9278:47;9254:9;9307:6;9278:47;:::i;9685:367::-;9748:8;9758:6;9812:3;9805:4;9797:6;9793:17;9789:27;9779:55;;9830:1;9827;9820:12;9779:55;-1:-1:-1;9853:20:98;;9896:18;9885:30;;9882:50;;;9928:1;9925;9918:12;9882:50;9965:4;9957:6;9953:17;9941:29;;10025:3;10018:4;10008:6;10005:1;10001:14;9993:6;9989:27;9985:38;9982:47;9979:67;;;10042:1;10039;10032:12;10057:1276;10242:6;10250;10258;10266;10274;10282;10290;10298;10351:3;10339:9;10330:7;10326:23;10322:33;10319:53;;;10368:1;10365;10358:12;10319:53;10406:2;10395:9;10391:18;10428:7;10424:2;10421:15;10418:35;;;10449:1;10446;10439:12;10418:35;10472:9;;-1:-1:-1;10504:16:98;10539:18;10569:14;;;10566:34;;;10596:1;10593;10586:12;10566:34;10635:58;10685:7;10676:6;10665:9;10661:22;10635:58;:::i;:::-;10712:8;;-1:-1:-1;10609:84:98;-1:-1:-1;10800:3:98;10785:19;;10772:33;;-1:-1:-1;10817:16:98;;;10814:36;;;10846:1;10843;10836:12;10814:36;10885:72;10949:7;10938:8;10927:9;10923:24;10885:72;:::i;:::-;10976:8;;-1:-1:-1;10859:98:98;-1:-1:-1;11064:3:98;11049:19;;11036:33;;-1:-1:-1;11081:16:98;;;11078:36;;;11110:1;11107;11100:12;11078:36;;11149:72;11213:7;11202:8;11191:9;11187:24;11149:72;:::i;:::-;10057:1276;;;;-1:-1:-1;10057:1276:98;;;;;;11123:98;;11322:3;11307:19;11294:33;;10057:1276;-1:-1:-1;;;;10057:1276:98:o;11338:121::-;11423:10;11416:5;11412:22;11405:5;11402:33;11392:61;;11449:1;11446;11439:12;11464:132;11531:20;;11560:30;11531:20;11560:30;:::i;11601:123::-;11686:12;11679:5;11675:24;11668:5;11665:35;11655:63;;11714:1;11711;11704:12;11729:132;11796:20;;11825:30;11796:20;11825:30;:::i;11866:159::-;11933:20;;11993:6;11982:18;;11972:29;;11962:57;;12015:1;12012;12005:12;12030:129;12115:18;12108:5;12104:30;12097:5;12094:41;12084:69;;12149:1;12146;12139:12;12164:132;12231:20;;12260:30;12231:20;12260:30;:::i;12301:114::-;12385:4;12378:5;12374:16;12367:5;12364:27;12354:55;;12405:1;12402;12395:12;12420:130;12486:20;;12515:29;12486:20;12515:29;:::i;12555:212::-;12623:20;;12683:58;12672:70;;12662:81;;12652:109;;12757:1;12754;12747:12;12772:1258;12872:6;12925:3;12913:9;12904:7;12900:23;12896:33;12893:53;;;12942:1;12939;12932:12;12893:53;12968:22;;:::i;:::-;13013:28;13031:9;13013:28;:::i;:::-;13006:5;12999:43;13074:37;13107:2;13096:9;13092:18;13074:37;:::i;:::-;13069:2;13062:5;13058:14;13051:61;13144:37;13177:2;13166:9;13162:18;13144:37;:::i;:::-;13139:2;13132:5;13128:14;13121:61;13214:37;13247:2;13236:9;13232:18;13214:37;:::i;:::-;13209:2;13202:5;13198:14;13191:61;13285:38;13318:3;13307:9;13303:19;13285:38;:::i;:::-;13279:3;13272:5;13268:15;13261:63;13357:38;13390:3;13379:9;13375:19;13357:38;:::i;:::-;13351:3;13344:5;13340:15;13333:63;13429:38;13462:3;13451:9;13447:19;13429:38;:::i;:::-;13423:3;13416:5;13412:15;13405:63;13501:37;13533:3;13522:9;13518:19;13501:37;:::i;:::-;13495:3;13488:5;13484:15;13477:62;13558:3;13593:38;13627:2;13616:9;13612:18;13593:38;:::i;:::-;13577:14;;;13570:62;13651:3;13686:37;13704:18;;;13686:37;:::i;:::-;13670:14;;;13663:61;13743:3;13778:37;13796:18;;;13778:37;:::i;:::-;13762:14;;;13755:61;13835:3;13870:37;13888:18;;;13870:37;:::i;:::-;13854:14;;;13847:61;13927:3;13962:37;13980:18;;;13962:37;:::i;:::-;13946:14;;;13939:61;13950:5;12772:1258;-1:-1:-1;;;12772:1258:98:o;14278:1811::-;14525:13;;6266:10;6255:22;6243:35;;14494:3;14479:19;;14597:4;14589:6;14585:17;14579:24;14612:53;14659:4;14648:9;14644:20;14630:12;6266:10;6255:22;6243:35;;6190:94;14612:53;;14714:4;14706:6;14702:17;14696:24;14729:55;14778:4;14767:9;14763:20;14747:14;6266:10;6255:22;6243:35;;6190:94;14729:55;;14833:4;14825:6;14821:17;14815:24;14848:55;14897:4;14886:9;14882:20;14866:14;6266:10;6255:22;6243:35;;6190:94;14848:55;;14952:4;14944:6;14940:17;14934:24;14967:55;15016:4;15005:9;15001:20;14985:14;7767:12;7756:24;7744:37;;7691:96;14967:55;;15071:4;15063:6;15059:17;15053:24;15086:55;15135:4;15124:9;15120:20;15104:14;14111:6;14100:18;14088:31;;14035:90;15086:55;;15190:4;15182:6;15178:17;15172:24;15205:55;15254:4;15243:9;15239:20;15223:14;7660:18;7649:30;7637:43;;7584:102;15205:55;;15309:4;15301:6;15297:17;15291:24;15324:54;15372:4;15361:9;15357:20;15341:14;4807:4;4796:16;4784:29;;4740:75;15324:54;-1:-1:-1;15397:6:98;15440:15;;;15434:22;14207:58;14196:70;15500:18;;;14184:83;15538:6;15581:15;;;15575:22;6266:10;6255:22;15640:18;;;6243:35;15678:6;15721:15;;;15715:22;14111:6;14100:18;;;15780;;;14088:31;;;;15818:6;15862:15;;;15856:22;14100:18;;15922;;;14088:31;15960:6;16004:15;;;15998:22;14100:18;;;16064;;;14088:31;15960:6;16029:54;;;14278:1811;;;;:::o;16094:750::-;16189:6;16197;16205;16213;16221;16274:3;16262:9;16253:7;16249:23;16245:33;16242:53;;;16291:1;16288;16281:12;16242:53;16330:9;16317:23;16349:30;16373:5;16349:30;:::i;:::-;16398:5;-1:-1:-1;16454:2:98;16439:18;;16426:32;16481:18;16470:30;;16467:50;;;16513:1;16510;16503:12;16467:50;16552:58;16602:7;16593:6;16582:9;16578:22;16552:58;:::i;:::-;16629:8;;-1:-1:-1;16526:84:98;-1:-1:-1;;16716:2:98;16701:18;;16688:32;16729;16688;16729;:::i;:::-;16094:750;;;;-1:-1:-1;16094:750:98;;16834:2;16819:18;16806:32;;16094:750;-1:-1:-1;;16094:750:98:o;17062:183::-;17122:4;17155:18;17147:6;17144:30;17141:56;;;17177:18;;:::i;:::-;-1:-1:-1;17222:1:98;17218:14;17234:4;17214:25;;17062:183::o;17250:737::-;17304:5;17357:3;17350:4;17342:6;17338:17;17334:27;17324:55;;17375:1;17372;17365:12;17324:55;17411:6;17398:20;17437:4;17461:60;17477:43;17517:2;17477:43;:::i;:::-;17461:60;:::i;:::-;17555:15;;;17641:1;17637:10;;;;17625:23;;17621:32;;;17586:12;;;;17665:15;;;17662:35;;;17693:1;17690;17683:12;17662:35;17729:2;17721:6;17717:15;17741:217;17757:6;17752:3;17749:15;17741:217;;;17837:3;17824:17;17854:31;17879:5;17854:31;:::i;:::-;17898:18;;17936:12;;;;17774;;17741:217;;;-1:-1:-1;17976:5:98;17250:737;-1:-1:-1;;;;;;17250:737:98:o;17992:1136::-;18161:6;18169;18177;18185;18193;18201;18254:3;18242:9;18233:7;18229:23;18225:33;18222:53;;;18271:1;18268;18261:12;18222:53;18311:9;18298:23;18340:18;18381:2;18373:6;18370:14;18367:34;;;18397:1;18394;18387:12;18367:34;18420:61;18473:7;18464:6;18453:9;18449:22;18420:61;:::i;:::-;18410:71;;18534:2;18523:9;18519:18;18506:32;18490:48;;18563:2;18553:8;18550:16;18547:36;;;18579:1;18576;18569:12;18547:36;18602:63;18657:7;18646:8;18635:9;18631:24;18602:63;:::i;:::-;18592:73;;18684:36;18716:2;18705:9;18701:18;18684:36;:::i;:::-;18674:46;;18773:2;18762:9;18758:18;18745:32;18729:48;;18802:2;18792:8;18789:16;18786:36;;;18818:1;18815;18808:12;18786:36;18841:51;18884:7;18873:8;18862:9;18858:24;18841:51;:::i;:::-;18831:61;;18911:38;18944:3;18933:9;18929:19;18911:38;:::i;:::-;18901:48;;19002:3;18991:9;18987:19;18974:33;18958:49;;19032:2;19022:8;19019:16;19016:36;;;19048:1;19045;19038:12;19016:36;;19071:51;19114:7;19103:8;19092:9;19088:24;19071:51;:::i;:::-;19061:61;;;17992:1136;;;;;;;;:::o;19315:247::-;19374:6;19427:2;19415:9;19406:7;19402:23;19398:32;19395:52;;;19443:1;19440;19433:12;19395:52;19482:9;19469:23;19501:31;19526:5;19501:31;:::i;19567:437::-;19646:1;19642:12;;;;19689;;;19710:61;;19764:4;19756:6;19752:17;19742:27;;19710:61;19817:2;19809:6;19806:14;19786:18;19783:38;19780:218;;19854:77;19851:1;19844:88;19955:4;19952:1;19945:15;19983:4;19980:1;19973:15;20134:544;20235:2;20230:3;20227:11;20224:448;;;20271:1;20296:5;20292:2;20285:17;20341:4;20337:2;20327:19;20411:2;20399:10;20395:19;20392:1;20388:27;20382:4;20378:38;20447:4;20435:10;20432:20;20429:47;;;-1:-1:-1;20470:4:98;20429:47;20525:2;20520:3;20516:12;20513:1;20509:20;20503:4;20499:31;20489:41;;20580:82;20598:2;20591:5;20588:13;20580:82;;;20643:17;;;20624:1;20613:13;20580:82;;20914:1321;21036:18;21031:3;21028:27;21025:53;;;21058:18;;:::i;:::-;21087:93;21176:3;21136:38;21168:4;21162:11;21136:38;:::i;:::-;21130:4;21087:93;:::i;:::-;21206:1;21231:2;21226:3;21223:11;21248:1;21243:734;;;;22021:1;22038:3;22035:93;;;-1:-1:-1;22094:19:98;;;22081:33;22035:93;20820:66;20811:1;20807:11;;;20803:84;20799:89;20789:100;20895:1;20891:11;;;20786:117;22141:78;;21216:1013;;21243:734;20081:1;20074:14;;;20118:4;20105:18;;21288:66;21279:76;;;21438:9;21460:229;21474:7;21471:1;21468:14;21460:229;;;21563:19;;;21550:33;21535:49;;21670:4;21655:20;;;;21623:1;21611:14;;;;21490:12;21460:229;;;21464:3;21717;21708:7;21705:16;21702:219;;;21837:66;21831:3;21825;21822:1;21818:11;21814:21;21810:94;21806:99;21793:9;21788:3;21784:19;21771:33;21767:139;21759:6;21752:155;21702:219;;;21964:1;21958:3;21955:1;21951:11;21947:19;21941:4;21934:33;21216:1013;;;20914:1321;;;:::o;22240:184::-;22292:77;22289:1;22282:88;22389:4;22386:1;22379:15;22413:4;22410:1;22403:15;22429:184;22481:77;22478:1;22471:88;22578:4;22575:1;22568:15;22602:4;22599:1;22592:15;22618:207;22657:1;22683:26;22736:2;22733:1;22729:10;22758:3;22748:37;;22765:18;;:::i;:::-;22803:10;;22799:20;;;;;22618:207;-1:-1:-1;;22618:207:98:o;22830:191::-;22898:26;22957:10;;;22945;;;22941:27;;22980:12;;;22977:38;;;22995:18;;:::i;:::-;22977:38;22830:191;;;;:::o;23359:179::-;23437:13;;23490:22;23479:34;;23469:45;;23459:73;;23528:1;23525;23518:12;23543:473;23646:6;23654;23662;23670;23678;23731:3;23719:9;23710:7;23706:23;23702:33;23699:53;;;23748:1;23745;23738:12;23699:53;23771:39;23800:9;23771:39;:::i;:::-;23761:49;;23850:2;23839:9;23835:18;23829:25;23819:35;;23894:2;23883:9;23879:18;23873:25;23863:35;;23938:2;23927:9;23923:18;23917:25;23907:35;;23961:49;24005:3;23994:9;23990:19;23961:49;:::i;:::-;23951:59;;23543:473;;;;;;;;:::o;24021:128::-;24088:9;;;24109:11;;;24106:37;;;24123:18;;:::i;24334:247::-;24402:6;24455:2;24443:9;24434:7;24430:23;24426:32;24423:52;;;24471:1;24468;24461:12;24423:52;24503:9;24497:16;24522:29;24545:5;24522:29;:::i;24937:184::-;24989:77;24986:1;24979:88;25086:4;25083:1;25076:15;25110:4;25107:1;25100:15;25126:195;25165:3;25196:66;25189:5;25186:77;25183:103;;25266:18;;:::i;:::-;-1:-1:-1;25313:1:98;25302:13;;25126:195::o;25508:131::-;25593:20;25586:5;25582:32;25575:5;25572:43;25562:71;;25629:1;25626;25619:12;25644:132;25711:20;;25740:30;25711:20;25740:30;:::i;25781:1206::-;25893:9;25952:6;25944:5;25928:14;25924:26;25920:39;25917:59;;;25972:1;25969;25962:12;25917:59;26000:22;;:::i;:::-;26058:5;26045:19;26087:18;26079:6;26076:30;26073:50;;;26119:1;26116;26109:12;26073:50;26148:52;26185:14;26176:6;26169:5;26165:18;26148:52;:::i;:::-;26139:7;26132:69;;26259:2;26252:5;26248:14;26235:28;26230:2;26221:7;26217:16;26210:54;26298:34;26328:2;26321:5;26317:14;26298:34;:::i;:::-;26293:2;26284:7;26280:16;26273:60;26367:33;26396:2;26389:5;26385:14;26367:33;:::i;:::-;26362:2;26353:7;26349:16;26342:59;26436:34;26465:3;26458:5;26454:15;26436:34;:::i;:::-;26430:3;26421:7;26417:17;26410:61;26506:34;26535:3;26528:5;26524:15;26506:34;:::i;:::-;26500:3;26491:7;26487:17;26480:61;26576:34;26605:3;26598:5;26594:15;26576:34;:::i;:::-;26570:3;26561:7;26557:17;26550:61;26646:34;26675:3;26668:5;26664:15;26646:34;:::i;:::-;26640:3;26631:7;26627:17;26620:61;26700:3;26737:33;26766:2;26759:5;26755:14;26737:33;:::i;:::-;26719:16;;;26712:59;26790:3;26827:33;26845:14;;;26827:33;:::i;:::-;26809:16;;;26802:59;26880:3;26917:34;26936:14;;;26917:34;:::i;:::-;26899:16;;;26892:60;26903:7;25781:1206;-1:-1:-1;;25781:1206:98:o;26992:245::-;27050:6;27103:2;27091:9;27082:7;27078:23;27074:32;27071:52;;;27119:1;27116;27109:12;27071:52;27158:9;27145:23;27177:30;27201:5;27177:30;:::i;27242:580::-;27319:4;27325:6;27385:11;27372:25;27475:66;27464:8;27448:14;27444:29;27440:102;27420:18;27416:127;27406:155;;27557:1;27554;27547:12;27406:155;27584:33;;27636:20;;;-1:-1:-1;27679:18:98;27668:30;;27665:50;;;27711:1;27708;27701:12;27665:50;27744:4;27732:17;;-1:-1:-1;27775:14:98;27771:27;;;27761:38;;27758:58;;;27812:1;27809;27802:12;27827:184;27885:6;27938:2;27926:9;27917:7;27913:23;27909:32;27906:52;;;27954:1;27951;27944:12;27906:52;27977:28;27995:9;27977:28;:::i;28016:245::-;28074:6;28127:2;28115:9;28106:7;28102:23;28098:32;28095:52;;;28143:1;28140;28133:12;28095:52;28182:9;28169:23;28201:30;28225:5;28201:30;:::i;28266:1200::-;28685:42;28754:15;;;28736:34;;28818:18;28806:31;;28801:2;28786:18;;28779:59;28874:15;;28869:2;28854:18;;28847:43;28663:3;28921:2;28906:18;;28899:30;;;28945:18;;28938:34;;;28634:4;28991:3;28965:6;29036;29016:18;;;29003:48;29100:1;29071:22;;;29067:31;;29060:42;29281:6;29269:19;;29263:3;29248:19;;29241:48;29320:3;29305:19;;29298:35;;;29382:10;29370:23;;29364:3;29349:19;;29342:52;29154:2;29142:15;;29159:66;29138:88;29123:104;;29119:113;;-1:-1:-1;29403:57:98;29455:3;29440:19;;29432:6;29403:57;:::i;:::-;28266:1200;;;;;;;;;;;;:::o;29739:148::-;29827:4;29806:12;;;29820;;;29802:31;;29845:13;;29842:39;;;29861:18;;:::i;29892:165::-;29930:1;29964:4;29961:1;29957:12;29988:3;29978:37;;29995:18;;:::i;:::-;30047:3;30040:4;30037:1;30033:12;30029:22;30024:27;;;29892:165;;;;:::o;30826:184::-;30878:77;30875:1;30868:88;30975:4;30972:1;30965:15;30999:4;30996:1;30989:15;31368:271;31551:6;31543;31538:3;31525:33;31507:3;31577:16;;31602:13;;;31577:16;31368:271;-1:-1:-1;31368:271:98:o;31644:308::-;31861:6;31856:3;31849:19;31912:4;31904:6;31899:2;31894:3;31890:12;31877:40;31942:3;31933:13;;31644:308;-1:-1:-1;;31644:308:98:o;34456:168::-;34529:9;;;34560;;34577:15;;;34571:22;;34557:37;34547:71;;34598:18;;:::i;34982:184::-;35034:77;35031:1;35024:88;35131:4;35128:1;35121:15;35155:4;35152:1;35145:15;36591:172;36658:10;36688;;;36700;;;36684:27;;36723:11;;;36720:37;;;36737:18;;:::i;36768:1242::-;37210:4;37239:3;37261:10;37310:2;37302:6;37298:15;37287:9;37280:34;37350:6;37345:2;37334:9;37330:18;37323:34;37405:2;37397:6;37393:15;37388:2;37377:9;37373:18;37366:43;;37445:2;37440;37429:9;37425:18;37418:30;37471:56;37523:2;37512:9;37508:18;37500:6;37471:56;:::i;:::-;37457:70;;37576:9;37568:6;37564:22;37558:3;37547:9;37543:19;37536:51;37610:44;37647:6;37639;37610:44;:::i;:::-;37596:58;;37703:4;37695:6;37691:17;37685:3;37674:9;37670:19;37663:46;37758:9;37750:6;37746:22;37740:3;37729:9;37725:19;37718:51;37792:33;37818:6;37810;37792:33;:::i;:::-;37778:47;;37874:18;37866:6;37862:31;37856:3;37845:9;37841:19;37834:60;37943:9;37935:6;37931:22;37925:3;37914:9;37910:19;37903:51;37971:33;37997:6;37989;37971:33;:::i;38015:136::-;38093:13;;38115:30;38093:13;38115:30;:::i;38156:249::-;38225:6;38278:2;38266:9;38257:7;38253:23;38249:32;38246:52;;;38294:1;38291;38284:12;38246:52;38326:9;38320:16;38345:30;38369:5;38345:30;:::i;38761:482::-;38850:1;38893:5;38850:1;38907:330;38928:7;38918:8;38915:21;38907:330;;;39047:4;38979:66;38975:77;38969:4;38966:87;38963:113;;;39056:18;;:::i;:::-;39106:7;39096:8;39092:22;39089:55;;;39126:16;;;;39089:55;39205:22;;;;39165:15;;;;38907:330;;;38911:3;38761:482;;;;;:::o;39248:866::-;39297:5;39327:8;39317:80;;-1:-1:-1;39368:1:98;39382:5;;39317:80;39416:4;39406:76;;-1:-1:-1;39453:1:98;39467:5;;39406:76;39498:4;39516:1;39511:59;;;;39584:1;39579:130;;;;39491:218;;39511:59;39541:1;39532:10;;39555:5;;;39579:130;39616:3;39606:8;39603:17;39600:43;;;39623:18;;:::i;:::-;-1:-1:-1;;39679:1:98;39665:16;;39694:5;;39491:218;;39793:2;39783:8;39780:16;39774:3;39768:4;39765:13;39761:36;39755:2;39745:8;39742:16;39737:2;39731:4;39728:12;39724:35;39721:77;39718:159;;;-1:-1:-1;39830:19:98;;;39862:5;;39718:159;39909:34;39934:8;39928:4;39909:34;:::i;:::-;40039:6;39971:66;39967:79;39958:7;39955:92;39952:118;;;40050:18;;:::i;:::-;40088:20;;39248:866;-1:-1:-1;;;39248:866:98:o;40119:140::-;40177:5;40206:47;40247:4;40237:8;40233:19;40227:4;40206:47;:::i;40264:120::-;40304:1;40330;40320:35;;40335:18;;:::i;:::-;-1:-1:-1;40369:9:98;;40264:120::o;40796:188::-;40863:26;40909:10;;;40921;;;40905:27;;40944:11;;;40941:37;;;40958:18;;:::i;40989:265::-;41060:26;41118:10;;;41130;;;41114:27;41161:20;;;;41060:26;41200:24;;;41190:58;;41228:18;;:::i;41259:125::-;41324:9;;;41345:10;;;41342:36;;;41358:18;;:::i;41389:180::-;41456:18;41494:10;;;41506;;;41490:27;;41529:11;;;41526:37;;;41543:18;;:::i;42626:662::-;42680:5;42733:3;42726:4;42718:6;42714:17;42710:27;42700:55;;42751:1;42748;42741:12;42700:55;42787:6;42774:20;42813:4;42837:60;42853:43;42893:2;42853:43;:::i;42837:60::-;42931:15;;;43017:1;43013:10;;;;43001:23;;42997:32;;;42962:12;;;;43041:15;;;43038:35;;;43069:1;43066;43059:12;43038:35;43105:2;43097:6;43093:15;43117:142;43133:6;43128:3;43125:15;43117:142;;;43199:17;;43187:30;;43237:12;;;;43150;;43117:142;;43293:886;43345:5;43398:3;43391:4;43383:6;43379:17;43375:27;43365:55;;43416:1;43413;43406:12;43365:55;43452:6;43439:20;43478:4;43502:60;43518:43;43558:2;43518:43;:::i;43502:60::-;43596:15;;;43682:1;43678:10;;;;43666:23;;43662:32;;;43627:12;;;;43706:15;;;43703:35;;;43734:1;43731;43724:12;43703:35;43770:2;43762:6;43758:15;43782:368;43798:6;43793:3;43790:15;43782:368;;;43884:3;43871:17;43920:18;43907:11;43904:35;43901:125;;;43980:1;44009:2;44005;43998:14;43901:125;44051:56;44103:3;44098:2;44084:11;44076:6;44072:24;44068:33;44051:56;:::i;:::-;44039:69;;-1:-1:-1;44128:12:98;;;;43815;;43782:368;;44184:1303;44440:6;44448;44456;44464;44472;44525:3;44513:9;44504:7;44500:23;44496:33;44493:53;;;44542:1;44539;44532:12;44493:53;44582:9;44569:23;44611:18;44652:2;44644:6;44641:14;44638:34;;;44668:1;44665;44658:12;44638:34;44691:61;44744:7;44735:6;44724:9;44720:22;44691:61;:::i;:::-;44681:71;;44805:2;44794:9;44790:18;44777:32;44761:48;;44834:2;44824:8;44821:16;44818:36;;;44850:1;44847;44840:12;44818:36;44873:61;44926:7;44915:8;44904:9;44900:24;44873:61;:::i;:::-;44863:71;;44987:2;44976:9;44972:18;44959:32;44943:48;;45016:2;45006:8;45003:16;45000:36;;;45032:1;45029;45022:12;45000:36;45055:61;45108:7;45097:8;45086:9;45082:24;45055:61;:::i;:::-;45045:71;;45169:2;45158:9;45154:18;45141:32;45125:48;;45198:2;45188:8;45185:16;45182:36;;;45214:1;45211;45204:12;45182:36;45237:61;45290:7;45279:8;45268:9;45264:24;45237:61;:::i;:::-;45227:71;;45351:3;45340:9;45336:19;45323:33;45307:49;;45381:2;45371:8;45368:16;45365:36;;;45397:1;45394;45387:12;45365:36;;45420:61;45473:7;45462:8;45451:9;45447:24;45420:61;:::i;:::-;45410:71;;;44184:1303;;;;;;;;:::o;46201:1276::-;46645:4;46674:3;46704:6;46693:9;46686:25;46759:42;46751:6;46747:55;46742:2;46731:9;46727:18;46720:83;46822:18;46888:2;46880:6;46876:15;46871:2;46860:9;46856:18;46849:43;46928:2;46923;46912:9;46908:18;46901:30;46954:56;47006:2;46995:9;46991:18;46983:6;46954:56;:::i;:::-;46940:70;;47059:9;47051:6;47047:22;47041:3;47030:9;47026:19;47019:51;47093:44;47130:6;47122;47093:44;:::i;:::-;47079:58;;47186:4;47178:6;47174:17;47168:3;47157:9;47153:19;47146:46;47241:9;47233:6;47229:22;47223:3;47212:9;47208:19;47201:51;47275:33;47301:6;47293;47275:33;:::i;:::-;47345:15;;;47339:3;47324:19;;47317:44;47398:22;;;47392:3;47377:19;;47370:51;47261:47;-1:-1:-1;47438:33:98;47261:47;47456:6;47438:33;:::i;48241:138::-;48320:13;;48342:31;48320:13;48342:31;:::i;48384:136::-;48462:13;;48484:30;48462:13;48484:30;:::i;48525:136::-;48603:13;;48625:30;48603:13;48625:30;:::i;48666:136::-;48744:13;;48766:30;48744:13;48766:30;:::i;48807:136::-;48885:13;;48907:30;48885:13;48907:30;:::i;48948:1173::-;49047:6;49100:3;49088:9;49079:7;49075:23;49071:33;49068:53;;;49117:1;49114;49107:12;49068:53;49143:22;;:::i;:::-;49194:9;49188:16;49181:5;49174:31;49237:49;49282:2;49271:9;49267:18;49237:49;:::i;:::-;49232:2;49225:5;49221:14;49214:73;49319:48;49363:2;49352:9;49348:18;49319:48;:::i;:::-;49314:2;49307:5;49303:14;49296:72;49400:49;49445:2;49434:9;49430:18;49400:49;:::i;:::-;49395:2;49388:5;49384:14;49377:73;49483:49;49527:3;49516:9;49512:19;49483:49;:::i;:::-;49477:3;49470:5;49466:15;49459:74;49566:49;49610:3;49599:9;49595:19;49566:49;:::i;:::-;49560:3;49553:5;49549:15;49542:74;49649:49;49693:3;49682:9;49678:19;49649:49;:::i;:::-;49643:3;49636:5;49632:15;49625:74;49732:49;49776:3;49765:9;49761:19;49732:49;:::i;:::-;49726:3;49719:5;49715:15;49708:74;49801:3;49836:48;49880:2;49869:9;49865:18;49836:48;:::i;:::-;49820:14;;;49813:72;49904:3;49939:48;49968:18;;;49939:48;:::i;:::-;49923:14;;;49916:72;50007:3;50042:48;50071:18;;;50042:48;:::i;50126:174::-;50193:12;50225:10;;;50237;;;50221:27;;50260:11;;;50257:37;;;50274:18;;:::i;50305:875::-;50627:4;50656:3;50686:2;50675:9;50668:21;50712:45;50753:2;50742:9;50738:18;50730:6;50712:45;:::i;:::-;50698:59;;50805:9;50797:6;50793:22;50788:2;50777:9;50773:18;50766:50;50833:33;50859:6;50851;50833:33;:::i;:::-;50885:26;50947:15;;;50942:2;50927:18;;50920:43;50999:15;;50994:2;50979:18;;50972:43;51064:42;51052:55;;51046:3;51031:19;;51024:84;50825:41;-1:-1:-1;51117:57:98;;-1:-1:-1;51169:3:98;51154:19;;51146:6;51117:57;:::i;:::-;50305:875;;;;;;;;;:::o;51185:411::-;51282:6;51290;51343:2;51331:9;51322:7;51318:23;51314:32;51311:52;;;51359:1;51356;51349:12;51311:52;51391:9;51385:16;51430:1;51423:5;51420:12;51410:40;;51446:1;51443;51436:12;51410:40;51519:2;51504:18;;51498:25;51469:5;;-1:-1:-1;51532:32:98;51498:25;51532:32;:::i;52269:492::-;52384:6;52392;52400;52408;52416;52424;52477:3;52465:9;52456:7;52452:23;52448:33;52445:53;;;52494:1;52491;52484:12;52445:53;52523:9;52517:16;52507:26;;52573:2;52562:9;52558:18;52552:25;52542:35;;52617:2;52606:9;52602:18;52596:25;52586:35;;52661:2;52650:9;52646:18;52640:25;52630:35;;52705:3;52694:9;52690:19;52684:26;52674:36;;52750:3;52739:9;52735:19;52729:26;52719:36;;52269:492;;;;;;;;:::o;52766:184::-;52836:6;52889:2;52877:9;52868:7;52864:23;52860:32;52857:52;;;52905:1;52902;52895:12;52857:52;-1:-1:-1;52928:16:98;;52766:184;-1:-1:-1;52766:184:98:o;52955:251::-;53025:6;53078:2;53066:9;53057:7;53053:23;53049:32;53046:52;;;53094:1;53091;53084:12;53046:52;53126:9;53120:16;53145:31;53170:5;53145:31;:::i",
    "linkReferences": {},
    "immutableReferences": {
      "52844": [
        {
          "start": 1967,
          "length": 32
        },
        {
          "start": 3216,
          "length": 32
        },
        {
          "start": 3876,
          "length": 32
        },
        {
          "start": 4154,
          "length": 32
        },
        {
          "start": 7025,
          "length": 32
        },
        {
          "start": 10799,
          "length": 32
        },
        {
          "start": 14712,
          "length": 32
        }
      ]
    }
  },
  "methodIdentifiers": {
    "acceptOwnership()": "79ba5097",
    "deleteCommitment(bytes32)": "85b214cf",
    "estimateCost(uint64,bytes,uint32,uint256)": "d227d245",
    "getAdminFeeJuels()": "f6ea41f6",
    "getConfig()": "c3f909d4",
    "getDONFeeJuels(bytes)": "626f458c",
    "getDONPublicKey()": "d328a91e",
    "getOperationFeeJuels()": "f2f22ef1",
    "getThresholdPublicKey()": "81f1b938",
    "getUsdPerUnitLink()": "7212762f",
    "getWeiPerUnitLink()": "e4ddcea6",
    "latestConfigDetails()": "81ff7048",
    "latestConfigDigestAndEpoch()": "afcb95d7",
    "oracleWithdraw(address,uint96)": "66316d8d",
    "oracleWithdrawAll()": "7d480787",
    "owner()": "8da5cb5b",
    "setConfig(address[],address[],uint8,bytes,uint64,bytes)": "e3d0e712",
    "setDONPublicKey(bytes)": "7f15e166",
    "setThresholdPublicKey(bytes)": "083a5466",
    "startRequest((bytes,bytes32,address,uint96,uint72,uint64,uint64,uint32,uint16,uint64,address))": "a631571e",
    "transferOwnership(address)": "f2fde38b",
    "transmit(bytes32[3],bytes,bytes32[],bytes32[],bytes32)": "b1dc65a4",
    "transmitters()": "81411834",
    "typeAndVersion()": "181f5a77",
    "updateConfig((uint32,uint32,uint32,uint32,uint40,uint16,uint64,uint8,uint224,uint32,uint16,uint16,uint16))": "c074ef21"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint32\",\"name\":\"fulfillmentGasPriceOverEstimationBP\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"feedStalenessSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasOverheadBeforeCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasOverheadAfterCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"minimumEstimateGasPriceWei\",\"type\":\"uint40\"},{\"internalType\":\"uint16\",\"name\":\"maxSupportedRequestDataVersion\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"fallbackUsdPerUnitLink\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"fallbackUsdPerUnitLinkDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint224\",\"name\":\"fallbackNativePerUnitLink\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"requestTimeoutSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"donFeeCentsUsd\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"operationFeeCentsUsd\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"transmitTxSizeBytes\",\"type\":\"uint16\"}],\"internalType\":\"struct FunctionsBillingConfig\",\"name\":\"config\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"linkToNativeFeed\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"linkToUsdFeed\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InconsistentReportData\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCalldata\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"InvalidConfig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"linkWei\",\"type\":\"int256\"}],\"name\":\"InvalidLinkWeiPrice\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubscription\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"usdLink\",\"type\":\"int256\"}],\"name\":\"InvalidUsdLinkPrice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"MustBeSubOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoTransmittersSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCallableByRouterOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PaymentTooLarge\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"ReportInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterMustBeSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedPublicKeyChange\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnauthorizedSender\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedRequestDataVersion\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"name\":\"CommitmentDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"previousConfigBlockNumber\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"configCount\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"signers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"transmitters\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"f\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"onchainConfig\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"offchainConfigVersion\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"offchainConfig\",\"type\":\"bytes\"}],\"name\":\"ConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"fulfillmentGasPriceOverEstimationBP\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"feedStalenessSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasOverheadBeforeCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasOverheadAfterCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"minimumEstimateGasPriceWei\",\"type\":\"uint40\"},{\"internalType\":\"uint16\",\"name\":\"maxSupportedRequestDataVersion\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"fallbackUsdPerUnitLink\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"fallbackUsdPerUnitLinkDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint224\",\"name\":\"fallbackNativePerUnitLink\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"requestTimeoutSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"donFeeCentsUsd\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"operationFeeCentsUsd\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"transmitTxSizeBytes\",\"type\":\"uint16\"}],\"indexed\":false,\"internalType\":\"struct FunctionsBillingConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"ConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"requestingContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"requestInitiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"subscriptionId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subscriptionOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"dataVersion\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"flags\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"callbackGasLimit\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"coordinator\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"estimatedTotalCostJuels\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"client\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint72\",\"name\":\"adminFee\",\"type\":\"uint72\"},{\"internalType\":\"uint72\",\"name\":\"donFee\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"gasOverheadBeforeCallback\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"gasOverheadAfterCallback\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"timeoutTimestamp\",\"type\":\"uint32\"}],\"indexed\":false,\"internalType\":\"struct FunctionsResponse.Commitment\",\"name\":\"commitment\",\"type\":\"tuple\"}],\"name\":\"OracleRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"transmitter\",\"type\":\"address\"}],\"name\":\"OracleResponse\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"juelsPerGas\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"l1FeeShareWei\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint96\",\"name\":\"callbackCostJuels\",\"type\":\"uint96\"},{\"indexed\":false,\"internalType\":\"uint72\",\"name\":\"donFeeJuels\",\"type\":\"uint72\"},{\"indexed\":false,\"internalType\":\"uint72\",\"name\":\"adminFeeJuels\",\"type\":\"uint72\"},{\"indexed\":false,\"internalType\":\"uint72\",\"name\":\"operationFeeJuels\",\"type\":\"uint72\"}],\"name\":\"RequestBilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"epoch\",\"type\":\"uint32\"}],\"name\":\"Transmitted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"name\":\"deleteCommitment\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"subscriptionId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"gasPriceWei\",\"type\":\"uint256\"}],\"name\":\"estimateCost\",\"outputs\":[{\"internalType\":\"uint96\",\"name\":\"\",\"type\":\"uint96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAdminFeeJuels\",\"outputs\":[{\"internalType\":\"uint72\",\"name\":\"\",\"type\":\"uint72\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"fulfillmentGasPriceOverEstimationBP\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"feedStalenessSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasOverheadBeforeCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasOverheadAfterCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"minimumEstimateGasPriceWei\",\"type\":\"uint40\"},{\"internalType\":\"uint16\",\"name\":\"maxSupportedRequestDataVersion\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"fallbackUsdPerUnitLink\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"fallbackUsdPerUnitLinkDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint224\",\"name\":\"fallbackNativePerUnitLink\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"requestTimeoutSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"donFeeCentsUsd\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"operationFeeCentsUsd\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"transmitTxSizeBytes\",\"type\":\"uint16\"}],\"internalType\":\"struct FunctionsBillingConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getDONFeeJuels\",\"outputs\":[{\"internalType\":\"uint72\",\"name\":\"\",\"type\":\"uint72\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getDONPublicKey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOperationFeeJuels\",\"outputs\":[{\"internalType\":\"uint72\",\"name\":\"\",\"type\":\"uint72\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThresholdPublicKey\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getUsdPerUnitLink\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getWeiPerUnitLink\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfigDetails\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"configCount\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"blockNumber\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestConfigDigestAndEpoch\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"scanLogs\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"configDigest\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"epoch\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"amount\",\"type\":\"uint96\"}],\"name\":\"oracleWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracleWithdrawAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_signers\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"_transmitters\",\"type\":\"address[]\"},{\"internalType\":\"uint8\",\"name\":\"_f\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"_onchainConfig\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"_offchainConfigVersion\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_offchainConfig\",\"type\":\"bytes\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"donPublicKey\",\"type\":\"bytes\"}],\"name\":\"setDONPublicKey\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"thresholdPublicKey\",\"type\":\"bytes\"}],\"name\":\"setThresholdPublicKey\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"flags\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"requestingContract\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"availableBalance\",\"type\":\"uint96\"},{\"internalType\":\"uint72\",\"name\":\"adminFee\",\"type\":\"uint72\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"initiatedRequests\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"dataVersion\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"completedRequests\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"subscriptionOwner\",\"type\":\"address\"}],\"internalType\":\"struct FunctionsResponse.RequestMeta\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"startRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"coordinator\",\"type\":\"address\"},{\"internalType\":\"uint96\",\"name\":\"estimatedTotalCostJuels\",\"type\":\"uint96\"},{\"internalType\":\"address\",\"name\":\"client\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"subscriptionId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint72\",\"name\":\"adminFee\",\"type\":\"uint72\"},{\"internalType\":\"uint72\",\"name\":\"donFee\",\"type\":\"uint72\"},{\"internalType\":\"uint40\",\"name\":\"gasOverheadBeforeCallback\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"gasOverheadAfterCallback\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"timeoutTimestamp\",\"type\":\"uint32\"}],\"internalType\":\"struct FunctionsResponse.Commitment\",\"name\":\"commitment\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[3]\",\"name\":\"reportContext\",\"type\":\"bytes32[3]\"},{\"internalType\":\"bytes\",\"name\":\"report\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"rs\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"ss\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32\",\"name\":\"rawVs\",\"type\":\"bytes32\"}],\"name\":\"transmit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transmitters\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"typeAndVersion\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"fulfillmentGasPriceOverEstimationBP\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"feedStalenessSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasOverheadBeforeCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasOverheadAfterCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"minimumEstimateGasPriceWei\",\"type\":\"uint40\"},{\"internalType\":\"uint16\",\"name\":\"maxSupportedRequestDataVersion\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"fallbackUsdPerUnitLink\",\"type\":\"uint64\"},{\"internalType\":\"uint8\",\"name\":\"fallbackUsdPerUnitLinkDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint224\",\"name\":\"fallbackNativePerUnitLink\",\"type\":\"uint224\"},{\"internalType\":\"uint32\",\"name\":\"requestTimeoutSeconds\",\"type\":\"uint32\"},{\"internalType\":\"uint16\",\"name\":\"donFeeCentsUsd\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"operationFeeCentsUsd\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"transmitTxSizeBytes\",\"type\":\"uint16\"}],\"internalType\":\"struct FunctionsBillingConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"updateConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"ConfigSet(uint32,bytes32,uint64,address[],address[],uint8,bytes,uint64,bytes)\":{\"params\":{\"configCount\":\"ordinal number of this config setting among all config settings over the life of this contract\",\"configDigest\":\"configDigest of this configuration\",\"f\":\"maximum number of faulty/dishonest oracles the protocol can tolerate while still working correctly\",\"offchainConfig\":\"serialized configuration used by the oracles exclusively and only passed through the contract\",\"offchainConfigVersion\":\"version of the serialization format used for \\\"offchainConfig\\\" parameter\",\"onchainConfig\":\"serialized configuration used by the contract (and possibly oracles)\",\"previousConfigBlockNumber\":\"block in which the previous config was set, to simplify historic analysis\",\"signers\":\"ith element is address ith oracle uses to sign a report\",\"transmitters\":\"ith element is address ith oracle uses to transmit a report via the transmit method\"}}},\"kind\":\"dev\",\"methods\":{\"deleteCommitment(bytes32)\":{\"details\":\"Only callable by the RouterUsed by FunctionsRouter.sol during timeout of a request\",\"params\":{\"requestId\":\"- The request ID to remove\"}},\"estimateCost(uint64,bytes,uint32,uint256)\":{\"params\":{\"\":\"- gasPriceWei The blockchain's gas price to estimate with\"},\"returns\":{\"_0\":\"- billedCost Cost in Juels (1e18) of LINK\"}},\"getAdminFeeJuels()\":{\"returns\":{\"_0\":\"fee - Cost in Juels (1e18) of LINK\"}},\"getConfig()\":{\"returns\":{\"_0\":\"config\"}},\"getDONFeeJuels(bytes)\":{\"params\":{\"requestCBOR\":\"- CBOR encoded Chainlink Functions request data, use FunctionsRequest library to encode a request\"},\"returns\":{\"_0\":\"fee - Cost in Juels (1e18) of LINK\"}},\"getDONPublicKey()\":{\"details\":\"All nodes on the DON have the corresponding private key needed to decrypt the secrets encrypted with the public key\",\"returns\":{\"_0\":\"publicKey the DON's public key\"}},\"getOperationFeeJuels()\":{\"returns\":{\"_0\":\"fee - Cost in Juels (1e18) of LINK\"}},\"getThresholdPublicKey()\":{\"details\":\"All nodes on the DON have separate key shares of the threshold decryption key and nodes must participate in a threshold decryption OCR round to decrypt secrets\",\"returns\":{\"_0\":\"thresholdPublicKey the DON's threshold encryption public key\"}},\"getUsdPerUnitLink()\":{\"returns\":{\"_0\":\"weiPerUnitLink - The amount of USD that one LINK is worth\",\"_1\":\"decimals - The number of decimals that should be represented in the price feed's response\"}},\"getWeiPerUnitLink()\":{\"returns\":{\"_0\":\"weiPerUnitLink - The amount of WEI in one LINK\"}},\"latestConfigDetails()\":{\"returns\":{\"blockNumber\":\"block at which this config was set\",\"configCount\":\"ordinal number of current config, out of all configs applied to this contract so far\",\"configDigest\":\"domain-separation tag for current config (see __configDigestFromConfigData)\"}},\"latestConfigDigestAndEpoch()\":{\"returns\":{\"configDigest\":\"configDigest\",\"epoch\":\"epoch\",\"scanLogs\":\"indicates whether to rely on the configDigest and epoch returned or whether to scan logs for the Transmitted event instead.\"}},\"oracleWithdraw(address,uint96)\":{\"params\":{\"amount\":\"amount to withdraw\",\"recipient\":\"where to send the funds\"}},\"oracleWithdrawAll()\":{\"details\":\"Only callable by the Coordinator owner\"},\"setConfig(address[],address[],uint8,bytes,uint64,bytes)\":{\"params\":{\"_f\":\"number of faulty oracles the system can tolerate\",\"_offchainConfig\":\"encoded off-chain oracle configuration\",\"_offchainConfigVersion\":\"version number for offchainEncoding schema\",\"_onchainConfig\":\"encoded on-chain contract configuration\",\"_signers\":\"addresses with which oracles sign the reports\",\"_transmitters\":\"addresses oracles use to transmit the reports\"}},\"setDONPublicKey(bytes)\":{\"details\":\"Used to rotate the key\",\"params\":{\"donPublicKey\":\"The new public key\"}},\"setThresholdPublicKey(bytes)\":{\"details\":\"Used to rotate the key\",\"params\":{\"thresholdPublicKey\":\"The new public key\"}},\"startRequest((bytes,bytes32,address,uint96,uint72,uint64,uint64,uint32,uint16,uint64,address))\":{\"details\":\"see the struct for field descriptions\",\"params\":{\"request\":\"The request metadata\"},\"returns\":{\"commitment\":\"- The parameters of the request that must be held consistent at response time\"}},\"transmit(bytes32[3],bytes,bytes32[],bytes32[],bytes32)\":{\"params\":{\"rawVs\":\"ith element is the the V component of the ith signature\",\"report\":\"serialized report, which the signatures are signing.\",\"rs\":\"ith element is the R components of the ith signature on report. Must have at most maxNumOracles entries\",\"ss\":\"ith element is the S components of the ith signature on report. Must have at most maxNumOracles entries\"}},\"transmitters()\":{\"details\":\"The list will match the order used to specify the transmitter during setConfig\",\"returns\":{\"_0\":\"list of addresses permitted to transmit reports to this contract\"}},\"updateConfig((uint32,uint32,uint32,uint32,uint40,uint16,uint64,uint8,uint224,uint32,uint16,uint16,uint16))\":{\"params\":{\"config\":\"- See the contents of the FunctionsBillingConfig struct in IFunctionsBilling.sol for more information\"}}},\"title\":\"Functions Coordinator contract\",\"version\":1},\"userdoc\":{\"events\":{\"ConfigSet(uint32,bytes32,uint64,address[],address[],uint8,bytes,uint64,bytes)\":{\"notice\":\"triggers a new run of the offchain reporting protocol\"},\"Transmitted(bytes32,uint32)\":{\"notice\":\"optionally emited to indicate the latest configDigest and epoch for which a report was successfully transmited. Alternatively, the contract may use latestConfigDigestAndEpoch with scanLogs set to false.\"}},\"kind\":\"user\",\"methods\":{\"acceptOwnership()\":{\"notice\":\"Allows an ownership transfer to be completed by the recipient.\"},\"deleteCommitment(bytes32)\":{\"notice\":\"Remove a request commitment that the Router has determined to be stale\"},\"estimateCost(uint64,bytes,uint32,uint256)\":{\"notice\":\"Estimate the total cost that will be charged to a subscription to make a request: transmitter gas re-reimbursement, plus DON fee, plus Registry fee\"},\"getAdminFeeJuels()\":{\"notice\":\"Determine the fee that will be paid to the Router owner for operating the network\"},\"getConfig()\":{\"notice\":\"Gets the Chainlink Coordinator's billing configuration\"},\"getDONFeeJuels(bytes)\":{\"notice\":\"Determine the fee that will be split between Node Operators for servicing a request\"},\"getDONPublicKey()\":{\"notice\":\"Returns the DON's secp256k1 public key that is used to encrypt secrets\"},\"getOperationFeeJuels()\":{\"notice\":\"Determine the fee that will be paid to the Coordinator owner for operating the network\"},\"getThresholdPublicKey()\":{\"notice\":\"Returns the DON's threshold encryption public key used to encrypt secrets\"},\"getUsdPerUnitLink()\":{\"notice\":\"Return the current conversion from LINK to USD from the configured Chainlink data feed\"},\"getWeiPerUnitLink()\":{\"notice\":\"Return the current conversion from WEI of ETH to LINK from the configured Chainlink data feed\"},\"latestConfigDetails()\":{\"notice\":\"information about current offchain reporting protocol configuration\"},\"latestConfigDigestAndEpoch()\":{\"notice\":\"optionally returns the latest configDigest and epoch for which a report was successfully transmitted. Alternatively, the contract may return scanLogs set to true and use Transmitted events to provide this information to offchain watchers.\"},\"oracleWithdraw(address,uint96)\":{\"notice\":\"Oracle withdraw LINK earned through fulfilling requestsIf amount is 0 the full balance will be withdrawn\"},\"oracleWithdrawAll()\":{\"notice\":\"Withdraw all LINK earned by Oracles through fulfilling requests\"},\"owner()\":{\"notice\":\"Get the current owner\"},\"setConfig(address[],address[],uint8,bytes,uint64,bytes)\":{\"notice\":\"sets offchain reporting protocol configuration incl. participating oracles\"},\"setDONPublicKey(bytes)\":{\"notice\":\"Sets DON's secp256k1 public key used to encrypt secrets\"},\"setThresholdPublicKey(bytes)\":{\"notice\":\"Sets the DON's threshold encryption public key used to encrypt secrets\"},\"startRequest((bytes,bytes32,address,uint96,uint72,uint64,uint64,uint32,uint16,uint64,address))\":{\"notice\":\"Receives a request to be emitted to the DON for processing\"},\"transferOwnership(address)\":{\"notice\":\"Allows an owner to begin transferring ownership to a new address.\"},\"transmit(bytes32[3],bytes,bytes32[],bytes32[],bytes32)\":{\"notice\":\"transmit is called to post a new report to the contract\"},\"updateConfig((uint32,uint32,uint32,uint32,uint40,uint16,uint64,uint8,uint224,uint32,uint16,uint16,uint16))\":{\"notice\":\"Sets the Chainlink Coordinator's billing configuration\"}},\"notice\":\"Contract that nodes of a Decentralized Oracle Network (DON) interact with\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol\":\"FunctionsCoordinator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[\":@eth-optimism/=node_modules/@eth-optimism/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@scroll-tech/=node_modules/@scroll-tech/\",\":ds-test/=foundry-lib/forge-std/lib/ds-test/src/\",\":forge-std/=foundry-lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\"]},\"sources\":{\"node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed\",\"dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"src/v0.8/functions/dev/v1_X/FunctionsBilling.sol\":{\"keccak256\":\"0x2389aca7a4610a6c44c1c2e6f91df815e9a6a75eb3822a579965343b6c08d769\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08852f396782a639db3c18bf5a381b8afe75a364696c96db99174177e11d1ac4\",\"dweb:/ipfs/QmedCfgvitg7nNn1Sq8UMFYmWwfaaJYhRU4cQJkdz876tB\"]},\"src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol\":{\"keccak256\":\"0xf1bed819a9778765bb41439ffbe242ce8fc46ce0c970a3262f94c9bb8136a9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29287de60e45f3219e4675d7be4b818699954cea25fb44595204ff2a2d99f141\",\"dweb:/ipfs/QmVx3UkNr5Cy8zQodz2X6YAwDkcqLfkqdeXz4u1ouG8z6U\"]},\"src/v0.8/functions/dev/v1_X/Routable.sol\":{\"keccak256\":\"0xdecc7de266d79392b8a9b61c5ecf4754b18d6200fa1fd7c80e7ae5a2724983a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3eeafc782d3835b0b1edde3caf2c1e339c5bd2fe364fad4c24ac4d3e466d0712\",\"dweb:/ipfs/QmSLBkEJQo9H2nF9K2npopXjMQ12ShUFrSKeUHtYFYxXXq\"]},\"src/v0.8/functions/dev/v1_X/interfaces/IFunctionsBilling.sol\":{\"keccak256\":\"0xe44a8b09da18eacb466071f8a5a85f34b2bb6c87c3da3005a8c7a548dae55b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d842464f57339d68bbe2b0ac96a906eb1012f34f5ba9a6e26478bdbfdd923dd4\",\"dweb:/ipfs/QmWkNuRRpXovZBuPxMUXkQ4e6GsLtNYgov2xG7NaTYZmD9\"]},\"src/v0.8/functions/dev/v1_X/interfaces/IFunctionsCoordinator.sol\":{\"keccak256\":\"0x5e4f7c68b61190c2e32d50d03eeba942ab9beda14bcacddfcd7cba558dd62f8f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0d10bce704a1b3586692807f3ae6f0c9854c11e9f1c6f68832ddb555e0057ee\",\"dweb:/ipfs/QmUFusvF7B5qGodpVdD2BRHXYvLDNjzLn3E359Vx6AxRUB\"]},\"src/v0.8/functions/dev/v1_X/interfaces/IFunctionsRouter.sol\":{\"keccak256\":\"0x44db41e8ff90c2828ca0ada125abc4b411921a86514a4a047fd9fd43ba9d7e08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4c3228edc2cff7c55301d3764e54cd7ada6af81ef9aadf8bc116a2c982523d6\",\"dweb:/ipfs/QmXjJQgCu2gvX6QQJ9GC1gEoy3vrmpf1PiRPLqWqKddwRe\"]},\"src/v0.8/functions/dev/v1_X/interfaces/IFunctionsSubscriptions.sol\":{\"keccak256\":\"0xab83613f1bb1cbdbf15fdbb6382259e2b2678bfe5a3a6dab976cdf2337f1f94e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0775cd55699e89e5f3df452de2c2273e00e51d79feb2b0c2d36e856cfeb1bd4b\",\"dweb:/ipfs/QmQDoC1hJhYYEg8SZouhkZ5BgC7mhqn4Ymgo5tvV3iYUgg\"]},\"src/v0.8/functions/dev/v1_X/interfaces/IOwnableFunctionsRouter.sol\":{\"keccak256\":\"0xa0927068c6a01b468231d1973e73d4d5a56ac42f9ce277fc0406801f1d77f62a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07d5722d43b75e131748970844105f5eefef1dff28a36dde845327b30a301b00\",\"dweb:/ipfs/QmP56SJ9xx39R5qXsRzUaKz2RABcBrLekmXFZ6UpfSkvMs\"]},\"src/v0.8/functions/dev/v1_X/libraries/ChainSpecificUtil.sol\":{\"keccak256\":\"0x28d4ae194d646060ba66ff84163a5301510f1f701dcfcb1cb3fca2ef1d439f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fc207d9b0d43d5d4605b814fa1c79c93e433053af1d49a78c7fa0c8f7477eef\",\"dweb:/ipfs/QmTnXwxzvmc6E1r16xMKNQ8qtKpYJksKmKV8vCwzRYPhck\"]},\"src/v0.8/functions/dev/v1_X/libraries/FunctionsResponse.sol\":{\"keccak256\":\"0xc72eb037effef32146f7cd4086af00f44f28c8649d891e5e404fec5fda7e802b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eeeaeadc797b7656fd30201ab8c8ed24fe8fb3f83a480142bb55c7c7babb2b4b\",\"dweb:/ipfs/Qmdb55a1iWJetog7qUpZ6FHKGSA8g3Vu68LGsXfqfec9k5\"]},\"src/v0.8/functions/dev/v1_X/ocr/OCR2Abstract.sol\":{\"keccak256\":\"0xca4fad93bf138e906477f42a937870251703776eef6d6b8d022284f5f47395c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25f02c6045770d65dee888948bd22ba21d9f5b93585cc71716d65f81924f2ce9\",\"dweb:/ipfs/Qmcs14BmagsvawWiBJ65oLy8HmzDULB5sS2QfxWYGRbKkE\"]},\"src/v0.8/functions/dev/v1_X/ocr/OCR2Base.sol\":{\"keccak256\":\"0x42a21916b77df3cdef9041afbcec178a3ef4200e30767c83ad50e2299c404fc7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e45bc8b40fcf438d2996850bf6467e5b3ed16b61764037d7e05ad4819994272\",\"dweb:/ipfs/QmSi4W3pzEiQRxFSryr6avaNb8chjVMxDefXt3vRYxzd5a\"]},\"src/v0.8/shared/access/ConfirmedOwner.sol\":{\"keccak256\":\"0xdcb0e9135ddbe71ee27ba99fa06656960c66c964cf2ecb29696da1c1427d9861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f914a1b638300e82d8f5a020a4195235599afebab4ef1e10c6992f3c90e7df3e\",\"dweb:/ipfs/Qmf2MbuVB16qbCGii3U5cjcBvVjAHHYzKp9voJa2eDch9B\"]},\"src/v0.8/shared/access/ConfirmedOwnerWithProposal.sol\":{\"keccak256\":\"0x2422a055657a87e98be61f8f31abb1824ec50fd0f73949f4e3c6ac877efb6da8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fde3b9ac3a4c42ea43e2f92b037d32ab20e30818471c6e20d2590147a6c2958a\",\"dweb:/ipfs/QmQ2ohQP4GnhPUsiWCvCfb1dsoGYDdxSap3dxtnYTV4rmT\"]},\"src/v0.8/shared/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9\",\"dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS\"]},\"src/v0.8/shared/interfaces/IOwnable.sol\":{\"keccak256\":\"0x885de72b7b4e4f1bf8ba817a3f2bcc37fd9022d342c4ce76782151c30122d767\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17c636625a5d29a140612db496d2cca9fb4b48c673adb0fd7b3957d287e75921\",\"dweb:/ipfs/QmNoBX8TY424bdQWyQC7y3kpKfgxyWxhLw7KEhhEEoBN9q\"]},\"src/v0.8/shared/interfaces/ITypeAndVersion.sol\":{\"keccak256\":\"0xf5827cb463c01d055021684d04f9186391c2d9ac850e0d0819f76140e4fc84ed\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19c7bae07330e6d7904a0a21cf0ab0067ef096b66c1653a2e012801a931c5b9\",\"dweb:/ipfs/QmckpvSuLx8UL8zfVzAtN6ZRxyXHUSVqqz2JwYZ2jrK58h\"]},\"src/v0.8/vendor/@arbitrum/nitro-contracts/src/precompiles/ArbGasInfo.sol\":{\"keccak256\":\"0x7c51d93494afd02b5336e88d8738341758340f2befe698b4458a916905691bd6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://5194d3cfc88dbe508dacfcaa51597a7cb981277a292c765d97c435845a7270eb\",\"dweb:/ipfs/QmVHkwiNGPaUhdnX5MycTzRTRzhb1bdG1E4xJCB5bhhwRM\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/L1/ResourceMetering.sol\":{\"keccak256\":\"0xfdf862192cfee6edc4a260849f7b76087cb96ca89f5ff45fd4d4497159404e68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b92fab7d553b013cf3c2c579995c5f4a5fa4978dc1822a0c70a3d4dead63b951\",\"dweb:/ipfs/QmYayiRThprk2bEB78LQHtJAkZ7YMvSRopaML59HD5225H\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/L2/GasPriceOracle.sol\":{\"keccak256\":\"0xe8cc893020740bb7ecd9d4b1a637b6f0e51bc445c04436713c120037691cb520\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0a493181719e53cf5f2ac1a843f12054dddd1ee97b03a0b20edcc6d32e56aa77\",\"dweb:/ipfs/QmPtySNMv9z6RCQRY8yBGvHpktpmtXuaQjo5zTsX3vPfgo\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/L2/L1Block.sol\":{\"keccak256\":\"0xe17f59def4ca0228e5b3f297f8cc14e8980ee3e9a4d7716ebc0f2962e637f97c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4140a975fd24ef5aa0d670e6e5116c3cb325c722ab9be71a28454774612ba2c\",\"dweb:/ipfs/QmNwdH1Rs8twHJZBae9Kxdj1eriA3fpfWQY6L9bHpcWmao\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/Arithmetic.sol\":{\"keccak256\":\"0xe24acd365927846fa57a2c8c61ce41e29da398ce4755193ec9d35189db5fe799\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://160da038a2f0f34dff6a55eabe521f4b6c929b49cbd444b1b97fd982e0d6a735\",\"dweb:/ipfs/QmQM9EFq1u8HJ8FDgHZYuRQqzdorBmpxfGSH7FPYjAhkSg\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/Burn.sol\":{\"keccak256\":\"0x4eed030458745f1aa3b09025e86093d1f3ee08d5a13b20a9c6e59cd756d666b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddb0032eedef19dc58e5fde18e1fc7e0a28f82c4bf2c7c1bc91f57e857fcd73c\",\"dweb:/ipfs/QmeNVrKgZQ3UPMZ72M2SpFiwKANY7hAeynjkwdoiNepm8S\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/Constants.sol\":{\"keccak256\":\"0x4c939c9826aaf10e5c166c937646a63a3e76a0066aa6e9fe8f6c1b90bc3e5c36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c9f0cf066c36fe2590f30673005769034600c14ebdc5925570b0da85302e470\",\"dweb:/ipfs/QmP6mEhersQQDb9pRQyyc1WcnPEfc3vtSS7TkFyZNZufQk\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/GasPayingToken.sol\":{\"keccak256\":\"0x921d5ccfcf425acd37bc0b774b3be686341c7ad7746b7e92b2091e6b0d3c9f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a677c0690ba388dbc813d1486b82e559dc34a6859f9112f98d19ba4171c958f\",\"dweb:/ipfs/QmYPsVmPMSpN9dJimkNWLab8TDVbJtvco1cjecvviAwFgy\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/L1BlockErrors.sol\":{\"keccak256\":\"0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594\",\"dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/Predeploys.sol\":{\"keccak256\":\"0x5326a77eb779d47bc3b221667e932fa91a6cc264c5c193ae6528871263fcc4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ab3ed11a945f4d70ce1741e0ccacbaad178d04cc85e4dd00a47bf45b5063a60\",\"dweb:/ipfs/QmTtDcfL6yK6dBom2HiRELN1MA5xa7YgWEqzin7EFJ9yYH\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/Storage.sol\":{\"keccak256\":\"0x6b6bfc1b508607b3c54fc29f72729d88b734c79d8b67bc27e436f70eee20dabf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4e53f8c0c767a47ab06a432400cc18f9a0a4d7d18dc0dcd81e1971f9e29f327\",\"dweb:/ipfs/QmcFBCZfMMqduZazRm3Kh4DJkfjd5bNQmzbETZta8M4fqQ\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/universal/ISemver.sol\":{\"keccak256\":\"0x8debf818a0e7f49313d76b22ed9ff03c459553969bc257887963494e1b1fadf6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f033090fc07df64e15bf62bed3bfb03ded05cd7498793c378b8c6342a9a4c794\",\"dweb:/ipfs/QmRCEdKFeNiepYwuZc3pqwQ2ufSiMZD7rzDwS9Du1pSQHz\"]},\"src/v0.8/vendor/@rari-capital/solmate/src/utils/FixedPointMathLib.sol\":{\"keccak256\":\"0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c\",\"dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8\"]},\"src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x6c12a4027a4e6c43d6fe4f6434f7bce48567c96760745527ad72791743403f6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1615ac19b83ddd81118a3a3ba9b9a54ee130206579c91d44bf5aeb461b13aa13\",\"dweb:/ipfs/QmPbB5dbh2Gt4LZAQZmqpeXTL1tQai5wTUgLaLbQyvd7cS\"]},\"src/v0.8/vendor/solady/src/utils/LibString.sol\":{\"keccak256\":\"0x0ccf0277cd6d0ed4965063ef1e41eb5b09b6e334e13999e0a39cf1155a73d585\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b0a0ca42856020e63246b840a6121f200733ab16e247da4fd7fcb716d234bc20\",\"dweb:/ipfs/QmXpBNtiJrNYmcwfejZzT7zscgsjRRQKb73t2UFCAo1aZH\"]},\"src/v0.8/vendor/solady/src/utils/LibZip.sol\":{\"keccak256\":\"0x6998487ca189f50322b6518c8b9906641a3f24ccdd36c76d234ed59a382e4f9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d1095dc09387c648a6aa6e0e0043e305bec708504f66f07365a9fc32dae29c9d\",\"dweb:/ipfs/QmPR1TASKvyWNvxn4aCe15aLgmm4GFzzwPHhD2ACvtNQTE\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.19+commit.7dd6d404"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "router",
              "type": "address"
            },
            {
              "internalType": "struct FunctionsBillingConfig",
              "name": "config",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint32",
                  "name": "fulfillmentGasPriceOverEstimationBP",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "feedStalenessSeconds",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "gasOverheadBeforeCallback",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "gasOverheadAfterCallback",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "minimumEstimateGasPriceWei",
                  "type": "uint40"
                },
                {
                  "internalType": "uint16",
                  "name": "maxSupportedRequestDataVersion",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "fallbackUsdPerUnitLink",
                  "type": "uint64"
                },
                {
                  "internalType": "uint8",
                  "name": "fallbackUsdPerUnitLinkDecimals",
                  "type": "uint8"
                },
                {
                  "internalType": "uint224",
                  "name": "fallbackNativePerUnitLink",
                  "type": "uint224"
                },
                {
                  "internalType": "uint32",
                  "name": "requestTimeoutSeconds",
                  "type": "uint32"
                },
                {
                  "internalType": "uint16",
                  "name": "donFeeCentsUsd",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "operationFeeCentsUsd",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "transmitTxSizeBytes",
                  "type": "uint16"
                }
              ]
            },
            {
              "internalType": "address",
              "name": "linkToNativeFeed",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "linkToUsdFeed",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "EmptyPublicKey"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "InconsistentReportData"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "InsufficientBalance"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "InvalidCalldata"
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "message",
              "type": "string"
            }
          ],
          "type": "error",
          "name": "InvalidConfig"
        },
        {
          "inputs": [
            {
              "internalType": "int256",
              "name": "linkWei",
              "type": "int256"
            }
          ],
          "type": "error",
          "name": "InvalidLinkWeiPrice"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "InvalidSubscription"
        },
        {
          "inputs": [
            {
              "internalType": "int256",
              "name": "usdLink",
              "type": "int256"
            }
          ],
          "type": "error",
          "name": "InvalidUsdLinkPrice"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "owner",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "MustBeSubOwner"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "NoTransmittersSet"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "OnlyCallableByRouter"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "OnlyCallableByRouterOwner"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PaymentTooLarge"
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "message",
              "type": "string"
            }
          ],
          "type": "error",
          "name": "ReportInvalid"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "RouterMustBeSet"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "UnauthorizedPublicKeyChange"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "UnauthorizedSender"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "UnsupportedRequestDataVersion"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "CommitmentDeleted",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint32",
              "name": "previousConfigBlockNumber",
              "type": "uint32",
              "indexed": false
            },
            {
              "internalType": "bytes32",
              "name": "configDigest",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "uint64",
              "name": "configCount",
              "type": "uint64",
              "indexed": false
            },
            {
              "internalType": "address[]",
              "name": "signers",
              "type": "address[]",
              "indexed": false
            },
            {
              "internalType": "address[]",
              "name": "transmitters",
              "type": "address[]",
              "indexed": false
            },
            {
              "internalType": "uint8",
              "name": "f",
              "type": "uint8",
              "indexed": false
            },
            {
              "internalType": "bytes",
              "name": "onchainConfig",
              "type": "bytes",
              "indexed": false
            },
            {
              "internalType": "uint64",
              "name": "offchainConfigVersion",
              "type": "uint64",
              "indexed": false
            },
            {
              "internalType": "bytes",
              "name": "offchainConfig",
              "type": "bytes",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ConfigSet",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "struct FunctionsBillingConfig",
              "name": "config",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint32",
                  "name": "fulfillmentGasPriceOverEstimationBP",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "feedStalenessSeconds",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "gasOverheadBeforeCallback",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "gasOverheadAfterCallback",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "minimumEstimateGasPriceWei",
                  "type": "uint40"
                },
                {
                  "internalType": "uint16",
                  "name": "maxSupportedRequestDataVersion",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "fallbackUsdPerUnitLink",
                  "type": "uint64"
                },
                {
                  "internalType": "uint8",
                  "name": "fallbackUsdPerUnitLinkDecimals",
                  "type": "uint8"
                },
                {
                  "internalType": "uint224",
                  "name": "fallbackNativePerUnitLink",
                  "type": "uint224"
                },
                {
                  "internalType": "uint32",
                  "name": "requestTimeoutSeconds",
                  "type": "uint32"
                },
                {
                  "internalType": "uint16",
                  "name": "donFeeCentsUsd",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "operationFeeCentsUsd",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "transmitTxSizeBytes",
                  "type": "uint16"
                }
              ],
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ConfigUpdated",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "requestingContract",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "requestInitiator",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint64",
              "name": "subscriptionId",
              "type": "uint64",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "subscriptionOwner",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes",
              "indexed": false
            },
            {
              "internalType": "uint16",
              "name": "dataVersion",
              "type": "uint16",
              "indexed": false
            },
            {
              "internalType": "bytes32",
              "name": "flags",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "uint64",
              "name": "callbackGasLimit",
              "type": "uint64",
              "indexed": false
            },
            {
              "internalType": "struct FunctionsResponse.Commitment",
              "name": "commitment",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "coordinator",
                  "type": "address"
                },
                {
                  "internalType": "uint96",
                  "name": "estimatedTotalCostJuels",
                  "type": "uint96"
                },
                {
                  "internalType": "address",
                  "name": "client",
                  "type": "address"
                },
                {
                  "internalType": "uint64",
                  "name": "subscriptionId",
                  "type": "uint64"
                },
                {
                  "internalType": "uint32",
                  "name": "callbackGasLimit",
                  "type": "uint32"
                },
                {
                  "internalType": "uint72",
                  "name": "adminFee",
                  "type": "uint72"
                },
                {
                  "internalType": "uint72",
                  "name": "donFee",
                  "type": "uint72"
                },
                {
                  "internalType": "uint40",
                  "name": "gasOverheadBeforeCallback",
                  "type": "uint40"
                },
                {
                  "internalType": "uint40",
                  "name": "gasOverheadAfterCallback",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "timeoutTimestamp",
                  "type": "uint32"
                }
              ],
              "indexed": false
            }
          ],
          "type": "event",
          "name": "OracleRequest",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "transmitter",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "OracleResponse",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "from",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "OwnershipTransferRequested",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "from",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "to",
              "type": "address",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "OwnershipTransferred",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "uint96",
              "name": "juelsPerGas",
              "type": "uint96",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "l1FeeShareWei",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint96",
              "name": "callbackCostJuels",
              "type": "uint96",
              "indexed": false
            },
            {
              "internalType": "uint72",
              "name": "donFeeJuels",
              "type": "uint72",
              "indexed": false
            },
            {
              "internalType": "uint72",
              "name": "adminFeeJuels",
              "type": "uint72",
              "indexed": false
            },
            {
              "internalType": "uint72",
              "name": "operationFeeJuels",
              "type": "uint72",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "RequestBilled",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "configDigest",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "uint32",
              "name": "epoch",
              "type": "uint32",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Transmitted",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "acceptOwnership"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "deleteCommitment"
        },
        {
          "inputs": [
            {
              "internalType": "uint64",
              "name": "subscriptionId",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint32",
              "name": "callbackGasLimit",
              "type": "uint32"
            },
            {
              "internalType": "uint256",
              "name": "gasPriceWei",
              "type": "uint256"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "estimateCost",
          "outputs": [
            {
              "internalType": "uint96",
              "name": "",
              "type": "uint96"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "getAdminFeeJuels",
          "outputs": [
            {
              "internalType": "uint72",
              "name": "",
              "type": "uint72"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "getConfig",
          "outputs": [
            {
              "internalType": "struct FunctionsBillingConfig",
              "name": "",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint32",
                  "name": "fulfillmentGasPriceOverEstimationBP",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "feedStalenessSeconds",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "gasOverheadBeforeCallback",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "gasOverheadAfterCallback",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "minimumEstimateGasPriceWei",
                  "type": "uint40"
                },
                {
                  "internalType": "uint16",
                  "name": "maxSupportedRequestDataVersion",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "fallbackUsdPerUnitLink",
                  "type": "uint64"
                },
                {
                  "internalType": "uint8",
                  "name": "fallbackUsdPerUnitLinkDecimals",
                  "type": "uint8"
                },
                {
                  "internalType": "uint224",
                  "name": "fallbackNativePerUnitLink",
                  "type": "uint224"
                },
                {
                  "internalType": "uint32",
                  "name": "requestTimeoutSeconds",
                  "type": "uint32"
                },
                {
                  "internalType": "uint16",
                  "name": "donFeeCentsUsd",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "operationFeeCentsUsd",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "transmitTxSizeBytes",
                  "type": "uint16"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getDONFeeJuels",
          "outputs": [
            {
              "internalType": "uint72",
              "name": "",
              "type": "uint72"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "getDONPublicKey",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "getOperationFeeJuels",
          "outputs": [
            {
              "internalType": "uint72",
              "name": "",
              "type": "uint72"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "getThresholdPublicKey",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "getUsdPerUnitLink",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            },
            {
              "internalType": "uint8",
              "name": "",
              "type": "uint8"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "getWeiPerUnitLink",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "latestConfigDetails",
          "outputs": [
            {
              "internalType": "uint32",
              "name": "configCount",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "blockNumber",
              "type": "uint32"
            },
            {
              "internalType": "bytes32",
              "name": "configDigest",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "latestConfigDigestAndEpoch",
          "outputs": [
            {
              "internalType": "bool",
              "name": "scanLogs",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "configDigest",
              "type": "bytes32"
            },
            {
              "internalType": "uint32",
              "name": "epoch",
              "type": "uint32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "recipient",
              "type": "address"
            },
            {
              "internalType": "uint96",
              "name": "amount",
              "type": "uint96"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "oracleWithdraw"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "oracleWithdrawAll"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "owner",
          "outputs": [
            {
              "internalType": "address",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address[]",
              "name": "_signers",
              "type": "address[]"
            },
            {
              "internalType": "address[]",
              "name": "_transmitters",
              "type": "address[]"
            },
            {
              "internalType": "uint8",
              "name": "_f",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "_onchainConfig",
              "type": "bytes"
            },
            {
              "internalType": "uint64",
              "name": "_offchainConfigVersion",
              "type": "uint64"
            },
            {
              "internalType": "bytes",
              "name": "_offchainConfig",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setConfig"
        },
        {
          "inputs": [
            {
              "internalType": "bytes",
              "name": "donPublicKey",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setDONPublicKey"
        },
        {
          "inputs": [
            {
              "internalType": "bytes",
              "name": "thresholdPublicKey",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setThresholdPublicKey"
        },
        {
          "inputs": [
            {
              "internalType": "struct FunctionsResponse.RequestMeta",
              "name": "request",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "bytes32",
                  "name": "flags",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "requestingContract",
                  "type": "address"
                },
                {
                  "internalType": "uint96",
                  "name": "availableBalance",
                  "type": "uint96"
                },
                {
                  "internalType": "uint72",
                  "name": "adminFee",
                  "type": "uint72"
                },
                {
                  "internalType": "uint64",
                  "name": "subscriptionId",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "initiatedRequests",
                  "type": "uint64"
                },
                {
                  "internalType": "uint32",
                  "name": "callbackGasLimit",
                  "type": "uint32"
                },
                {
                  "internalType": "uint16",
                  "name": "dataVersion",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "completedRequests",
                  "type": "uint64"
                },
                {
                  "internalType": "address",
                  "name": "subscriptionOwner",
                  "type": "address"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "startRequest",
          "outputs": [
            {
              "internalType": "struct FunctionsResponse.Commitment",
              "name": "commitment",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "coordinator",
                  "type": "address"
                },
                {
                  "internalType": "uint96",
                  "name": "estimatedTotalCostJuels",
                  "type": "uint96"
                },
                {
                  "internalType": "address",
                  "name": "client",
                  "type": "address"
                },
                {
                  "internalType": "uint64",
                  "name": "subscriptionId",
                  "type": "uint64"
                },
                {
                  "internalType": "uint32",
                  "name": "callbackGasLimit",
                  "type": "uint32"
                },
                {
                  "internalType": "uint72",
                  "name": "adminFee",
                  "type": "uint72"
                },
                {
                  "internalType": "uint72",
                  "name": "donFee",
                  "type": "uint72"
                },
                {
                  "internalType": "uint40",
                  "name": "gasOverheadBeforeCallback",
                  "type": "uint40"
                },
                {
                  "internalType": "uint40",
                  "name": "gasOverheadAfterCallback",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "timeoutTimestamp",
                  "type": "uint32"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "to",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "transferOwnership"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32[3]",
              "name": "reportContext",
              "type": "bytes32[3]"
            },
            {
              "internalType": "bytes",
              "name": "report",
              "type": "bytes"
            },
            {
              "internalType": "bytes32[]",
              "name": "rs",
              "type": "bytes32[]"
            },
            {
              "internalType": "bytes32[]",
              "name": "ss",
              "type": "bytes32[]"
            },
            {
              "internalType": "bytes32",
              "name": "rawVs",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "transmit"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "transmitters",
          "outputs": [
            {
              "internalType": "address[]",
              "name": "",
              "type": "address[]"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "typeAndVersion",
          "outputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct FunctionsBillingConfig",
              "name": "config",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint32",
                  "name": "fulfillmentGasPriceOverEstimationBP",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "feedStalenessSeconds",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "gasOverheadBeforeCallback",
                  "type": "uint32"
                },
                {
                  "internalType": "uint32",
                  "name": "gasOverheadAfterCallback",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "minimumEstimateGasPriceWei",
                  "type": "uint40"
                },
                {
                  "internalType": "uint16",
                  "name": "maxSupportedRequestDataVersion",
                  "type": "uint16"
                },
                {
                  "internalType": "uint64",
                  "name": "fallbackUsdPerUnitLink",
                  "type": "uint64"
                },
                {
                  "internalType": "uint8",
                  "name": "fallbackUsdPerUnitLinkDecimals",
                  "type": "uint8"
                },
                {
                  "internalType": "uint224",
                  "name": "fallbackNativePerUnitLink",
                  "type": "uint224"
                },
                {
                  "internalType": "uint32",
                  "name": "requestTimeoutSeconds",
                  "type": "uint32"
                },
                {
                  "internalType": "uint16",
                  "name": "donFeeCentsUsd",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "operationFeeCentsUsd",
                  "type": "uint16"
                },
                {
                  "internalType": "uint16",
                  "name": "transmitTxSizeBytes",
                  "type": "uint16"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "updateConfig"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "deleteCommitment(bytes32)": {
            "details": "Only callable by the RouterUsed by FunctionsRouter.sol during timeout of a request",
            "params": {
              "requestId": "- The request ID to remove"
            }
          },
          "estimateCost(uint64,bytes,uint32,uint256)": {
            "params": {
              "": "- gasPriceWei The blockchain's gas price to estimate with"
            },
            "returns": {
              "_0": "- billedCost Cost in Juels (1e18) of LINK"
            }
          },
          "getAdminFeeJuels()": {
            "returns": {
              "_0": "fee - Cost in Juels (1e18) of LINK"
            }
          },
          "getConfig()": {
            "returns": {
              "_0": "config"
            }
          },
          "getDONFeeJuels(bytes)": {
            "params": {
              "requestCBOR": "- CBOR encoded Chainlink Functions request data, use FunctionsRequest library to encode a request"
            },
            "returns": {
              "_0": "fee - Cost in Juels (1e18) of LINK"
            }
          },
          "getDONPublicKey()": {
            "details": "All nodes on the DON have the corresponding private key needed to decrypt the secrets encrypted with the public key",
            "returns": {
              "_0": "publicKey the DON's public key"
            }
          },
          "getOperationFeeJuels()": {
            "returns": {
              "_0": "fee - Cost in Juels (1e18) of LINK"
            }
          },
          "getThresholdPublicKey()": {
            "details": "All nodes on the DON have separate key shares of the threshold decryption key and nodes must participate in a threshold decryption OCR round to decrypt secrets",
            "returns": {
              "_0": "thresholdPublicKey the DON's threshold encryption public key"
            }
          },
          "getUsdPerUnitLink()": {
            "returns": {
              "_0": "weiPerUnitLink - The amount of USD that one LINK is worth",
              "_1": "decimals - The number of decimals that should be represented in the price feed's response"
            }
          },
          "getWeiPerUnitLink()": {
            "returns": {
              "_0": "weiPerUnitLink - The amount of WEI in one LINK"
            }
          },
          "latestConfigDetails()": {
            "returns": {
              "blockNumber": "block at which this config was set",
              "configCount": "ordinal number of current config, out of all configs applied to this contract so far",
              "configDigest": "domain-separation tag for current config (see __configDigestFromConfigData)"
            }
          },
          "latestConfigDigestAndEpoch()": {
            "returns": {
              "configDigest": "configDigest",
              "epoch": "epoch",
              "scanLogs": "indicates whether to rely on the configDigest and epoch returned or whether to scan logs for the Transmitted event instead."
            }
          },
          "oracleWithdraw(address,uint96)": {
            "params": {
              "amount": "amount to withdraw",
              "recipient": "where to send the funds"
            }
          },
          "oracleWithdrawAll()": {
            "details": "Only callable by the Coordinator owner"
          },
          "setConfig(address[],address[],uint8,bytes,uint64,bytes)": {
            "params": {
              "_f": "number of faulty oracles the system can tolerate",
              "_offchainConfig": "encoded off-chain oracle configuration",
              "_offchainConfigVersion": "version number for offchainEncoding schema",
              "_onchainConfig": "encoded on-chain contract configuration",
              "_signers": "addresses with which oracles sign the reports",
              "_transmitters": "addresses oracles use to transmit the reports"
            }
          },
          "setDONPublicKey(bytes)": {
            "details": "Used to rotate the key",
            "params": {
              "donPublicKey": "The new public key"
            }
          },
          "setThresholdPublicKey(bytes)": {
            "details": "Used to rotate the key",
            "params": {
              "thresholdPublicKey": "The new public key"
            }
          },
          "startRequest((bytes,bytes32,address,uint96,uint72,uint64,uint64,uint32,uint16,uint64,address))": {
            "details": "see the struct for field descriptions",
            "params": {
              "request": "The request metadata"
            },
            "returns": {
              "commitment": "- The parameters of the request that must be held consistent at response time"
            }
          },
          "transmit(bytes32[3],bytes,bytes32[],bytes32[],bytes32)": {
            "params": {
              "rawVs": "ith element is the the V component of the ith signature",
              "report": "serialized report, which the signatures are signing.",
              "rs": "ith element is the R components of the ith signature on report. Must have at most maxNumOracles entries",
              "ss": "ith element is the S components of the ith signature on report. Must have at most maxNumOracles entries"
            }
          },
          "transmitters()": {
            "details": "The list will match the order used to specify the transmitter during setConfig",
            "returns": {
              "_0": "list of addresses permitted to transmit reports to this contract"
            }
          },
          "updateConfig((uint32,uint32,uint32,uint32,uint40,uint16,uint64,uint8,uint224,uint32,uint16,uint16,uint16))": {
            "params": {
              "config": "- See the contents of the FunctionsBillingConfig struct in IFunctionsBilling.sol for more information"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "acceptOwnership()": {
            "notice": "Allows an ownership transfer to be completed by the recipient."
          },
          "deleteCommitment(bytes32)": {
            "notice": "Remove a request commitment that the Router has determined to be stale"
          },
          "estimateCost(uint64,bytes,uint32,uint256)": {
            "notice": "Estimate the total cost that will be charged to a subscription to make a request: transmitter gas re-reimbursement, plus DON fee, plus Registry fee"
          },
          "getAdminFeeJuels()": {
            "notice": "Determine the fee that will be paid to the Router owner for operating the network"
          },
          "getConfig()": {
            "notice": "Gets the Chainlink Coordinator's billing configuration"
          },
          "getDONFeeJuels(bytes)": {
            "notice": "Determine the fee that will be split between Node Operators for servicing a request"
          },
          "getDONPublicKey()": {
            "notice": "Returns the DON's secp256k1 public key that is used to encrypt secrets"
          },
          "getOperationFeeJuels()": {
            "notice": "Determine the fee that will be paid to the Coordinator owner for operating the network"
          },
          "getThresholdPublicKey()": {
            "notice": "Returns the DON's threshold encryption public key used to encrypt secrets"
          },
          "getUsdPerUnitLink()": {
            "notice": "Return the current conversion from LINK to USD from the configured Chainlink data feed"
          },
          "getWeiPerUnitLink()": {
            "notice": "Return the current conversion from WEI of ETH to LINK from the configured Chainlink data feed"
          },
          "latestConfigDetails()": {
            "notice": "information about current offchain reporting protocol configuration"
          },
          "latestConfigDigestAndEpoch()": {
            "notice": "optionally returns the latest configDigest and epoch for which a report was successfully transmitted. Alternatively, the contract may return scanLogs set to true and use Transmitted events to provide this information to offchain watchers."
          },
          "oracleWithdraw(address,uint96)": {
            "notice": "Oracle withdraw LINK earned through fulfilling requestsIf amount is 0 the full balance will be withdrawn"
          },
          "oracleWithdrawAll()": {
            "notice": "Withdraw all LINK earned by Oracles through fulfilling requests"
          },
          "owner()": {
            "notice": "Get the current owner"
          },
          "setConfig(address[],address[],uint8,bytes,uint64,bytes)": {
            "notice": "sets offchain reporting protocol configuration incl. participating oracles"
          },
          "setDONPublicKey(bytes)": {
            "notice": "Sets DON's secp256k1 public key used to encrypt secrets"
          },
          "setThresholdPublicKey(bytes)": {
            "notice": "Sets the DON's threshold encryption public key used to encrypt secrets"
          },
          "startRequest((bytes,bytes32,address,uint96,uint72,uint64,uint64,uint32,uint16,uint64,address))": {
            "notice": "Receives a request to be emitted to the DON for processing"
          },
          "transferOwnership(address)": {
            "notice": "Allows an owner to begin transferring ownership to a new address."
          },
          "transmit(bytes32[3],bytes,bytes32[],bytes32[],bytes32)": {
            "notice": "transmit is called to post a new report to the contract"
          },
          "updateConfig((uint32,uint32,uint32,uint32,uint40,uint16,uint64,uint8,uint224,uint32,uint16,uint16,uint16))": {
            "notice": "Sets the Chainlink Coordinator's billing configuration"
          }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@eth-optimism/=node_modules/@eth-optimism/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "@scroll-tech/=node_modules/@scroll-tech/",
        "ds-test/=foundry-lib/forge-std/lib/ds-test/src/",
        "forge-std/=foundry-lib/forge-std/src/",
        "hardhat/=node_modules/hardhat/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 1000000
      },
      "metadata": {
        "bytecodeHash": "none"
      },
      "compilationTarget": {
        "src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol": "FunctionsCoordinator"
      },
      "evmVersion": "paris",
      "libraries": {}
    },
    "sources": {
      "node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol": {
        "keccak256": "0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6",
        "urls": [
          "bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed",
          "dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/Address.sol": {
        "keccak256": "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa",
        "urls": [
          "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931",
          "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/math/Math.sol": {
        "keccak256": "0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3",
        "urls": [
          "bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c",
          "dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": {
        "keccak256": "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc",
        "urls": [
          "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7",
          "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/FunctionsBilling.sol": {
        "keccak256": "0x2389aca7a4610a6c44c1c2e6f91df815e9a6a75eb3822a579965343b6c08d769",
        "urls": [
          "bzz-raw://08852f396782a639db3c18bf5a381b8afe75a364696c96db99174177e11d1ac4",
          "dweb:/ipfs/QmedCfgvitg7nNn1Sq8UMFYmWwfaaJYhRU4cQJkdz876tB"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol": {
        "keccak256": "0xf1bed819a9778765bb41439ffbe242ce8fc46ce0c970a3262f94c9bb8136a9d6",
        "urls": [
          "bzz-raw://29287de60e45f3219e4675d7be4b818699954cea25fb44595204ff2a2d99f141",
          "dweb:/ipfs/QmVx3UkNr5Cy8zQodz2X6YAwDkcqLfkqdeXz4u1ouG8z6U"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/Routable.sol": {
        "keccak256": "0xdecc7de266d79392b8a9b61c5ecf4754b18d6200fa1fd7c80e7ae5a2724983a8",
        "urls": [
          "bzz-raw://3eeafc782d3835b0b1edde3caf2c1e339c5bd2fe364fad4c24ac4d3e466d0712",
          "dweb:/ipfs/QmSLBkEJQo9H2nF9K2npopXjMQ12ShUFrSKeUHtYFYxXXq"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/interfaces/IFunctionsBilling.sol": {
        "keccak256": "0xe44a8b09da18eacb466071f8a5a85f34b2bb6c87c3da3005a8c7a548dae55b68",
        "urls": [
          "bzz-raw://d842464f57339d68bbe2b0ac96a906eb1012f34f5ba9a6e26478bdbfdd923dd4",
          "dweb:/ipfs/QmWkNuRRpXovZBuPxMUXkQ4e6GsLtNYgov2xG7NaTYZmD9"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/interfaces/IFunctionsCoordinator.sol": {
        "keccak256": "0x5e4f7c68b61190c2e32d50d03eeba942ab9beda14bcacddfcd7cba558dd62f8f",
        "urls": [
          "bzz-raw://c0d10bce704a1b3586692807f3ae6f0c9854c11e9f1c6f68832ddb555e0057ee",
          "dweb:/ipfs/QmUFusvF7B5qGodpVdD2BRHXYvLDNjzLn3E359Vx6AxRUB"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/interfaces/IFunctionsRouter.sol": {
        "keccak256": "0x44db41e8ff90c2828ca0ada125abc4b411921a86514a4a047fd9fd43ba9d7e08",
        "urls": [
          "bzz-raw://c4c3228edc2cff7c55301d3764e54cd7ada6af81ef9aadf8bc116a2c982523d6",
          "dweb:/ipfs/QmXjJQgCu2gvX6QQJ9GC1gEoy3vrmpf1PiRPLqWqKddwRe"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/interfaces/IFunctionsSubscriptions.sol": {
        "keccak256": "0xab83613f1bb1cbdbf15fdbb6382259e2b2678bfe5a3a6dab976cdf2337f1f94e",
        "urls": [
          "bzz-raw://0775cd55699e89e5f3df452de2c2273e00e51d79feb2b0c2d36e856cfeb1bd4b",
          "dweb:/ipfs/QmQDoC1hJhYYEg8SZouhkZ5BgC7mhqn4Ymgo5tvV3iYUgg"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/interfaces/IOwnableFunctionsRouter.sol": {
        "keccak256": "0xa0927068c6a01b468231d1973e73d4d5a56ac42f9ce277fc0406801f1d77f62a",
        "urls": [
          "bzz-raw://07d5722d43b75e131748970844105f5eefef1dff28a36dde845327b30a301b00",
          "dweb:/ipfs/QmP56SJ9xx39R5qXsRzUaKz2RABcBrLekmXFZ6UpfSkvMs"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/libraries/ChainSpecificUtil.sol": {
        "keccak256": "0x28d4ae194d646060ba66ff84163a5301510f1f701dcfcb1cb3fca2ef1d439f6f",
        "urls": [
          "bzz-raw://2fc207d9b0d43d5d4605b814fa1c79c93e433053af1d49a78c7fa0c8f7477eef",
          "dweb:/ipfs/QmTnXwxzvmc6E1r16xMKNQ8qtKpYJksKmKV8vCwzRYPhck"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/libraries/FunctionsResponse.sol": {
        "keccak256": "0xc72eb037effef32146f7cd4086af00f44f28c8649d891e5e404fec5fda7e802b",
        "urls": [
          "bzz-raw://eeeaeadc797b7656fd30201ab8c8ed24fe8fb3f83a480142bb55c7c7babb2b4b",
          "dweb:/ipfs/Qmdb55a1iWJetog7qUpZ6FHKGSA8g3Vu68LGsXfqfec9k5"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/ocr/OCR2Abstract.sol": {
        "keccak256": "0xca4fad93bf138e906477f42a937870251703776eef6d6b8d022284f5f47395c4",
        "urls": [
          "bzz-raw://25f02c6045770d65dee888948bd22ba21d9f5b93585cc71716d65f81924f2ce9",
          "dweb:/ipfs/Qmcs14BmagsvawWiBJ65oLy8HmzDULB5sS2QfxWYGRbKkE"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/ocr/OCR2Base.sol": {
        "keccak256": "0x42a21916b77df3cdef9041afbcec178a3ef4200e30767c83ad50e2299c404fc7",
        "urls": [
          "bzz-raw://8e45bc8b40fcf438d2996850bf6467e5b3ed16b61764037d7e05ad4819994272",
          "dweb:/ipfs/QmSi4W3pzEiQRxFSryr6avaNb8chjVMxDefXt3vRYxzd5a"
        ],
        "license": "MIT"
      },
      "src/v0.8/shared/access/ConfirmedOwner.sol": {
        "keccak256": "0xdcb0e9135ddbe71ee27ba99fa06656960c66c964cf2ecb29696da1c1427d9861",
        "urls": [
          "bzz-raw://f914a1b638300e82d8f5a020a4195235599afebab4ef1e10c6992f3c90e7df3e",
          "dweb:/ipfs/Qmf2MbuVB16qbCGii3U5cjcBvVjAHHYzKp9voJa2eDch9B"
        ],
        "license": "MIT"
      },
      "src/v0.8/shared/access/ConfirmedOwnerWithProposal.sol": {
        "keccak256": "0x2422a055657a87e98be61f8f31abb1824ec50fd0f73949f4e3c6ac877efb6da8",
        "urls": [
          "bzz-raw://fde3b9ac3a4c42ea43e2f92b037d32ab20e30818471c6e20d2590147a6c2958a",
          "dweb:/ipfs/QmQ2ohQP4GnhPUsiWCvCfb1dsoGYDdxSap3dxtnYTV4rmT"
        ],
        "license": "MIT"
      },
      "src/v0.8/shared/interfaces/AggregatorV3Interface.sol": {
        "keccak256": "0x257a8d28fa83d3d942547c8e129ef465e4b5f3f31171e7be4739a4c98da6b4f0",
        "urls": [
          "bzz-raw://6d39e11b1dc7b9b8ccdabbc9be442ab7cda4a81c748f57e316dcb1bcb4a28bf9",
          "dweb:/ipfs/QmaG6vz6W6iEUBsbHSBob5mdcitYxWjoygxREHpsJHfWrS"
        ],
        "license": "MIT"
      },
      "src/v0.8/shared/interfaces/IOwnable.sol": {
        "keccak256": "0x885de72b7b4e4f1bf8ba817a3f2bcc37fd9022d342c4ce76782151c30122d767",
        "urls": [
          "bzz-raw://17c636625a5d29a140612db496d2cca9fb4b48c673adb0fd7b3957d287e75921",
          "dweb:/ipfs/QmNoBX8TY424bdQWyQC7y3kpKfgxyWxhLw7KEhhEEoBN9q"
        ],
        "license": "MIT"
      },
      "src/v0.8/shared/interfaces/ITypeAndVersion.sol": {
        "keccak256": "0xf5827cb463c01d055021684d04f9186391c2d9ac850e0d0819f76140e4fc84ed",
        "urls": [
          "bzz-raw://a19c7bae07330e6d7904a0a21cf0ab0067ef096b66c1653a2e012801a931c5b9",
          "dweb:/ipfs/QmckpvSuLx8UL8zfVzAtN6ZRxyXHUSVqqz2JwYZ2jrK58h"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@arbitrum/nitro-contracts/src/precompiles/ArbGasInfo.sol": {
        "keccak256": "0x7c51d93494afd02b5336e88d8738341758340f2befe698b4458a916905691bd6",
        "urls": [
          "bzz-raw://5194d3cfc88dbe508dacfcaa51597a7cb981277a292c765d97c435845a7270eb",
          "dweb:/ipfs/QmVHkwiNGPaUhdnX5MycTzRTRzhb1bdG1E4xJCB5bhhwRM"
        ],
        "license": "BUSL-1.1"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/L1/ResourceMetering.sol": {
        "keccak256": "0xfdf862192cfee6edc4a260849f7b76087cb96ca89f5ff45fd4d4497159404e68",
        "urls": [
          "bzz-raw://b92fab7d553b013cf3c2c579995c5f4a5fa4978dc1822a0c70a3d4dead63b951",
          "dweb:/ipfs/QmYayiRThprk2bEB78LQHtJAkZ7YMvSRopaML59HD5225H"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/L2/GasPriceOracle.sol": {
        "keccak256": "0xe8cc893020740bb7ecd9d4b1a637b6f0e51bc445c04436713c120037691cb520",
        "urls": [
          "bzz-raw://0a493181719e53cf5f2ac1a843f12054dddd1ee97b03a0b20edcc6d32e56aa77",
          "dweb:/ipfs/QmPtySNMv9z6RCQRY8yBGvHpktpmtXuaQjo5zTsX3vPfgo"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/L2/L1Block.sol": {
        "keccak256": "0xe17f59def4ca0228e5b3f297f8cc14e8980ee3e9a4d7716ebc0f2962e637f97c",
        "urls": [
          "bzz-raw://c4140a975fd24ef5aa0d670e6e5116c3cb325c722ab9be71a28454774612ba2c",
          "dweb:/ipfs/QmNwdH1Rs8twHJZBae9Kxdj1eriA3fpfWQY6L9bHpcWmao"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/Arithmetic.sol": {
        "keccak256": "0xe24acd365927846fa57a2c8c61ce41e29da398ce4755193ec9d35189db5fe799",
        "urls": [
          "bzz-raw://160da038a2f0f34dff6a55eabe521f4b6c929b49cbd444b1b97fd982e0d6a735",
          "dweb:/ipfs/QmQM9EFq1u8HJ8FDgHZYuRQqzdorBmpxfGSH7FPYjAhkSg"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/Burn.sol": {
        "keccak256": "0x4eed030458745f1aa3b09025e86093d1f3ee08d5a13b20a9c6e59cd756d666b9",
        "urls": [
          "bzz-raw://ddb0032eedef19dc58e5fde18e1fc7e0a28f82c4bf2c7c1bc91f57e857fcd73c",
          "dweb:/ipfs/QmeNVrKgZQ3UPMZ72M2SpFiwKANY7hAeynjkwdoiNepm8S"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/Constants.sol": {
        "keccak256": "0x4c939c9826aaf10e5c166c937646a63a3e76a0066aa6e9fe8f6c1b90bc3e5c36",
        "urls": [
          "bzz-raw://2c9f0cf066c36fe2590f30673005769034600c14ebdc5925570b0da85302e470",
          "dweb:/ipfs/QmP6mEhersQQDb9pRQyyc1WcnPEfc3vtSS7TkFyZNZufQk"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/GasPayingToken.sol": {
        "keccak256": "0x921d5ccfcf425acd37bc0b774b3be686341c7ad7746b7e92b2091e6b0d3c9f80",
        "urls": [
          "bzz-raw://4a677c0690ba388dbc813d1486b82e559dc34a6859f9112f98d19ba4171c958f",
          "dweb:/ipfs/QmYPsVmPMSpN9dJimkNWLab8TDVbJtvco1cjecvviAwFgy"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/L1BlockErrors.sol": {
        "keccak256": "0x34996ccf6dad2275743a9cfc9b5bed1295ab58afd3ad23c2f3e099b0eec22cdc",
        "urls": [
          "bzz-raw://faa82b96c691f9293dac833ef3afc10ca59a306e00de0334b1882cdfcad49594",
          "dweb:/ipfs/QmZzwimfHtv9tF8d31MWMUq9w7Gks6edMqc21JQkm6RoP2"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/Predeploys.sol": {
        "keccak256": "0x5326a77eb779d47bc3b221667e932fa91a6cc264c5c193ae6528871263fcc4b2",
        "urls": [
          "bzz-raw://3ab3ed11a945f4d70ce1741e0ccacbaad178d04cc85e4dd00a47bf45b5063a60",
          "dweb:/ipfs/QmTtDcfL6yK6dBom2HiRELN1MA5xa7YgWEqzin7EFJ9yYH"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/libraries/Storage.sol": {
        "keccak256": "0x6b6bfc1b508607b3c54fc29f72729d88b734c79d8b67bc27e436f70eee20dabf",
        "urls": [
          "bzz-raw://d4e53f8c0c767a47ab06a432400cc18f9a0a4d7d18dc0dcd81e1971f9e29f327",
          "dweb:/ipfs/QmcFBCZfMMqduZazRm3Kh4DJkfjd5bNQmzbETZta8M4fqQ"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.17.3/src/universal/ISemver.sol": {
        "keccak256": "0x8debf818a0e7f49313d76b22ed9ff03c459553969bc257887963494e1b1fadf6",
        "urls": [
          "bzz-raw://f033090fc07df64e15bf62bed3bfb03ded05cd7498793c378b8c6342a9a4c794",
          "dweb:/ipfs/QmRCEdKFeNiepYwuZc3pqwQ2ufSiMZD7rzDwS9Du1pSQHz"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@rari-capital/solmate/src/utils/FixedPointMathLib.sol": {
        "keccak256": "0x622fcd8a49e132df5ec7651cc6ae3aaf0cf59bdcd67a9a804a1b9e2485113b7d",
        "urls": [
          "bzz-raw://af77088eb606427d4c55e578984a615779c86bc30646a20f7bb27299ba390f7c",
          "dweb:/ipfs/QmZGQdhdQDtHc7gZXWrKXgA3govc74X8U63BiWhPQK3mK8"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/utils/math/SafeCast.sol": {
        "keccak256": "0x6c12a4027a4e6c43d6fe4f6434f7bce48567c96760745527ad72791743403f6f",
        "urls": [
          "bzz-raw://1615ac19b83ddd81118a3a3ba9b9a54ee130206579c91d44bf5aeb461b13aa13",
          "dweb:/ipfs/QmPbB5dbh2Gt4LZAQZmqpeXTL1tQai5wTUgLaLbQyvd7cS"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/solady/src/utils/LibString.sol": {
        "keccak256": "0x0ccf0277cd6d0ed4965063ef1e41eb5b09b6e334e13999e0a39cf1155a73d585",
        "urls": [
          "bzz-raw://b0a0ca42856020e63246b840a6121f200733ab16e247da4fd7fcb716d234bc20",
          "dweb:/ipfs/QmXpBNtiJrNYmcwfejZzT7zscgsjRRQKb73t2UFCAo1aZH"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/solady/src/utils/LibZip.sol": {
        "keccak256": "0x6998487ca189f50322b6518c8b9906641a3f24ccdd36c76d234ed59a382e4f9d",
        "urls": [
          "bzz-raw://d1095dc09387c648a6aa6e0e0043e305bec708504f66f07365a9fc32dae29c9d",
          "dweb:/ipfs/QmPR1TASKvyWNvxn4aCe15aLgmm4GFzzwPHhD2ACvtNQTE"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "id": 29
}