{
  "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": "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"
            }
          ]
        }
      ],
      "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"
            }
          ]
        }
      ],
      "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"
            }
          ]
        }
      ],
      "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": "0x60a06040523480156200001157600080fd5b506040516200601f3803806200601f8339810160408190526200003491620004db565b83838383833380600081620000905760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000c357620000c3816200014e565b5050506001600160a01b038116620000ee57604051632530e88560e11b815260040160405180910390fd5b6001600160a01b03908116608052600c80546001600160601b03166c0100000000000000000000000085841602179055600d80546001600160a01b0319169183169190911790556200014083620001f9565b505050505050505062000742565b336001600160a01b03821603620001a85760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000087565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b620002036200039e565b80516008805460208401516040808601516060870151608088015160a089015160c08a015160e08b015160ff16600160f81b026001600160f81b036001600160401b03909216600160b81b02919091166001600160b81b0361ffff938416600160a81b0261ffff60a81b1964ffffffffff909616600160801b029590951666ffffffffffffff60801b1963ffffffff9788166c010000000000000000000000000263ffffffff60601b19998916680100000000000000000299909916600160401b600160801b03199b8916640100000000026001600160401b0319909d169e89169e909e179b909b17999099169b909b1795909517979097169590951717969096161792909217909255610100840151610120850151909316600160e01b026001600160e01b0390931692909217600955610140830151600a80546101608601518416620100000263ffffffff19919091169290931691909117919091179055517f2e2c8535dcc25459d519f2300c114d2d2128bf6399722d04eca078461a3bf33a906200039390839062000639565b60405180910390a150565b620003a8620003aa565b565b6000546001600160a01b03163314620003a85760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e657200000000000000000000604482015260640162000087565b80516001600160a01b03811681146200041e57600080fd5b919050565b60405161018081016001600160401b03811182821017156200045557634e487b7160e01b600052604160045260246000fd5b60405290565b805163ffffffff811681146200041e57600080fd5b805164ffffffffff811681146200041e57600080fd5b805161ffff811681146200041e57600080fd5b80516001600160401b03811681146200041e57600080fd5b805160ff811681146200041e57600080fd5b80516001600160e01b03811681146200041e57600080fd5b6000806000808486036101e0811215620004f457600080fd5b620004ff8662000406565b945061018080601f19830112156200051657600080fd5b6200052062000423565b915062000530602088016200045b565b825262000540604088016200045b565b602083015262000553606088016200045b565b604083015262000566608088016200045b565b60608301526200057960a0880162000470565b60808301526200058c60c0880162000486565b60a08301526200059f60e0880162000499565b60c0830152610100620005b4818901620004b1565b60e0840152610120620005c9818a01620004c3565b828501526101409150620005df828a016200045b565b90840152610160620005f389820162000486565b8285015262000604838a0162000486565b90840152509093506200061d90506101a0860162000406565b91506200062e6101c0860162000406565b905092959194509250565b815163ffffffff1681526101808101602083015162000660602084018263ffffffff169052565b50604083015162000679604084018263ffffffff169052565b50606083015162000692606084018263ffffffff169052565b506080830151620006ac608084018264ffffffffff169052565b5060a0830151620006c360a084018261ffff169052565b5060c0830151620006df60c08401826001600160401b03169052565b5060e0830151620006f560e084018260ff169052565b50610100838101516001600160e01b0316908301526101208084015163ffffffff16908301526101408084015161ffff908116918401919091526101609384015116929091019190915290565b608051615897620007886000396000818161079c01528181610c7d01528181610f110152818161102701528181611b2d015281816129eb015261396901526158976000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c80638da5cb5b116100ee578063d227d24511610097578063e4ddcea611610071578063e4ddcea6146105d5578063f2f22ef1146105eb578063f2fde38b146105f3578063f6ea41f61461060657600080fd5b8063d227d2451461058a578063d328a91e146105ba578063e3d0e712146105c257600080fd5b8063b1dc65a4116100c8578063b1dc65a414610396578063ba9c924d146103a9578063c3f909d4146103bc57600080fd5b80638da5cb5b1461032e578063a631571e14610356578063afcb95d71461037657600080fd5b80637d4807871161015057806381f1b9381161012a57806381f1b938146102a657806381ff7048146102ae57806385b214cf1461031b57600080fd5b80637d480787146102765780637f15e1661461027e578063814118341461029157600080fd5b806366316d8d1161018157806366316d8d1461023c5780637212762f1461024f57806379ba50971461026e57600080fd5b8063083a5466146101a8578063181f5a77146101bd578063626f458c1461020f575b600080fd5b6101bb6101b6366004614010565b61060e565b005b6101f96040518060400160405280601c81526020017f46756e6374696f6e7320436f6f7264696e61746f722076312e332e300000000081525081565b60405161020691906140c0565b60405180910390f35b61022261021d36600461422d565b610663565b60405168ffffffffffffffffff9091168152602001610206565b6101bb61024a3660046142b4565b6106a0565b610257610859565b6040805192835260ff909116602083015201610206565b6101bb610a6c565b6101bb610b69565b6101bb61028c366004614010565b610d69565b610299610db9565b604051610206919061433e565b6101f9610e28565b6102f860015460025463ffffffff74010000000000000000000000000000000000000000830481169378010000000000000000000000000000000000000000000000009093041691565b6040805163ffffffff948516815293909216602084015290820152606001610206565b6101bb610329366004614351565b610ef9565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610206565b61036961036436600461436a565b610fb6565b60405161020691906144bf565b604080516001815260006020820181905291810191909152606001610206565b6101bb6103a4366004614513565b611247565b6101bb6103b736600461467e565b61185e565b61057d6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915250604080516101808101825260085463ffffffff80821683526401000000008204811660208401526801000000000000000082048116938301939093526c01000000000000000000000000810483166060830152700100000000000000000000000000000000810464ffffffffff1660808301527501000000000000000000000000000000000000000000810461ffff90811660a084015277010000000000000000000000000000000000000000000000820467ffffffffffffffff1660c08401527f010000000000000000000000000000000000000000000000000000000000000090910460ff1660e08301526009547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81166101008401527c01000000000000000000000000000000000000000000000000000000009004909216610120820152600a5480831661014083015262010000900490911661016082015290565b604051610206919061476a565b61059d610598366004614887565b611b29565b6040516bffffffffffffffffffffffff9091168152602001610206565b6101f9611c97565b6101bb6105d036600461498f565b611cee565b6105dd61286a565b604051908152602001610206565b6102226129ae565b6101bb610601366004614a5c565b6129d3565b6102226129e7565b610616612a78565b6000819003610651576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f61065e828483614b0c565b505050565b600a5460009061069a9060649061067d9061ffff16612afb565b6106879190614c85565b6bffffffffffffffffffffffff16612b48565b92915050565b6106a8612be7565b806bffffffffffffffffffffffff166000036106e25750336000908152600b60205260409020546bffffffffffffffffffffffff1661073c565b336000908152600b60205260409020546bffffffffffffffffffffffff8083169116101561073c576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600b6020526040812080548392906107699084906bffffffffffffffffffffffff16614cb0565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506107be7f000000000000000000000000000000000000000000000000000000000000000090565b6040517f66316d8d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526bffffffffffffffffffffffff8416602483015291909116906366316d8d90604401600060405180830381600087803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050505050565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f09190614cf6565b5093505092505080426109039190614d46565b600854640100000000900463ffffffff161080156109305750600854640100000000900463ffffffff1615155b1561098d57505060085477010000000000000000000000000000000000000000000000810467ffffffffffffffff16937f010000000000000000000000000000000000000000000000000000000000000090910460ff1692509050565b600082136109cf576040517f56b22ab8000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b600d54604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051849273ffffffffffffffffffffffffffffffffffffffff169163313ce5679160048083019260209291908290030181865afa158015610a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a629190614d59565b9350935050509091565b60015473ffffffffffffffffffffffffffffffffffffffff163314610aed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016109c6565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610b71612d93565b610b79612be7565b6000610b83610db9565b905060005b8151811015610d65576000600b6000848481518110610ba957610ba9614d76565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252810191909152604001600020546bffffffffffffffffffffffff1690508015610d54576000600b6000858581518110610c0857610c08614d76565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610c9f7f000000000000000000000000000000000000000000000000000000000000000090565b73ffffffffffffffffffffffffffffffffffffffff166366316d8d848481518110610ccc57610ccc614d76565b6020026020010151836040518363ffffffff1660e01b8152600401610d2192919073ffffffffffffffffffffffffffffffffffffffff9290921682526bffffffffffffffffffffffff16602082015260400190565b600060405180830381600087803b158015610d3b57600080fd5b505af1158015610d4f573d6000803e3d6000fd5b505050505b50610d5e81614da5565b9050610b88565b5050565b610d71612a78565b6000819003610dac576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e61065e828483614b0c565b60606006805480602002602001604051908101604052809291908181526020018280548015610e1e57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610df3575b5050505050905090565b6060600f8054610e3790614a79565b9050600003610e72576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f8054610e7f90614a79565b80601f0160208091040260200160405190810160405280929190818152602001828054610eab90614a79565b8015610e1e5780601f10610ecd57610100808354040283529160200191610e1e565b820191906000526020600020905b815481529060010190602001808311610edb57509395945050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610f68576040517fc41a5b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526007602052604080822091909155517f8a4b97add3359bd6bcf5e82874363670eb5ad0f7615abddbd0ed0a3a98f0f41690610fab9083815260200190565b60405180910390a150565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091523373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461107e576040517fc41a5b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061109161108c84614dff565b612d9b565b90925090506110a66060840160408501614a5c565b825173ffffffffffffffffffffffffffffffffffffffff91909116907fbf50768ccf13bd0110ca6d53a9c4f1f3271abdd4c24a56878863ed25b20598ff326110f460c0880160a08901614eec565b61110661016089016101408a01614a5c565b6111108980614f09565b6111226101208c016101008d01614f6e565b60208c01356111386101008e0160e08f01614f89565b6040518061016001604052808e6000015181526020018e6020015173ffffffffffffffffffffffffffffffffffffffff1681526020018e604001516bffffffffffffffffffffffff1681526020018e6060015173ffffffffffffffffffffffffffffffffffffffff1681526020018e6080015167ffffffffffffffff1681526020018e60a0015163ffffffff1681526020018d68ffffffffffffffffff1681526020018e60e0015168ffffffffffffffffff1681526020018e610100015164ffffffffff1681526020018e610120015164ffffffffff1681526020018e610140015163ffffffff1681525060405161123899989796959493929190614fa6565b60405180910390a3505b919050565b600080611254898961314d565b915091508115611265575050611854565b604080518b3580825262ffffff6020808f0135600881901c9290921690840152909290917fb04e63db38c49950639fa09d29872f21f5d49d614f3a969d8adf3d4b52e41a62910160405180910390a16112c28b8b8b8b8b8b6132d6565b6003546000906002906112e09060ff8082169161010090041661505c565b6112ea9190615075565b6112f590600161505c565b60ff169050888114611363576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f77726f6e67206e756d626572206f66207369676e61747572657300000000000060448201526064016109c6565b8887146113f2576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f7265706f727420727320616e64207373206d757374206265206f66206571756160448201527f6c206c656e67746800000000000000000000000000000000000000000000000060648201526084016109c6565b3360009081526004602090815260408083208151808301909252805460ff8082168452929391929184019161010090910416600281111561143557611435615097565b600281111561144657611446615097565b905250905060028160200151600281111561146357611463615097565b141580156114ac57506006816000015160ff168154811061148657611486614d76565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff163314155b15611513576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f756e617574686f72697a6564207472616e736d6974746572000000000000000060448201526064016109c6565b5050505061151f613faf565b60008a8a6040516115319291906150c6565b604051908190038120611548918e906020016150d6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120838301909252600080845290830152915060005b898110156118445760006001848984602081106115b1576115b1614d76565b6115be91901a601b61505c565b8e8e868181106115d0576115d0614d76565b905060200201358d8d878181106115e9576115e9614d76565b9050602002013560405160008152602001604052604051611626949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015611648573d6000803e3d6000fd5b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081015173ffffffffffffffffffffffffffffffffffffffff811660009081526004602090815290849020838501909452835460ff808216855292965092945084019161010090041660028111156116c8576116c8615097565b60028111156116d9576116d9615097565b90525092506001836020015160028111156116f6576116f6615097565b1461175d576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f61646472657373206e6f7420617574686f72697a656420746f207369676e000060448201526064016109c6565b8251600090869060ff16601f811061177757611777614d76565b602002015173ffffffffffffffffffffffffffffffffffffffff16146117f9576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f6e2d756e69717565207369676e617475726500000000000000000000000060448201526064016109c6565b8085846000015160ff16601f811061181357611813614d76565b73ffffffffffffffffffffffffffffffffffffffff90921660209290920201525061183d81614da5565b9050611592565b5050506118508261338d565b5050505b5050505050505050565b611866612d93565b80516008805460208401516040808601516060870151608088015160a089015160c08a015160e08b015160ff167f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff90921677010000000000000000000000000000000000000000000000029190911676ffffffffffffffffffffffffffffffffffffffffffffff61ffff9384167501000000000000000000000000000000000000000000027fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff64ffffffffff90961670010000000000000000000000000000000002959095167fffffffffffffffffff00000000000000ffffffffffffffffffffffffffffffff63ffffffff9788166c01000000000000000000000000027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff9989166801000000000000000002999099167fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff9b8916640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909d169e89169e909e179b909b17999099169b909b17959095179790971695909517179690961617929092179092556101008401516101208501519093167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90931692909217600955610140830151600a8054610160860151841662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000919091169290931691909117919091179055517f2e2c8535dcc25459d519f2300c114d2d2128bf6399722d04eca078461a3bf33a90610fab90839061476a565b60007f00000000000000000000000000000000000000000000000000000000000000006040517f10fc49c100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8816600482015263ffffffff8516602482015273ffffffffffffffffffffffffffffffffffffffff91909116906310fc49c19060440160006040518083038186803b158015611bc957600080fd5b505afa158015611bdd573d6000803e3d6000fd5b5050505066038d7ea4c68000821115611c22576040517f8129bbcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c2c6129e7565b90506000611c6f87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061066392505050565b90506000611c7b6129ae565b9050611c8a86868486856134dc565b9998505050505050505050565b6060600e8054611ca690614a79565b9050600003611ce1576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e8054610e7f90614a79565b855185518560ff16601f831115611d61576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f746f6f206d616e79207369676e6572730000000000000000000000000000000060448201526064016109c6565b80600003611dcb576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f66206d75737420626520706f736974697665000000000000000000000000000060448201526064016109c6565b818314611e59576040517f89a61989000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f6f7261636c6520616464726573736573206f7574206f6620726567697374726160448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016109c6565b611e648160036150ea565b8311611ecc576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661756c74792d6f7261636c65206620746f6f2068696768000000000000000060448201526064016109c6565b611ed4612a78565b6040805160c0810182528a8152602081018a905260ff89169181018290526060810188905267ffffffffffffffff8716608082015260a0810186905290611f1b9088613658565b600554156120d057600554600090611f3590600190614d46565b9050600060058281548110611f4c57611f4c614d76565b60009182526020822001546006805473ffffffffffffffffffffffffffffffffffffffff90921693509084908110611f8657611f86614d76565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff85811684526004909252604080842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009081169091559290911680845292208054909116905560058054919250908061200657612006615101565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055600680548061206f5761206f615101565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550611f1b915050565b60005b815151811015612687578151805160009190839081106120f5576120f5614d76565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361217a576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7369676e6572206d757374206e6f7420626520656d707479000000000000000060448201526064016109c6565b600073ffffffffffffffffffffffffffffffffffffffff16826020015182815181106121a8576121a8614d76565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361222d576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f7472616e736d6974746572206d757374206e6f7420626520656d70747900000060448201526064016109c6565b6000600460008460000151848151811061224957612249614d76565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002054610100900460ff16600281111561229357612293615097565b146122fa576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f7265706561746564207369676e6572206164647265737300000000000000000060448201526064016109c6565b6040805180820190915260ff8216815260016020820152825180516004916000918590811061232b5761232b614d76565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252818101929092526040016000208251815460ff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082168117835592840151919283917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016176101008360028111156123cc576123cc615097565b0217905550600091506123dc9050565b60046000846020015184815181106123f6576123f6614d76565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002054610100900460ff16600281111561244057612440615097565b146124a7576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7265706561746564207472616e736d697474657220616464726573730000000060448201526064016109c6565b6040805180820190915260ff8216815260208101600281525060046000846020015184815181106124da576124da614d76565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252818101929092526040016000208251815460ff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082168117835592840151919283917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000161761010083600281111561257b5761257b615097565b02179055505082518051600592508390811061259957612599614d76565b602090810291909101810151825460018101845560009384529282902090920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909316929092179091558201518051600691908390811061261557612615614d76565b60209081029190910181015182546001810184556000938452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790558061267f81614da5565b9150506120d3565b506040810151600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff909216919091179055600180547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff8116780100000000000000000000000000000000000000000000000063ffffffff438116820292909217808555920481169291829160149161273f91849174010000000000000000000000000000000000000000900416615130565b92506101000a81548163ffffffff021916908363ffffffff16021790555061279e4630600160149054906101000a900463ffffffff1663ffffffff16856000015186602001518760400151886060015189608001518a60a00151613671565b600281905582518051600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010060ff9093169290920291909117905560015460208501516040808701516060880151608089015160a08a015193517f1591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e0598612855988b9891977401000000000000000000000000000000000000000090920463ffffffff1696909591949193919261514d565b60405180910390a15050505050505050505050565b6000806000600c8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156128da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fe9190614cf6565b5093505092505080426129119190614d46565b600854640100000000900463ffffffff1610801561293e5750600854640100000000900463ffffffff1615155b1561296b5750506009547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16919050565b600082136129a8576040517f43d4cf66000000000000000000000000000000000000000000000000000000008152600481018390526024016109c6565b50919050565b600a546000906129ce9060649061067d9062010000900461ffff16612afb565b905090565b6129db612a78565b6129e48161371c565b50565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632a905ccc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a54573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ce91906151ee565b60005473ffffffffffffffffffffffffffffffffffffffff163314612af9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016109c6565b565b6000806000612b08610859565b9092509050612b4082612b1c83601261505c565b612b2790600a61532b565b612b3190876150ea565b612b3b919061533a565b613811565b949350505050565b600068ffffffffffffffffff821115612be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203760448201527f322062697473000000000000000000000000000000000000000000000000000060648201526084016109c6565b5090565b600c546bffffffffffffffffffffffff16600003612c0157565b6000612c0b610db9565b80519091506000819003612c4b576040517f30274b3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54600090612c6a9083906bffffffffffffffffffffffff16614c85565b905060005b82811015612d355781600b6000868481518110612c8e57612c8e614d76565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a90046bffffffffffffffffffffffff16612cf6919061534e565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555080612d2e90614da5565b9050612c6f565b50612d408282615373565b600c8054600090612d609084906bffffffffffffffffffffffff16614cb0565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505050565b612af9612a78565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081019190915260085461010083015160009161ffff7501000000000000000000000000000000000000000000909104811691161115612e59576040517fdada758700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612e688460000151610663565b9050612e726129ae565b91506000612e8b8560e001513a848860800151876134dc565b9050806bffffffffffffffffffffffff1685606001516bffffffffffffffffffffffff161015612ee7576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600954600090612f1d907c0100000000000000000000000000000000000000000000000000000000900463ffffffff164261539b565b905060003087604001518860a001518960c001516001612f3d91906153ae565b8a5180516020918201206101008d015160e08e0151604051612ff198979695948c918c9132910173ffffffffffffffffffffffffffffffffffffffff9a8b168152988a1660208a015267ffffffffffffffff97881660408a0152959096166060880152608087019390935261ffff9190911660a086015263ffffffff90811660c08601526bffffffffffffffffffffffff9190911660e0850152919091166101008301529091166101208201526101400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201206101608401835280845230848301526bffffffffffffffffffffffff8716848401528a83015173ffffffffffffffffffffffffffffffffffffffff16606085015260a0808c015167ffffffffffffffff1660808087019190915260e0808e015163ffffffff90811693880193909352908d015168ffffffffffffffffff90811660c08801528a169086015260085468010000000000000000810482166101008701526c0100000000000000000000000090048116610120860152861661014085015291519298509092506130fd918891016144bf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600093845260079092529091205550929491935090915050565b60006131816040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b600080808080613193888a018a6154aa565b84519499509297509095509350915060ff168015806131b3575084518114155b806131bf575083518114155b806131cb575082518114155b806131d7575081518114155b1561323e576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4669656c6473206d75737420626520657175616c206c656e677468000000000060448201526064016109c6565b60005b818110156132a45761327a87828151811061325e5761325e614d76565b6020026020010151600090815260076020526040902054151590565b6132a457613289600183614d46565b810361329457600198505b61329d81614da5565b9050613241565b50506040805160a0810182529586526020860194909452928401919091526060830152608082015290505b9250929050565b60006132e38260206150ea565b6132ee8560206150ea565b6132fa8861014461539b565b613304919061539b565b61330e919061539b565b61331990600061539b565b9050368114613384576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f63616c6c64617461206c656e677468206d69736d61746368000000000000000060448201526064016109c6565b50505050505050565b80515160ff1660005b8181101561065e57600061343f846000015183815181106133b9576133b9614d76565b6020026020010151856020015184815181106133d7576133d7614d76565b6020026020010151866040015185815181106133f5576133f5614d76565b60200260200101518760600151868151811061341357613413614d76565b60200260200101518860800151878151811061343157613431614d76565b6020026020010151886138af565b9050600081600681111561345557613455615097565b14806134725750600181600681111561347057613470615097565b145b156134cb57835180518390811061348b5761348b614d76565b60209081029190910181015160405133815290917fc708e0440951fd63499c0f7a73819b469ee5dd3ecc356c0ab4eb7f18389009d9910160405180910390a25b506134d581614da5565b9050613396565b600854600090700100000000000000000000000000000000900464ffffffffff1685101561352557600854700100000000000000000000000000000000900464ffffffffff1694505b6008546000906127109061353f9063ffffffff16886150ea565b613549919061533a565b613553908761539b565b600854909150600090889061358c9063ffffffff6c01000000000000000000000000820481169168010000000000000000900416615130565b6135969190615130565b63ffffffff16905060006135e06000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7392505050565b90506000613601826135f285876150ea565b6135fc919061539b565b613eb5565b905060008668ffffffffffffffffff168868ffffffffffffffffff168a68ffffffffffffffffff16613633919061534e565b61363d919061534e565b9050613649818361534e565b9b9a5050505050505050505050565b6000613662610db9565b511115610d6557610d65612be7565b6000808a8a8a8a8a8a8a8a8a6040516020016136959998979695949392919061557c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e01000000000000000000000000000000000000000000000000000000000000179150509998505050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff82160361379b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016109c6565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006bffffffffffffffffffffffff821115612be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f362062697473000000000000000000000000000000000000000000000000000060648201526084016109c6565b600080848060200190518101906138c69190615648565b905060003a8261012001518361010001516138e19190615710565b64ffffffffff166138f291906150ea565b905060008460ff1661393a6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7392505050565b613944919061533a565b905060006139556135fc838561539b565b905060006139623a613eb5565b90506000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663330605298e8e868b60c0015168ffffffffffffffffff168c60e0015168ffffffffffffffffff168a6139d1919061534e565b6139db919061534e565b336040518061016001604052808f6000015181526020018f6020015173ffffffffffffffffffffffffffffffffffffffff1681526020018f604001516bffffffffffffffffffffffff1681526020018f6060015173ffffffffffffffffffffffffffffffffffffffff1681526020018f6080015167ffffffffffffffff1681526020018f60a0015163ffffffff168152602001600068ffffffffffffffffff1681526020018f60e0015168ffffffffffffffffff1681526020018f610100015164ffffffffff1681526020018f610120015164ffffffffff1681526020018f610140015163ffffffff168152506040518763ffffffff1660e01b8152600401613ae99695949392919061572e565b60408051808303816000875af1158015613b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2b91906157aa565b90925090506000826006811115613b4457613b44615097565b1480613b6157506001826006811115613b5f57613b5f615097565b145b15613d625760008e815260076020526040812055613b7f818561534e565b336000908152600b602052604081208054909190613bac9084906bffffffffffffffffffffffff1661534e565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508660e0015168ffffffffffffffffff16600c60008282829054906101000a90046bffffffffffffffffffffffff16613c12919061534e565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508660c0015168ffffffffffffffffff16600b6000613c5c613ed4565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160009081208054909190613ca29084906bffffffffffffffffffffffff1661534e565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508d7f08a4a0761e3c98d288cb4af9342660f49550d83139fb3b762b70d34bed6273688487848b60e0015160008d60c00151604051613d59969594939291906bffffffffffffffffffffffff9687168152602081019590955292909416604084015268ffffffffffffffffff9081166060840152928316608083015290911660a082015260c00190565b60405180910390a25b509c9b505050505050505050505050565b600046613d7f81613f45565b15613dfb57606c73ffffffffffffffffffffffffffffffffffffffff1663c6f7de0e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df491906157dd565b9392505050565b613e0481613f68565b15613eac5773420000000000000000000000000000000000000f73ffffffffffffffffffffffffffffffffffffffff166349948e0e8460405180608001604052806048815260200161584360489139604051602001613e649291906157f6565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401613e8f91906140c0565b602060405180830381865afa158015613dd0573d6000803e3d6000fd5b50600092915050565b600061069a613ec261286a565b612b3184670de0b6b3a76400006150ea565b60003073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f21573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ce9190615825565b600061a4b1821480613f59575062066eed82145b8061069a57505062066eee1490565b6000600a821480613f7a57506101a482145b80613f87575062aa37dc82145b80613f93575061210582145b80613fa0575062014a3382145b8061069a57505062014a341490565b604051806103e00160405280601f906020820280368337509192915050565b60008083601f840112613fe057600080fd5b50813567ffffffffffffffff811115613ff857600080fd5b6020830191508360208285010111156132cf57600080fd5b6000806020838503121561402357600080fd5b823567ffffffffffffffff81111561403a57600080fd5b61404685828601613fce565b90969095509350505050565b60005b8381101561406d578181015183820152602001614055565b50506000910152565b6000815180845261408e816020860160208601614052565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000613df46020830184614076565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff81118282101715614126576141266140d3565b60405290565b604051610160810167ffffffffffffffff81118282101715614126576141266140d3565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614197576141976140d3565b604052919050565b600082601f8301126141b057600080fd5b813567ffffffffffffffff8111156141ca576141ca6140d3565b6141fb60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614150565b81815284602083860101111561421057600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561423f57600080fd5b813567ffffffffffffffff81111561425657600080fd5b612b408482850161419f565b73ffffffffffffffffffffffffffffffffffffffff811681146129e457600080fd5b803561124281614262565b6bffffffffffffffffffffffff811681146129e457600080fd5b80356112428161428f565b600080604083850312156142c757600080fd5b82356142d281614262565b915060208301356142e28161428f565b809150509250929050565b600081518084526020808501945080840160005b8381101561433357815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614301565b509495945050505050565b602081526000613df460208301846142ed565b60006020828403121561436357600080fd5b5035919050565b60006020828403121561437c57600080fd5b813567ffffffffffffffff81111561439357600080fd5b82016101608185031215613df457600080fd5b8051825260208101516143d1602084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060408101516143f160408401826bffffffffffffffffffffffff169052565b506060810151614419606084018273ffffffffffffffffffffffffffffffffffffffff169052565b506080810151614435608084018267ffffffffffffffff169052565b5060a081015161444d60a084018263ffffffff169052565b5060c081015161446a60c084018268ffffffffffffffffff169052565b5060e081015161448760e084018268ffffffffffffffffff169052565b506101008181015164ffffffffff9081169184019190915261012080830151909116908301526101409081015163ffffffff16910152565b610160810161069a82846143a6565b60008083601f8401126144e057600080fd5b50813567ffffffffffffffff8111156144f857600080fd5b6020830191508360208260051b85010111156132cf57600080fd5b60008060008060008060008060e0898b03121561452f57600080fd5b606089018a81111561454057600080fd5b8998503567ffffffffffffffff8082111561455a57600080fd5b6145668c838d01613fce565b909950975060808b013591508082111561457f57600080fd5b61458b8c838d016144ce565b909750955060a08b01359150808211156145a457600080fd5b506145b18b828c016144ce565b999c989b50969995989497949560c00135949350505050565b63ffffffff811681146129e457600080fd5b8035611242816145ca565b64ffffffffff811681146129e457600080fd5b8035611242816145e7565b803561ffff8116811461124257600080fd5b67ffffffffffffffff811681146129e457600080fd5b803561124281614617565b60ff811681146129e457600080fd5b803561124281614638565b80357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116811461124257600080fd5b6000610180828403121561469157600080fd5b614699614102565b6146a2836145dc565b81526146b0602084016145dc565b60208201526146c1604084016145dc565b60408201526146d2606084016145dc565b60608201526146e3608084016145fa565b60808201526146f460a08401614605565b60a082015261470560c0840161462d565b60c082015261471660e08401614647565b60e0820152610100614729818501614652565b9082015261012061473b8482016145dc565b9082015261014061474d848201614605565b9082015261016061475f848201614605565b908201529392505050565b815163ffffffff16815261018081016020830151614790602084018263ffffffff169052565b5060408301516147a8604084018263ffffffff169052565b5060608301516147c0606084018263ffffffff169052565b5060808301516147d9608084018264ffffffffff169052565b5060a08301516147ef60a084018261ffff169052565b5060c083015161480b60c084018267ffffffffffffffff169052565b5060e083015161482060e084018260ff169052565b50610100838101517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16908301526101208084015163ffffffff16908301526101408084015161ffff908116918401919091526101608085015191821681850152905b505092915050565b60008060008060006080868803121561489f57600080fd5b85356148aa81614617565b9450602086013567ffffffffffffffff8111156148c657600080fd5b6148d288828901613fce565b90955093505060408601356148e6816145ca565b949793965091946060013592915050565b600067ffffffffffffffff821115614911576149116140d3565b5060051b60200190565b600082601f83011261492c57600080fd5b8135602061494161493c836148f7565b614150565b82815260059290921b8401810191818101908684111561496057600080fd5b8286015b8481101561498457803561497781614262565b8352918301918301614964565b509695505050505050565b60008060008060008060c087890312156149a857600080fd5b863567ffffffffffffffff808211156149c057600080fd5b6149cc8a838b0161491b565b975060208901359150808211156149e257600080fd5b6149ee8a838b0161491b565b96506149fc60408a01614647565b95506060890135915080821115614a1257600080fd5b614a1e8a838b0161419f565b9450614a2c60808a0161462d565b935060a0890135915080821115614a4257600080fd5b50614a4f89828a0161419f565b9150509295509295509295565b600060208284031215614a6e57600080fd5b8135613df481614262565b600181811c90821680614a8d57607f821691505b6020821081036129a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b601f82111561065e57600081815260208120601f850160051c81016020861015614aed5750805b601f850160051c820191505b8181101561085157828155600101614af9565b67ffffffffffffffff831115614b2457614b246140d3565b614b3883614b328354614a79565b83614ac6565b6000601f841160018114614b8a5760008515614b545750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614c20565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614bd95786850135825560209485019460019092019101614bb9565b5086821015614c14577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006bffffffffffffffffffffffff80841680614ca457614ca4614c27565b92169190910492915050565b6bffffffffffffffffffffffff828116828216039080821115614cd557614cd5614c56565b5092915050565b805169ffffffffffffffffffff8116811461124257600080fd5b600080600080600060a08688031215614d0e57600080fd5b614d1786614cdc565b9450602086015193506040860151925060608601519150614d3a60808701614cdc565b90509295509295909350565b8181038181111561069a5761069a614c56565b600060208284031215614d6b57600080fd5b8151613df481614638565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614dd657614dd6614c56565b5060010190565b68ffffffffffffffffff811681146129e457600080fd5b803561124281614ddd565b60006101608236031215614e1257600080fd5b614e1a61412c565b823567ffffffffffffffff811115614e3157600080fd5b614e3d3682860161419f565b82525060208301356020820152614e5660408401614284565b6040820152614e67606084016142a9565b6060820152614e7860808401614df4565b6080820152614e8960a0840161462d565b60a0820152614e9a60c0840161462d565b60c0820152614eab60e084016145dc565b60e0820152610100614ebe818501614605565b90820152610120614ed084820161462d565b90820152610140614ee2848201614284565b9082015292915050565b600060208284031215614efe57600080fd5b8135613df481614617565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f3e57600080fd5b83018035915067ffffffffffffffff821115614f5957600080fd5b6020019150368190038213156132cf57600080fd5b600060208284031215614f8057600080fd5b613df482614605565b600060208284031215614f9b57600080fd5b8135613df4816145ca565b73ffffffffffffffffffffffffffffffffffffffff8a8116825267ffffffffffffffff8a166020830152881660408201526102406060820181905281018690526000610260878982850137600083890182015261ffff8716608084015260a0830186905263ffffffff851660c0840152601f88017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016830101905061504e60e08301846143a6565b9a9950505050505050505050565b60ff818116838216019081111561069a5761069a614c56565b600060ff83168061508857615088614c27565b8060ff84160491505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8183823760009101908152919050565b828152606082602083013760800192915050565b808202811582820484141761069a5761069a614c56565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b63ffffffff818116838216019080821115614cd557614cd5614c56565b600061012063ffffffff808d1684528b6020850152808b1660408501525080606084015261517d8184018a6142ed565b9050828103608084015261519181896142ed565b905060ff871660a084015282810360c08401526151ae8187614076565b905067ffffffffffffffff851660e08401528281036101008401526151d38185614076565b9c9b505050505050505050505050565b805161124281614ddd565b60006020828403121561520057600080fd5b8151613df481614ddd565b600181815b8085111561526457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561524a5761524a614c56565b8085161561525757918102915b93841c9390800290615210565b509250929050565b60008261527b5750600161069a565b816152885750600061069a565b816001811461529e57600281146152a8576152c4565b600191505061069a565b60ff8411156152b9576152b9614c56565b50506001821b61069a565b5060208310610133831016604e8410600b84101617156152e7575081810a61069a565b6152f1838361520b565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561532357615323614c56565b029392505050565b6000613df460ff84168361526c565b60008261534957615349614c27565b500490565b6bffffffffffffffffffffffff818116838216019080821115614cd557614cd5614c56565b6bffffffffffffffffffffffff81811683821602808216919082811461487f5761487f614c56565b8082018082111561069a5761069a614c56565b67ffffffffffffffff818116838216019080821115614cd557614cd5614c56565b600082601f8301126153e057600080fd5b813560206153f061493c836148f7565b82815260059290921b8401810191818101908684111561540f57600080fd5b8286015b848110156149845780358352918301918301615413565b600082601f83011261543b57600080fd5b8135602061544b61493c836148f7565b82815260059290921b8401810191818101908684111561546a57600080fd5b8286015b8481101561498457803567ffffffffffffffff81111561548e5760008081fd5b61549c8986838b010161419f565b84525091830191830161546e565b600080600080600060a086880312156154c257600080fd5b853567ffffffffffffffff808211156154da57600080fd5b6154e689838a016153cf565b965060208801359150808211156154fc57600080fd5b61550889838a0161542a565b9550604088013591508082111561551e57600080fd5b61552a89838a0161542a565b9450606088013591508082111561554057600080fd5b61554c89838a0161542a565b9350608088013591508082111561556257600080fd5b5061556f8882890161542a565b9150509295509295909350565b60006101208b835273ffffffffffffffffffffffffffffffffffffffff8b16602084015267ffffffffffffffff808b1660408501528160608501526155c38285018b6142ed565b915083820360808501526155d7828a6142ed565b915060ff881660a085015283820360c08501526155f48288614076565b90861660e085015283810361010085015290506151d38185614076565b805161124281614262565b80516112428161428f565b805161124281614617565b8051611242816145ca565b8051611242816145e7565b6000610160828403121561565b57600080fd5b61566361412c565b8251815261567360208401615611565b60208201526156846040840161561c565b604082015261569560608401615611565b60608201526156a660808401615627565b60808201526156b760a08401615632565b60a08201526156c860c084016151e3565b60c08201526156d960e084016151e3565b60e08201526101006156ec81850161563d565b908201526101206156fe84820161563d565b9082015261014061475f848201615632565b64ffffffffff818116838216019080821115614cd557614cd5614c56565b60006102008083526157428184018a614076565b905082810360208401526157568189614076565b6bffffffffffffffffffffffff88811660408601528716606085015273ffffffffffffffffffffffffffffffffffffffff86166080850152915061579f905060a08301846143a6565b979650505050505050565b600080604083850312156157bd57600080fd5b8251600781106157cc57600080fd5b60208401519092506142e28161428f565b6000602082840312156157ef57600080fd5b5051919050565b60008351615808818460208801614052565b83519083019061581c818360208801614052565b01949350505050565b60006020828403121561583757600080fd5b8151613df48161426256fe307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666a164736f6c6343000813000a",
    "sourceMap": "541:7416:23:-:0;;;1580:214;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1743:6;1751;1759:16;1777:13;1743:6;588:10:39;;373:1:57;588:10:39;586:59:58;;;;-1:-1:-1;;;586:59:58;;3457:2:83;586:59:58;;;3439:21:83;3496:2;3476:18;;;3469:30;3535:26;3515:18;;;3508:54;3579:18;;586:59:58;;;;;;;;;652:7;:18;;-1:-1:-1;;;;;;652:18:58;-1:-1:-1;;;;;652:18:58;;;;;;;;;;680:26;;;676:79;;716:32;735:12;716:18;:32::i;:::-;-1:-1:-1;;;;;;;;695:20:26;;691:65;;732:17;;-1:-1:-1;;;732:17:26;;;;;;;;;;;691:65;-1:-1:-1;;;;;761:51:26;;;;;3029:18:21::1;:60:::0;;-1:-1:-1;;;;;3029:60:21::1;::::0;;;::::1;;;::::0;;3095:15:::1;:54:::0;;-1:-1:-1;;;;;;3095:54:21::1;::::0;;::::1;::::0;;;::::1;::::0;;3156:20:::1;3169:6:::0;3156:12:::1;:20::i;:::-;2871:310:::0;;;;1580:214:23;;;;541:7416;;1528:235:58;1643:10;-1:-1:-1;;;;;1637:16:58;;;1629:52;;;;-1:-1:-1;;;1629:52:58;;3810:2:83;1629:52:58;;;3792:21:83;3849:2;3829:18;;;3822:30;3888:25;3868:18;;;3861:53;3931:18;;1629:52:58;3608:347:83;1629:52:58;1688:14;:19;;-1:-1:-1;;;;;;1688:19:58;-1:-1:-1;;;;;1688:19:58;;;;;;;;;-1:-1:-1;1746:7:58;;1719:39;;1688:19;;1746:7;;1719:39;;-1:-1:-1;1719:39:58;1528:235;:::o;3782:146:21:-;3855:12;:10;:12::i;:::-;3874:17;;:8;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3874:17:21;-1:-1:-1;;;;;;;;;;3874:17:21;;;-1:-1:-1;;;3874:17:21;;;;;-1:-1:-1;;;;;3874:17:21;;;;-1:-1:-1;;;3874:17:21;-1:-1:-1;;;;3874:17:21;;;;-1:-1:-1;;;3874:17:21;;;;;-1:-1:-1;;;;3874:17:21;;;;;;-1:-1:-1;;;;3874:17:21;;;;;;;;;-1:-1:-1;;;;;;;;3874:17:21;;;;;-1:-1:-1;;;;;;3874:17:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3874:17:21;-1:-1:-1;;;;;3874:17:21;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3874:17:21;;;;;;;;;;;;;;;;;;3902:21;;;;;3885:6;;3902:21;:::i;:::-;;;;;;;;3782:146;:::o;7740:76:23:-;7791:20;:18;:20::i;:::-;7740:76::o;1797:158:58:-;1916:7;;-1:-1:-1;;;;;1916:7:58;1902:10;:21;1894:56;;;;-1:-1:-1;;;1894:56:58;;6427:2:83;1894:56:58;;;6409:21:83;6466:2;6446:18;;;6439:30;6505:24;6485:18;;;6478:52;6547:18;;1894:56:58;6225:346:83;14:177;93:13;;-1:-1:-1;;;;;135:31:83;;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:83;;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:83;;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:83;;1518:42;;1508:70;;1574:1;1571;1564:12;1589:1661;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;3033:48;3077:2;3066:9;3062:18;3033:48;:::i;:::-;3017:14;;;3010:72;-1:-1:-1;3021:5:83;;-1:-1:-1;3125:50:83;;-1:-1:-1;3170:3:83;3155:19;;3125:50;:::i;:::-;3115:60;;3194:50;3239:3;3228:9;3224:19;3194:50;:::i;:::-;3184:60;;1589:1661;;;;;;;:::o;4551:1669::-;4798:13;;4036:10;4025:22;4013:35;;4767:3;4752:19;;4870:4;4862:6;4858:17;4852:24;4885:53;4932:4;4921:9;4917:20;4903:12;4036:10;4025:22;4013:35;;3960:94;4885:53;;4987:4;4979:6;4975:17;4969:24;5002:55;5051:4;5040:9;5036:20;5020:14;4036:10;4025:22;4013:35;;3960:94;5002:55;;5106:4;5098:6;5094:17;5088:24;5121:55;5170:4;5159:9;5155:20;5139:14;4036:10;4025:22;4013:35;;3960:94;5121:55;;5225:4;5217:6;5213:17;5207:24;5240:55;5289:4;5278:9;5274:20;5258:14;4135:12;4124:24;4112:37;;4059:96;5240:55;;5344:4;5336:6;5332:17;5326:24;5359:55;5408:4;5397:9;5393:20;5377:14;4236:6;4225:18;4213:31;;4160:90;5359:55;;5463:4;5455:6;5451:17;5445:24;5478:55;5527:4;5516:9;5512:20;5496:14;-1:-1:-1;;;;;4320:30:83;4308:43;;4255:102;5478:55;;5582:4;5574:6;5570:17;5564:24;5597:54;5645:4;5634:9;5630:20;5614:14;4429:4;4418:16;4406:29;;4362:75;5597:54;-1:-1:-1;5670:6:83;5713:15;;;5707:22;-1:-1:-1;;;;;4508:31:83;5773:18;;;4496:44;5811:6;5854:15;;;5848:22;4036:10;4025:22;5913:18;;;4013:35;5951:6;5994:15;;;5988:22;4236:6;4225:18;;;6053;;;4213:31;;;;6091:6;6135:15;;;6129:22;4225:18;6195;;;;4213:31;;;;4551:1669;:::o;6225:346::-;541:7416:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106101a35760003560e01c80638da5cb5b116100ee578063d227d24511610097578063e4ddcea611610071578063e4ddcea6146105d5578063f2f22ef1146105eb578063f2fde38b146105f3578063f6ea41f61461060657600080fd5b8063d227d2451461058a578063d328a91e146105ba578063e3d0e712146105c257600080fd5b8063b1dc65a4116100c8578063b1dc65a414610396578063ba9c924d146103a9578063c3f909d4146103bc57600080fd5b80638da5cb5b1461032e578063a631571e14610356578063afcb95d71461037657600080fd5b80637d4807871161015057806381f1b9381161012a57806381f1b938146102a657806381ff7048146102ae57806385b214cf1461031b57600080fd5b80637d480787146102765780637f15e1661461027e578063814118341461029157600080fd5b806366316d8d1161018157806366316d8d1461023c5780637212762f1461024f57806379ba50971461026e57600080fd5b8063083a5466146101a8578063181f5a77146101bd578063626f458c1461020f575b600080fd5b6101bb6101b6366004614010565b61060e565b005b6101f96040518060400160405280601c81526020017f46756e6374696f6e7320436f6f7264696e61746f722076312e332e300000000081525081565b60405161020691906140c0565b60405180910390f35b61022261021d36600461422d565b610663565b60405168ffffffffffffffffff9091168152602001610206565b6101bb61024a3660046142b4565b6106a0565b610257610859565b6040805192835260ff909116602083015201610206565b6101bb610a6c565b6101bb610b69565b6101bb61028c366004614010565b610d69565b610299610db9565b604051610206919061433e565b6101f9610e28565b6102f860015460025463ffffffff74010000000000000000000000000000000000000000830481169378010000000000000000000000000000000000000000000000009093041691565b6040805163ffffffff948516815293909216602084015290820152606001610206565b6101bb610329366004614351565b610ef9565b60005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610206565b61036961036436600461436a565b610fb6565b60405161020691906144bf565b604080516001815260006020820181905291810191909152606001610206565b6101bb6103a4366004614513565b611247565b6101bb6103b736600461467e565b61185e565b61057d6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915250604080516101808101825260085463ffffffff80821683526401000000008204811660208401526801000000000000000082048116938301939093526c01000000000000000000000000810483166060830152700100000000000000000000000000000000810464ffffffffff1660808301527501000000000000000000000000000000000000000000810461ffff90811660a084015277010000000000000000000000000000000000000000000000820467ffffffffffffffff1660c08401527f010000000000000000000000000000000000000000000000000000000000000090910460ff1660e08301526009547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81166101008401527c01000000000000000000000000000000000000000000000000000000009004909216610120820152600a5480831661014083015262010000900490911661016082015290565b604051610206919061476a565b61059d610598366004614887565b611b29565b6040516bffffffffffffffffffffffff9091168152602001610206565b6101f9611c97565b6101bb6105d036600461498f565b611cee565b6105dd61286a565b604051908152602001610206565b6102226129ae565b6101bb610601366004614a5c565b6129d3565b6102226129e7565b610616612a78565b6000819003610651576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f61065e828483614b0c565b505050565b600a5460009061069a9060649061067d9061ffff16612afb565b6106879190614c85565b6bffffffffffffffffffffffff16612b48565b92915050565b6106a8612be7565b806bffffffffffffffffffffffff166000036106e25750336000908152600b60205260409020546bffffffffffffffffffffffff1661073c565b336000908152600b60205260409020546bffffffffffffffffffffffff8083169116101561073c576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600b6020526040812080548392906107699084906bffffffffffffffffffffffff16614cb0565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506107be7f000000000000000000000000000000000000000000000000000000000000000090565b6040517f66316d8d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526bffffffffffffffffffffffff8416602483015291909116906366316d8d90604401600060405180830381600087803b15801561083d57600080fd5b505af1158015610851573d6000803e3d6000fd5b505050505050565b600080600080600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f09190614cf6565b5093505092505080426109039190614d46565b600854640100000000900463ffffffff161080156109305750600854640100000000900463ffffffff1615155b1561098d57505060085477010000000000000000000000000000000000000000000000810467ffffffffffffffff16937f010000000000000000000000000000000000000000000000000000000000000090910460ff1692509050565b600082136109cf576040517f56b22ab8000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b600d54604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051849273ffffffffffffffffffffffffffffffffffffffff169163313ce5679160048083019260209291908290030181865afa158015610a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a629190614d59565b9350935050509091565b60015473ffffffffffffffffffffffffffffffffffffffff163314610aed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016109c6565b60008054337fffffffffffffffffffffffff00000000000000000000000000000000000000008083168217845560018054909116905560405173ffffffffffffffffffffffffffffffffffffffff90921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610b71612d93565b610b79612be7565b6000610b83610db9565b905060005b8151811015610d65576000600b6000848481518110610ba957610ba9614d76565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252810191909152604001600020546bffffffffffffffffffffffff1690508015610d54576000600b6000858581518110610c0857610c08614d76565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550610c9f7f000000000000000000000000000000000000000000000000000000000000000090565b73ffffffffffffffffffffffffffffffffffffffff166366316d8d848481518110610ccc57610ccc614d76565b6020026020010151836040518363ffffffff1660e01b8152600401610d2192919073ffffffffffffffffffffffffffffffffffffffff9290921682526bffffffffffffffffffffffff16602082015260400190565b600060405180830381600087803b158015610d3b57600080fd5b505af1158015610d4f573d6000803e3d6000fd5b505050505b50610d5e81614da5565b9050610b88565b5050565b610d71612a78565b6000819003610dac576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e61065e828483614b0c565b60606006805480602002602001604051908101604052809291908181526020018280548015610e1e57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610df3575b5050505050905090565b6060600f8054610e3790614a79565b9050600003610e72576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600f8054610e7f90614a79565b80601f0160208091040260200160405190810160405280929190818152602001828054610eab90614a79565b8015610e1e5780601f10610ecd57610100808354040283529160200191610e1e565b820191906000526020600020905b815481529060010190602001808311610edb57509395945050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610f68576040517fc41a5b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008181526007602052604080822091909155517f8a4b97add3359bd6bcf5e82874363670eb5ad0f7615abddbd0ed0a3a98f0f41690610fab9083815260200190565b60405180910390a150565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101919091523373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461107e576040517fc41a5b0900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061109161108c84614dff565b612d9b565b90925090506110a66060840160408501614a5c565b825173ffffffffffffffffffffffffffffffffffffffff91909116907fbf50768ccf13bd0110ca6d53a9c4f1f3271abdd4c24a56878863ed25b20598ff326110f460c0880160a08901614eec565b61110661016089016101408a01614a5c565b6111108980614f09565b6111226101208c016101008d01614f6e565b60208c01356111386101008e0160e08f01614f89565b6040518061016001604052808e6000015181526020018e6020015173ffffffffffffffffffffffffffffffffffffffff1681526020018e604001516bffffffffffffffffffffffff1681526020018e6060015173ffffffffffffffffffffffffffffffffffffffff1681526020018e6080015167ffffffffffffffff1681526020018e60a0015163ffffffff1681526020018d68ffffffffffffffffff1681526020018e60e0015168ffffffffffffffffff1681526020018e610100015164ffffffffff1681526020018e610120015164ffffffffff1681526020018e610140015163ffffffff1681525060405161123899989796959493929190614fa6565b60405180910390a3505b919050565b600080611254898961314d565b915091508115611265575050611854565b604080518b3580825262ffffff6020808f0135600881901c9290921690840152909290917fb04e63db38c49950639fa09d29872f21f5d49d614f3a969d8adf3d4b52e41a62910160405180910390a16112c28b8b8b8b8b8b6132d6565b6003546000906002906112e09060ff8082169161010090041661505c565b6112ea9190615075565b6112f590600161505c565b60ff169050888114611363576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f77726f6e67206e756d626572206f66207369676e61747572657300000000000060448201526064016109c6565b8887146113f2576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f7265706f727420727320616e64207373206d757374206265206f66206571756160448201527f6c206c656e67746800000000000000000000000000000000000000000000000060648201526084016109c6565b3360009081526004602090815260408083208151808301909252805460ff8082168452929391929184019161010090910416600281111561143557611435615097565b600281111561144657611446615097565b905250905060028160200151600281111561146357611463615097565b141580156114ac57506006816000015160ff168154811061148657611486614d76565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff163314155b15611513576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f756e617574686f72697a6564207472616e736d6974746572000000000000000060448201526064016109c6565b5050505061151f613faf565b60008a8a6040516115319291906150c6565b604051908190038120611548918e906020016150d6565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120838301909252600080845290830152915060005b898110156118445760006001848984602081106115b1576115b1614d76565b6115be91901a601b61505c565b8e8e868181106115d0576115d0614d76565b905060200201358d8d878181106115e9576115e9614d76565b9050602002013560405160008152602001604052604051611626949392919093845260ff9290921660208401526040830152606082015260800190565b6020604051602081039080840390855afa158015611648573d6000803e3d6000fd5b5050604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081015173ffffffffffffffffffffffffffffffffffffffff811660009081526004602090815290849020838501909452835460ff808216855292965092945084019161010090041660028111156116c8576116c8615097565b60028111156116d9576116d9615097565b90525092506001836020015160028111156116f6576116f6615097565b1461175d576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f61646472657373206e6f7420617574686f72697a656420746f207369676e000060448201526064016109c6565b8251600090869060ff16601f811061177757611777614d76565b602002015173ffffffffffffffffffffffffffffffffffffffff16146117f9576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f6e6f6e2d756e69717565207369676e617475726500000000000000000000000060448201526064016109c6565b8085846000015160ff16601f811061181357611813614d76565b73ffffffffffffffffffffffffffffffffffffffff90921660209290920201525061183d81614da5565b9050611592565b5050506118508261338d565b5050505b5050505050505050565b611866612d93565b80516008805460208401516040808601516060870151608088015160a089015160c08a015160e08b015160ff167f0100000000000000000000000000000000000000000000000000000000000000027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff67ffffffffffffffff90921677010000000000000000000000000000000000000000000000029190911676ffffffffffffffffffffffffffffffffffffffffffffff61ffff9384167501000000000000000000000000000000000000000000027fffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff64ffffffffff90961670010000000000000000000000000000000002959095167fffffffffffffffffff00000000000000ffffffffffffffffffffffffffffffff63ffffffff9788166c01000000000000000000000000027fffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff9989166801000000000000000002999099167fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff9b8916640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000909d169e89169e909e179b909b17999099169b909b17959095179790971695909517179690961617929092179092556101008401516101208501519093167c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90931692909217600955610140830151600a8054610160860151841662010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000919091169290931691909117919091179055517f2e2c8535dcc25459d519f2300c114d2d2128bf6399722d04eca078461a3bf33a90610fab90839061476a565b60007f00000000000000000000000000000000000000000000000000000000000000006040517f10fc49c100000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8816600482015263ffffffff8516602482015273ffffffffffffffffffffffffffffffffffffffff91909116906310fc49c19060440160006040518083038186803b158015611bc957600080fd5b505afa158015611bdd573d6000803e3d6000fd5b5050505066038d7ea4c68000821115611c22576040517f8129bbcd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611c2c6129e7565b90506000611c6f87878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061066392505050565b90506000611c7b6129ae565b9050611c8a86868486856134dc565b9998505050505050505050565b6060600e8054611ca690614a79565b9050600003611ce1576040517f4f42be3d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600e8054610e7f90614a79565b855185518560ff16601f831115611d61576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f746f6f206d616e79207369676e6572730000000000000000000000000000000060448201526064016109c6565b80600003611dcb576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f66206d75737420626520706f736974697665000000000000000000000000000060448201526064016109c6565b818314611e59576040517f89a61989000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f6f7261636c6520616464726573736573206f7574206f6620726567697374726160448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016109c6565b611e648160036150ea565b8311611ecc576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f6661756c74792d6f7261636c65206620746f6f2068696768000000000000000060448201526064016109c6565b611ed4612a78565b6040805160c0810182528a8152602081018a905260ff89169181018290526060810188905267ffffffffffffffff8716608082015260a0810186905290611f1b9088613658565b600554156120d057600554600090611f3590600190614d46565b9050600060058281548110611f4c57611f4c614d76565b60009182526020822001546006805473ffffffffffffffffffffffffffffffffffffffff90921693509084908110611f8657611f86614d76565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff85811684526004909252604080842080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009081169091559290911680845292208054909116905560058054919250908061200657612006615101565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055019055600680548061206f5761206f615101565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550611f1b915050565b60005b815151811015612687578151805160009190839081106120f5576120f5614d76565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361217a576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f7369676e6572206d757374206e6f7420626520656d707479000000000000000060448201526064016109c6565b600073ffffffffffffffffffffffffffffffffffffffff16826020015182815181106121a8576121a8614d76565b602002602001015173ffffffffffffffffffffffffffffffffffffffff160361222d576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f7472616e736d6974746572206d757374206e6f7420626520656d70747900000060448201526064016109c6565b6000600460008460000151848151811061224957612249614d76565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002054610100900460ff16600281111561229357612293615097565b146122fa576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f7265706561746564207369676e6572206164647265737300000000000000000060448201526064016109c6565b6040805180820190915260ff8216815260016020820152825180516004916000918590811061232b5761232b614d76565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252818101929092526040016000208251815460ff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082168117835592840151919283917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016176101008360028111156123cc576123cc615097565b0217905550600091506123dc9050565b60046000846020015184815181106123f6576123f6614d76565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002054610100900460ff16600281111561244057612440615097565b146124a7576040517f89a6198900000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f7265706561746564207472616e736d697474657220616464726573730000000060448201526064016109c6565b6040805180820190915260ff8216815260208101600281525060046000846020015184815181106124da576124da614d76565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff168252818101929092526040016000208251815460ff9091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082168117835592840151919283917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000161761010083600281111561257b5761257b615097565b02179055505082518051600592508390811061259957612599614d76565b602090810291909101810151825460018101845560009384529282902090920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909316929092179091558201518051600691908390811061261557612615614d76565b60209081029190910181015182546001810184556000938452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790558061267f81614da5565b9150506120d3565b506040810151600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff909216919091179055600180547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff8116780100000000000000000000000000000000000000000000000063ffffffff438116820292909217808555920481169291829160149161273f91849174010000000000000000000000000000000000000000900416615130565b92506101000a81548163ffffffff021916908363ffffffff16021790555061279e4630600160149054906101000a900463ffffffff1663ffffffff16856000015186602001518760400151886060015189608001518a60a00151613671565b600281905582518051600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010060ff9093169290920291909117905560015460208501516040808701516060880151608089015160a08a015193517f1591690b8638f5fb2dbec82ac741805ac5da8b45dc5263f4875b0496fdce4e0598612855988b9891977401000000000000000000000000000000000000000090920463ffffffff1696909591949193919261514d565b60405180910390a15050505050505050505050565b6000806000600c8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156128da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fe9190614cf6565b5093505092505080426129119190614d46565b600854640100000000900463ffffffff1610801561293e5750600854640100000000900463ffffffff1615155b1561296b5750506009547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16919050565b600082136129a8576040517f43d4cf66000000000000000000000000000000000000000000000000000000008152600481018390526024016109c6565b50919050565b600a546000906129ce9060649061067d9062010000900461ffff16612afb565b905090565b6129db612a78565b6129e48161371c565b50565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632a905ccc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a54573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ce91906151ee565b60005473ffffffffffffffffffffffffffffffffffffffff163314612af9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016109c6565b565b6000806000612b08610859565b9092509050612b4082612b1c83601261505c565b612b2790600a61532b565b612b3190876150ea565b612b3b919061533a565b613811565b949350505050565b600068ffffffffffffffffff821115612be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203760448201527f322062697473000000000000000000000000000000000000000000000000000060648201526084016109c6565b5090565b600c546bffffffffffffffffffffffff16600003612c0157565b6000612c0b610db9565b80519091506000819003612c4b576040517f30274b3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54600090612c6a9083906bffffffffffffffffffffffff16614c85565b905060005b82811015612d355781600b6000868481518110612c8e57612c8e614d76565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a90046bffffffffffffffffffffffff16612cf6919061534e565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555080612d2e90614da5565b9050612c6f565b50612d408282615373565b600c8054600090612d609084906bffffffffffffffffffffffff16614cb0565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff160217905550505050565b612af9612a78565b6040805161016081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810182905261014081019190915260085461010083015160009161ffff7501000000000000000000000000000000000000000000909104811691161115612e59576040517fdada758700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612e688460000151610663565b9050612e726129ae565b91506000612e8b8560e001513a848860800151876134dc565b9050806bffffffffffffffffffffffff1685606001516bffffffffffffffffffffffff161015612ee7576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600954600090612f1d907c0100000000000000000000000000000000000000000000000000000000900463ffffffff164261539b565b905060003087604001518860a001518960c001516001612f3d91906153ae565b8a5180516020918201206101008d015160e08e0151604051612ff198979695948c918c9132910173ffffffffffffffffffffffffffffffffffffffff9a8b168152988a1660208a015267ffffffffffffffff97881660408a0152959096166060880152608087019390935261ffff9190911660a086015263ffffffff90811660c08601526bffffffffffffffffffffffff9190911660e0850152919091166101008301529091166101208201526101400190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201206101608401835280845230848301526bffffffffffffffffffffffff8716848401528a83015173ffffffffffffffffffffffffffffffffffffffff16606085015260a0808c015167ffffffffffffffff1660808087019190915260e0808e015163ffffffff90811693880193909352908d015168ffffffffffffffffff90811660c08801528a169086015260085468010000000000000000810482166101008701526c0100000000000000000000000090048116610120860152861661014085015291519298509092506130fd918891016144bf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600093845260079092529091205550929491935090915050565b60006131816040518060a0016040528060608152602001606081526020016060815260200160608152602001606081525090565b600080808080613193888a018a6154aa565b84519499509297509095509350915060ff168015806131b3575084518114155b806131bf575083518114155b806131cb575082518114155b806131d7575081518114155b1561323e576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4669656c6473206d75737420626520657175616c206c656e677468000000000060448201526064016109c6565b60005b818110156132a45761327a87828151811061325e5761325e614d76565b6020026020010151600090815260076020526040902054151590565b6132a457613289600183614d46565b810361329457600198505b61329d81614da5565b9050613241565b50506040805160a0810182529586526020860194909452928401919091526060830152608082015290505b9250929050565b60006132e38260206150ea565b6132ee8560206150ea565b6132fa8861014461539b565b613304919061539b565b61330e919061539b565b61331990600061539b565b9050368114613384576040517f660bd4ba00000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f63616c6c64617461206c656e677468206d69736d61746368000000000000000060448201526064016109c6565b50505050505050565b80515160ff1660005b8181101561065e57600061343f846000015183815181106133b9576133b9614d76565b6020026020010151856020015184815181106133d7576133d7614d76565b6020026020010151866040015185815181106133f5576133f5614d76565b60200260200101518760600151868151811061341357613413614d76565b60200260200101518860800151878151811061343157613431614d76565b6020026020010151886138af565b9050600081600681111561345557613455615097565b14806134725750600181600681111561347057613470615097565b145b156134cb57835180518390811061348b5761348b614d76565b60209081029190910181015160405133815290917fc708e0440951fd63499c0f7a73819b469ee5dd3ecc356c0ab4eb7f18389009d9910160405180910390a25b506134d581614da5565b9050613396565b600854600090700100000000000000000000000000000000900464ffffffffff1685101561352557600854700100000000000000000000000000000000900464ffffffffff1694505b6008546000906127109061353f9063ffffffff16886150ea565b613549919061533a565b613553908761539b565b600854909150600090889061358c9063ffffffff6c01000000000000000000000000820481169168010000000000000000900416615130565b6135969190615130565b63ffffffff16905060006135e06000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7392505050565b90506000613601826135f285876150ea565b6135fc919061539b565b613eb5565b905060008668ffffffffffffffffff168868ffffffffffffffffff168a68ffffffffffffffffff16613633919061534e565b61363d919061534e565b9050613649818361534e565b9b9a5050505050505050505050565b6000613662610db9565b511115610d6557610d65612be7565b6000808a8a8a8a8a8a8a8a8a6040516020016136959998979695949392919061557c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101207dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167e01000000000000000000000000000000000000000000000000000000000000179150509998505050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff82160361379b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016109c6565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b60006bffffffffffffffffffffffff821115612be3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201527f362062697473000000000000000000000000000000000000000000000000000060648201526084016109c6565b600080848060200190518101906138c69190615648565b905060003a8261012001518361010001516138e19190615710565b64ffffffffff166138f291906150ea565b905060008460ff1661393a6000368080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613d7392505050565b613944919061533a565b905060006139556135fc838561539b565b905060006139623a613eb5565b90506000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663330605298e8e868b60c0015168ffffffffffffffffff168c60e0015168ffffffffffffffffff168a6139d1919061534e565b6139db919061534e565b336040518061016001604052808f6000015181526020018f6020015173ffffffffffffffffffffffffffffffffffffffff1681526020018f604001516bffffffffffffffffffffffff1681526020018f6060015173ffffffffffffffffffffffffffffffffffffffff1681526020018f6080015167ffffffffffffffff1681526020018f60a0015163ffffffff168152602001600068ffffffffffffffffff1681526020018f60e0015168ffffffffffffffffff1681526020018f610100015164ffffffffff1681526020018f610120015164ffffffffff1681526020018f610140015163ffffffff168152506040518763ffffffff1660e01b8152600401613ae99695949392919061572e565b60408051808303816000875af1158015613b07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b2b91906157aa565b90925090506000826006811115613b4457613b44615097565b1480613b6157506001826006811115613b5f57613b5f615097565b145b15613d625760008e815260076020526040812055613b7f818561534e565b336000908152600b602052604081208054909190613bac9084906bffffffffffffffffffffffff1661534e565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508660e0015168ffffffffffffffffff16600c60008282829054906101000a90046bffffffffffffffffffffffff16613c12919061534e565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508660c0015168ffffffffffffffffff16600b6000613c5c613ed4565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160009081208054909190613ca29084906bffffffffffffffffffffffff1661534e565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508d7f08a4a0761e3c98d288cb4af9342660f49550d83139fb3b762b70d34bed6273688487848b60e0015160008d60c00151604051613d59969594939291906bffffffffffffffffffffffff9687168152602081019590955292909416604084015268ffffffffffffffffff9081166060840152928316608083015290911660a082015260c00190565b60405180910390a25b509c9b505050505050505050505050565b600046613d7f81613f45565b15613dfb57606c73ffffffffffffffffffffffffffffffffffffffff1663c6f7de0e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613df491906157dd565b9392505050565b613e0481613f68565b15613eac5773420000000000000000000000000000000000000f73ffffffffffffffffffffffffffffffffffffffff166349948e0e8460405180608001604052806048815260200161584360489139604051602001613e649291906157f6565b6040516020818303038152906040526040518263ffffffff1660e01b8152600401613e8f91906140c0565b602060405180830381865afa158015613dd0573d6000803e3d6000fd5b50600092915050565b600061069a613ec261286a565b612b3184670de0b6b3a76400006150ea565b60003073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613f21573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ce9190615825565b600061a4b1821480613f59575062066eed82145b8061069a57505062066eee1490565b6000600a821480613f7a57506101a482145b80613f87575062aa37dc82145b80613f93575061210582145b80613fa0575062014a3382145b8061069a57505062014a341490565b604051806103e00160405280601f906020820280368337509192915050565b60008083601f840112613fe057600080fd5b50813567ffffffffffffffff811115613ff857600080fd5b6020830191508360208285010111156132cf57600080fd5b6000806020838503121561402357600080fd5b823567ffffffffffffffff81111561403a57600080fd5b61404685828601613fce565b90969095509350505050565b60005b8381101561406d578181015183820152602001614055565b50506000910152565b6000815180845261408e816020860160208601614052565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000613df46020830184614076565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff81118282101715614126576141266140d3565b60405290565b604051610160810167ffffffffffffffff81118282101715614126576141266140d3565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614197576141976140d3565b604052919050565b600082601f8301126141b057600080fd5b813567ffffffffffffffff8111156141ca576141ca6140d3565b6141fb60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601614150565b81815284602083860101111561421057600080fd5b816020850160208301376000918101602001919091529392505050565b60006020828403121561423f57600080fd5b813567ffffffffffffffff81111561425657600080fd5b612b408482850161419f565b73ffffffffffffffffffffffffffffffffffffffff811681146129e457600080fd5b803561124281614262565b6bffffffffffffffffffffffff811681146129e457600080fd5b80356112428161428f565b600080604083850312156142c757600080fd5b82356142d281614262565b915060208301356142e28161428f565b809150509250929050565b600081518084526020808501945080840160005b8381101561433357815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101614301565b509495945050505050565b602081526000613df460208301846142ed565b60006020828403121561436357600080fd5b5035919050565b60006020828403121561437c57600080fd5b813567ffffffffffffffff81111561439357600080fd5b82016101608185031215613df457600080fd5b8051825260208101516143d1602084018273ffffffffffffffffffffffffffffffffffffffff169052565b5060408101516143f160408401826bffffffffffffffffffffffff169052565b506060810151614419606084018273ffffffffffffffffffffffffffffffffffffffff169052565b506080810151614435608084018267ffffffffffffffff169052565b5060a081015161444d60a084018263ffffffff169052565b5060c081015161446a60c084018268ffffffffffffffffff169052565b5060e081015161448760e084018268ffffffffffffffffff169052565b506101008181015164ffffffffff9081169184019190915261012080830151909116908301526101409081015163ffffffff16910152565b610160810161069a82846143a6565b60008083601f8401126144e057600080fd5b50813567ffffffffffffffff8111156144f857600080fd5b6020830191508360208260051b85010111156132cf57600080fd5b60008060008060008060008060e0898b03121561452f57600080fd5b606089018a81111561454057600080fd5b8998503567ffffffffffffffff8082111561455a57600080fd5b6145668c838d01613fce565b909950975060808b013591508082111561457f57600080fd5b61458b8c838d016144ce565b909750955060a08b01359150808211156145a457600080fd5b506145b18b828c016144ce565b999c989b50969995989497949560c00135949350505050565b63ffffffff811681146129e457600080fd5b8035611242816145ca565b64ffffffffff811681146129e457600080fd5b8035611242816145e7565b803561ffff8116811461124257600080fd5b67ffffffffffffffff811681146129e457600080fd5b803561124281614617565b60ff811681146129e457600080fd5b803561124281614638565b80357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116811461124257600080fd5b6000610180828403121561469157600080fd5b614699614102565b6146a2836145dc565b81526146b0602084016145dc565b60208201526146c1604084016145dc565b60408201526146d2606084016145dc565b60608201526146e3608084016145fa565b60808201526146f460a08401614605565b60a082015261470560c0840161462d565b60c082015261471660e08401614647565b60e0820152610100614729818501614652565b9082015261012061473b8482016145dc565b9082015261014061474d848201614605565b9082015261016061475f848201614605565b908201529392505050565b815163ffffffff16815261018081016020830151614790602084018263ffffffff169052565b5060408301516147a8604084018263ffffffff169052565b5060608301516147c0606084018263ffffffff169052565b5060808301516147d9608084018264ffffffffff169052565b5060a08301516147ef60a084018261ffff169052565b5060c083015161480b60c084018267ffffffffffffffff169052565b5060e083015161482060e084018260ff169052565b50610100838101517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16908301526101208084015163ffffffff16908301526101408084015161ffff908116918401919091526101608085015191821681850152905b505092915050565b60008060008060006080868803121561489f57600080fd5b85356148aa81614617565b9450602086013567ffffffffffffffff8111156148c657600080fd5b6148d288828901613fce565b90955093505060408601356148e6816145ca565b949793965091946060013592915050565b600067ffffffffffffffff821115614911576149116140d3565b5060051b60200190565b600082601f83011261492c57600080fd5b8135602061494161493c836148f7565b614150565b82815260059290921b8401810191818101908684111561496057600080fd5b8286015b8481101561498457803561497781614262565b8352918301918301614964565b509695505050505050565b60008060008060008060c087890312156149a857600080fd5b863567ffffffffffffffff808211156149c057600080fd5b6149cc8a838b0161491b565b975060208901359150808211156149e257600080fd5b6149ee8a838b0161491b565b96506149fc60408a01614647565b95506060890135915080821115614a1257600080fd5b614a1e8a838b0161419f565b9450614a2c60808a0161462d565b935060a0890135915080821115614a4257600080fd5b50614a4f89828a0161419f565b9150509295509295509295565b600060208284031215614a6e57600080fd5b8135613df481614262565b600181811c90821680614a8d57607f821691505b6020821081036129a8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b601f82111561065e57600081815260208120601f850160051c81016020861015614aed5750805b601f850160051c820191505b8181101561085157828155600101614af9565b67ffffffffffffffff831115614b2457614b246140d3565b614b3883614b328354614a79565b83614ac6565b6000601f841160018114614b8a5760008515614b545750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355614c20565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b82811015614bd95786850135825560209485019460019092019101614bb9565b5086821015614c14577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006bffffffffffffffffffffffff80841680614ca457614ca4614c27565b92169190910492915050565b6bffffffffffffffffffffffff828116828216039080821115614cd557614cd5614c56565b5092915050565b805169ffffffffffffffffffff8116811461124257600080fd5b600080600080600060a08688031215614d0e57600080fd5b614d1786614cdc565b9450602086015193506040860151925060608601519150614d3a60808701614cdc565b90509295509295909350565b8181038181111561069a5761069a614c56565b600060208284031215614d6b57600080fd5b8151613df481614638565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614dd657614dd6614c56565b5060010190565b68ffffffffffffffffff811681146129e457600080fd5b803561124281614ddd565b60006101608236031215614e1257600080fd5b614e1a61412c565b823567ffffffffffffffff811115614e3157600080fd5b614e3d3682860161419f565b82525060208301356020820152614e5660408401614284565b6040820152614e67606084016142a9565b6060820152614e7860808401614df4565b6080820152614e8960a0840161462d565b60a0820152614e9a60c0840161462d565b60c0820152614eab60e084016145dc565b60e0820152610100614ebe818501614605565b90820152610120614ed084820161462d565b90820152610140614ee2848201614284565b9082015292915050565b600060208284031215614efe57600080fd5b8135613df481614617565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f3e57600080fd5b83018035915067ffffffffffffffff821115614f5957600080fd5b6020019150368190038213156132cf57600080fd5b600060208284031215614f8057600080fd5b613df482614605565b600060208284031215614f9b57600080fd5b8135613df4816145ca565b73ffffffffffffffffffffffffffffffffffffffff8a8116825267ffffffffffffffff8a166020830152881660408201526102406060820181905281018690526000610260878982850137600083890182015261ffff8716608084015260a0830186905263ffffffff851660c0840152601f88017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016830101905061504e60e08301846143a6565b9a9950505050505050505050565b60ff818116838216019081111561069a5761069a614c56565b600060ff83168061508857615088614c27565b8060ff84160491505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8183823760009101908152919050565b828152606082602083013760800192915050565b808202811582820484141761069a5761069a614c56565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b63ffffffff818116838216019080821115614cd557614cd5614c56565b600061012063ffffffff808d1684528b6020850152808b1660408501525080606084015261517d8184018a6142ed565b9050828103608084015261519181896142ed565b905060ff871660a084015282810360c08401526151ae8187614076565b905067ffffffffffffffff851660e08401528281036101008401526151d38185614076565b9c9b505050505050505050505050565b805161124281614ddd565b60006020828403121561520057600080fd5b8151613df481614ddd565b600181815b8085111561526457817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561524a5761524a614c56565b8085161561525757918102915b93841c9390800290615210565b509250929050565b60008261527b5750600161069a565b816152885750600061069a565b816001811461529e57600281146152a8576152c4565b600191505061069a565b60ff8411156152b9576152b9614c56565b50506001821b61069a565b5060208310610133831016604e8410600b84101617156152e7575081810a61069a565b6152f1838361520b565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561532357615323614c56565b029392505050565b6000613df460ff84168361526c565b60008261534957615349614c27565b500490565b6bffffffffffffffffffffffff818116838216019080821115614cd557614cd5614c56565b6bffffffffffffffffffffffff81811683821602808216919082811461487f5761487f614c56565b8082018082111561069a5761069a614c56565b67ffffffffffffffff818116838216019080821115614cd557614cd5614c56565b600082601f8301126153e057600080fd5b813560206153f061493c836148f7565b82815260059290921b8401810191818101908684111561540f57600080fd5b8286015b848110156149845780358352918301918301615413565b600082601f83011261543b57600080fd5b8135602061544b61493c836148f7565b82815260059290921b8401810191818101908684111561546a57600080fd5b8286015b8481101561498457803567ffffffffffffffff81111561548e5760008081fd5b61549c8986838b010161419f565b84525091830191830161546e565b600080600080600060a086880312156154c257600080fd5b853567ffffffffffffffff808211156154da57600080fd5b6154e689838a016153cf565b965060208801359150808211156154fc57600080fd5b61550889838a0161542a565b9550604088013591508082111561551e57600080fd5b61552a89838a0161542a565b9450606088013591508082111561554057600080fd5b61554c89838a0161542a565b9350608088013591508082111561556257600080fd5b5061556f8882890161542a565b9150509295509295909350565b60006101208b835273ffffffffffffffffffffffffffffffffffffffff8b16602084015267ffffffffffffffff808b1660408501528160608501526155c38285018b6142ed565b915083820360808501526155d7828a6142ed565b915060ff881660a085015283820360c08501526155f48288614076565b90861660e085015283810361010085015290506151d38185614076565b805161124281614262565b80516112428161428f565b805161124281614617565b8051611242816145ca565b8051611242816145e7565b6000610160828403121561565b57600080fd5b61566361412c565b8251815261567360208401615611565b60208201526156846040840161561c565b604082015261569560608401615611565b60608201526156a660808401615627565b60808201526156b760a08401615632565b60a08201526156c860c084016151e3565b60c08201526156d960e084016151e3565b60e08201526101006156ec81850161563d565b908201526101206156fe84820161563d565b9082015261014061475f848201615632565b64ffffffffff818116838216019080821115614cd557614cd5614c56565b60006102008083526157428184018a614076565b905082810360208401526157568189614076565b6bffffffffffffffffffffffff88811660408601528716606085015273ffffffffffffffffffffffffffffffffffffffff86166080850152915061579f905060a08301846143a6565b979650505050505050565b600080604083850312156157bd57600080fd5b8251600781106157cc57600080fd5b60208401519092506142e28161428f565b6000602082840312156157ef57600080fd5b5051919050565b60008351615808818460208801614052565b83519083019061581c818360208801614052565b01949350505050565b60006020828403121561583757600080fd5b8151613df48161426256fe307866666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666a164736f6c6343000813000a",
    "sourceMap": "541:7416:23:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2080:225;;;;;;:::i;:::-;;:::i;:::-;;933:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4179:262:21;;;;;;:::i;:::-;;:::i;:::-;;;3842:20:83;3830:33;;;3812:52;;3800:2;3785:18;4179:262:21;3668:202:83;16576:405:21;;;;;;:::i;:::-;;:::i;5753:567::-;;;:::i;:::-;;;;5093:25:83;;;5166:4;5154:17;;;5149:2;5134:18;;5127:45;5066:18;5753:567:21;4923:255:83;1022:312:58;;;:::i;17071:502:21:-;;;:::i;2573:195:23:-;;;;;;:::i;:::-;;:::i;8222:97:39:-;;;:::i;:::-;;;;;;;:::i;1838:198:23:-;;;:::i;7803:236:39:-;;7960:13;;8002:12;:31;7960:13;;;;;;;7975:25;;;;;;7803:236;;;;;6600:10:83;6637:15;;;6619:34;;6689:15;;;;6684:2;6669:18;;6662:43;6721:18;;;6714:34;6578:2;6563:18;7803:236:39;6392:362:83;16138:187:21;;;;;;:::i;:::-;;:::i;1374:81:58:-;1421:7;1443;1374:81;;1443:7;;;;7090:74:83;;7078:2;7063:18;1374:81:58;6944:226:83;3148:1404:23;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3303:198:39:-;;;;3468:4;9633:41:83;;3401:13:39;9705:2:83;9690:18;;9683:34;;;9733:18;;;9726:51;;;;9621:2;9606:18;3303:198:39;9439:344:83;10605:2447:39;;;;;;:::i;:::-;;:::i;3782:146:21:-;;;;;;:::i;:::-;;:::i;3486:101::-;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3567:15:21;;;;;;;;3574:8;3567:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3486:101;;;;;;;;:::i;6971:633::-;;;;;;:::i;:::-;;:::i;:::-;;;16892:26:83;16880:39;;;16862:58;;16850:2;16835:18;6971:633:21;16718:208:83;2349:180:23;;;:::i;4020:2576:39:-;;;;;;:::i;:::-;;:::i;4915:493:21:-;;;:::i;:::-;;;19148:25:83;;;19136:2;19121:18;4915:493:21;19002:177:83;4481:244:21;;;:::i;843:98:58:-;;;;;;:::i;:::-;;:::i;4765:110:21:-;;;:::i;2080:225:23:-;2059:20:58;:18;:20::i;:::-;2213:1:23::1;2184:30:::0;;;2180:74:::1;;2231:16;;;;;;;;;;;;;;2180:74;2259:20;:41;2282:18:::0;;2259:20;:41:::1;:::i;:::-;;2080:225:::0;;:::o;4179:262:21:-;4405:23;;4265:6;;4370:66;;4432:3;;4388:41;;4405:23;;4388:16;:41::i;:::-;:47;;;;:::i;:::-;4370:66;;:17;:66::i;:::-;4363:73;4179:262;-1:-1:-1;;4179:262:21:o;16576:405::-;16649:18;:16;:18::i;:::-;16678:6;:11;;16688:1;16678:11;16674:169;;-1:-1:-1;16729:10:21;16708:32;;;;:20;:32;;;;;;;;16674:169;;;16778:10;16757:32;;;;:20;:32;;;;;;:41;;;;:32;;:41;16753:90;;;16815:21;;;;;;;;;;;;;;16753:90;16869:10;16848:32;;;;:20;:32;;;;;:42;;16884:6;;16848:32;:42;;16884:6;;16848:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16928:12;943:17:26;;853:112;16928:12:21;16896:80;;;;;:61;23085:55:83;;;16896:80:21;;;23067:74:83;23189:26;23177:39;;23157:18;;;23150:67;16896:61:21;;;;;;;23040:18:83;;16896:80:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16576:405;;:::o;5753:567::-;5803:7;5812:5;5828:21;5853:17;5876:15;;;;;;;;;;;:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5825:84;;;;;;;6019:9;6001:15;:27;;;;:::i;:::-;5969:8;:29;;;;;;:59;:96;;;;-1:-1:-1;6032:8:21;:29;;;;;;:33;;5969:96;5965:198;;;-1:-1:-1;;6083:8:21;:31;;;;;;;6116:39;;;;;;;-1:-1:-1;6083:31:21;-1:-1:-1;5753:567:21:o;5965:198::-;6190:1;6172:14;:19;6168:82;;6208:35;;;;;;;;19148:25:83;;;19121:18;;6208:35:21;;;;;;;;6168:82;6288:15;;:26;;;;;;;;6271:14;;6288:15;;;:24;;:26;;;;;;;;;;;;;;:15;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6255:60;;;;;;5753:567;;:::o;1022:312:58:-;1142:14;;;;1128:10;:28;1120:63;;;;;;;24657:2:83;1120:63:58;;;24639:21:83;24696:2;24676:18;;;24669:30;24735:24;24715:18;;;24708:52;24777:18;;1120:63:58;24455:346:83;1120:63:58;1190:16;1209:7;;1232:10;1222:20;;;;;;;;-1:-1:-1;1248:27:58;;;;;;;1287:42;;1209:7;;;;;1232:10;;1209:7;;1287:42;;;1067:267;1022:312::o;17071:502:21:-;17115:12;:10;:12::i;:::-;17133:18;:16;:18::i;:::-;17158:29;17190:18;:16;:18::i;:::-;17158:50;;17274:9;17269:300;17293:12;:19;17289:1;:23;17269:300;;;17327:14;17344:20;:37;17365:12;17378:1;17365:15;;;;;;;;:::i;:::-;;;;;;;;;;;;17344:37;;;;;;;;;;;;-1:-1:-1;17344:37:21;;;;;-1:-1:-1;17393:11:21;;17389:174;;17456:1;17416:20;:37;17437:12;17450:1;17437:15;;;;;;;;:::i;:::-;;;;;;;17416:37;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;17499:12;943:17:26;;853:112;17499:12:21;17467:61;;;17529:12;17542:1;17529:15;;;;;;;;:::i;:::-;;;;;;;17546:7;17467:87;;;;;;;;;;;;;;;23097:42:83;23085:55;;;;23067:74;;23189:26;23177:39;23172:2;23157:18;;23150:67;23055:2;23040:18;;22895:328;17467:87:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17389:174;-1:-1:-1;17314:3:21;;;:::i;:::-;;;17269:300;;;;17109:464;17071:502::o;2573:195:23:-;2059:20:58;:18;:20::i;:::-;2688:1:23::1;2665:24:::0;;;2661:68:::1;;2706:16;;;;;;;;;;;;;;2661:68;2734:14;:29;2751:12:::0;;2734:14;:29:::1;:::i;8222:97:39:-:0;8269:16;8300:14;8293:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8222:97;:::o;1838:198:23:-;1903:12;1927:20;:27;;;;;:::i;:::-;;;1958:1;1927:32;1923:76;;1976:16;;;;;;;;;;;;;;1923:76;2011:20;2004:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2004:27:23;;1838:198;-1:-1:-1;;;;;1838:198:23:o;16138:187:21:-;1066:10:26;:40;1088:17;1066:40;;1062:90;;1123:22;;;;;;;;;;;;;;1062:90;16250:31:21::1;::::0;;;:20:::1;:31;::::0;;;;;16243:38;;;;16292:28;::::1;::::0;::::1;::::0;16271:9;19148:25:83;;19136:2;19121:18;;19002:177;16292:28:21::1;;;;;;;;16138:187:::0;:::o;3148:1404:23:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1066:10:26;:40;1088:17;1066:40;;1062:90;;1123:22;;;;;;;;;;;;;;1062:90;3318:19:23::1;3372:22;;3386:7:::0;3372:22:::1;:::i;:::-;:13;:22::i;:::-;3343:51:::0;;-1:-1:-1;3343:51:23;-1:-1:-1;3455:26:23::1;::::0;;;::::1;::::0;::::1;;:::i;:::-;3427:20:::0;;3406:1117:::1;::::0;;;::::1;::::0;::::1;3540:9;3557:22;::::0;;;::::1;::::0;::::1;;:::i;:::-;3587:25;::::0;;;::::1;::::0;::::1;;:::i;:::-;3620:12;:7:::0;;:12:::1;:::i;:::-;3640:19;::::0;;;::::1;::::0;::::1;;:::i;:::-;3667:13;::::0;::::1;;3688:24;::::0;;;::::1;::::0;::::1;;:::i;:::-;3720:797;;;;;;;;4080:10;:20;;;3720:797;;;;3772:10;:22;;;3720:797;;;;;;3970:10;:34;;;3720:797;;;;;;3812:10;:17;;;3720:797;;;;;;3855:10;:25;;;3720:797;;;;;;3908:10;:27;;;3720:797;;;;;;4496:12;3720:797;;;;;;4118:10;:17;;;3720:797;;;;;;4172:10;:36;;;3720:797;;;;;;4244:10;:35;;;3720:797;;;;;;4032:10;:27;;;3720:797;;;;::::0;3406:1117:::1;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4530:17;1157:1:26;3148:1404:23::0;;;:::o;10605:2447:39:-;10961:15;10978:34;11016:23;11032:6;;11016:15;:23::i;:::-;10960:79;;;;11050:10;11046:37;;;11070:7;;;;11046:37;11401:53;;;11307:16;;29512:25:83;;;11434:18:39;11307:16;11369;;;;11451:1;11434:18;;;;;;;29553::83;;;29546:51;11307:16:39;;11369;;11401:53;;29485:18:83;11401:53:39;;;;;;;11830:45;11860:6;;11868:2;;11872;;11830:29;:45::i;:::-;11934:14;;11884:29;;11952:1;;11917:31;;11934:14;;;;;;11917;;;:31;:::i;:::-;11916:37;;;;:::i;:::-;:41;;11956:1;11916:41;:::i;:::-;11884:73;;;-1:-1:-1;11970:34:39;;;11966:90;;12013:43;;;;;30133:2:83;12013:43:39;;;30115:21:83;30172:2;30152:18;;;30145:30;30211:28;30191:18;;;30184:56;30257:18;;12013:43:39;29931:350:83;11966:90:39;12068:22;;;12064:92;;12099:57;;;;;30488:2:83;12099:57:39;;;30470:21:83;30527:2;30507:18;;;30500:30;30566:34;30546:18;;;30539:62;30637:10;30617:18;;;30610:38;30665:19;;12099:57:39;30286:404:83;12064:92:39;12203:10;12165:25;12193:21;;;:9;:21;;;;;;;;12165:49;;;;;;;;;;;;;;;;;;12193:21;;12165:49;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;12165:49:39;-1:-1:-1;12246:16:39;12226:11;:16;;;:36;;;;;;;;:::i;:::-;;;:87;;;;;12280:14;12295:11;:17;;;12280:33;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;12266:10;:47;;12226:87;12222:149;;;12330:41;;;;;31086:2:83;12330:41:39;;;31068:21:83;31125:2;31105:18;;;31098:30;31164:26;31144:18;;;31137:54;31208:18;;12330:41:39;30884:348:83;12222:149:39;11089:1289;;;;12384:38;;:::i;:::-;12483:9;12532:6;;12522:17;;;;;;;:::i;:::-;;;;;;;;;12505:50;;12541:13;;12505:50;;;:::i;:::-;;;;;;;;;;;;;;12495:61;;12505:50;12495:61;;;;-1:-1:-1;;;;;;;;;;;;;;12495:61:39;-1:-1:-1;12649:9:39;12644:369;12664:13;;;12644:369;;;12694:14;12711:48;12721:1;12730:5;12736:1;12730:8;;;;;;;:::i;:::-;12724:20;;12730:8;;12742:2;12724:20;:::i;:::-;12746:2;;12749:1;12746:5;;;;;;;:::i;:::-;;;;;;;12753:2;;12756:1;12753:5;;;;;;;:::i;:::-;;;;;;;12711:48;;;;;;;;;;;;;;;;;32053:25:83;;;32126:4;32114:17;;;;32109:2;32094:18;;32087:45;32163:2;32148:18;;32141:34;32206:2;32191:18;;32184:34;32040:3;32025:19;;31826:398;12711:48:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12711:48:39;;;;;;;12773:17;;;;;;;:9;12711:48;12773:17;;;;;;;12769:21;;;;;;;;;;;;;;12711:48;;-1:-1:-1;12711:48:39;;-1:-1:-1;12769:21:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;-1:-1:-1;12769:21:39;-1:-1:-1;12814:11:39;12804:1;:6;;;:21;;;;;;;;:::i;:::-;;12800:81;;12834:47;;;;;32431:2:83;12834:47:39;;;32413:21:83;32470:2;32450:18;;;32443:30;32509:32;32489:18;;;32482:60;32559:18;;12834:47:39;32229:354:83;12800:81:39;12902:7;;12922:1;;12895:6;;:15;;;;;;;;;:::i;:::-;;;;;:29;;;12891:79;;12933:37;;;;;32790:2:83;12933:37:39;;;32772:21:83;32829:2;32809:18;;;32802:30;32868:22;32848:18;;;32841:50;32908:18;;12933:37:39;32588:344:83;12891:79:39;12998:6;12980;12987:1;:7;;;12980:15;;;;;;;;;:::i;:::-;:24;;;;:15;;;;;;:24;-1:-1:-1;12679:3:39;;;:::i;:::-;;;12644:369;;;;12429:590;;13025:22;13033:13;13025:7;:22::i;:::-;10954:2098;;;10605:2447;;;;;;;;;:::o;3782:146:21:-;3855:12;:10;:12::i;:::-;3874:17;;:8;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3902:21;;;;;3885:6;;3902:21;:::i;6971:633::-;7135:6;943:17:26;7149:70:21;;;;;33137:18:83;33125:31;;7149:70:21;;;33107:50:83;7149:70:21;33193:23:83;;33173:18;;;33166:51;7149:36:21;;;;;;;;33080:18:83;;7149:70:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1075:21;7285:11;:42;7281:87;;;7344:17;;;;;;;;;;;;;;7281:87;7373:15;7391:18;:16;:18::i;:::-;7373:36;;7415:13;7431:20;7446:4;;7431:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7431:14:21;;-1:-1:-1;;;7431:20:21:i;:::-;7415:36;;7457:19;7479:22;:20;:22::i;:::-;7457:44;;7514:85;7537:16;7555:11;7568:6;7576:8;7586:12;7514:22;:85::i;:::-;7507:92;6971:633;-1:-1:-1;;;;;;;;;6971:633:21:o;2349:180:23:-;2408:12;2432:14;:21;;;;;:::i;:::-;;;2457:1;2432:26;2428:70;;2475:16;;;;;;;;;;;;;;2428:70;2510:14;2503:21;;;;;:::i;4020:2576:39:-;4261:8;:15;4278:13;:20;4300:2;2659:430;;319:2:38;2767:10:39;:28;2763:74;;;2804:33;;;;;33430:2:83;2804:33:39;;;33412:21:83;33469:2;33449:18;;;33442:30;33508:18;33488;;;33481:46;33544:18;;2804:33:39;33228:340:83;2763:74:39;2847:1;2852;2847:6;2843:54;;2862:35;;;;;33775:2:83;2862:35:39;;;33757:21:83;33814:2;33794:18;;;33787:30;33853:20;33833:18;;;33826:48;33891:18;;2862:35:39;33573:342:83;2843:54:39;2921:15;2907:10;:29;2903:95;;2945:53;;;;;34122:2:83;2945:53:39;;;34104:21:83;34161:2;34141:18;;;34134:30;34200:34;34180:18;;;34173:62;34271:6;34251:18;;;34244:34;34295:19;;2945:53:39;33920:400:83;2903:95:39;3022:5;3026:1;3022;:5;:::i;:::-;3008:10;:19;3004:73;;3036:41;;;;;34700:2:83;3036:41:39;;;34682:21:83;34739:2;34719:18;;;34712:30;34778:26;34758:18;;;34751:54;34822:18;;3036:41:39;34498:348:83;3004:73:39;2059:20:58::1;:18;:20::i;:::-;4348:223:39::2;::::0;;::::2;::::0;::::2;::::0;;;;;::::2;::::0;::::2;::::0;;;::::2;::::0;::::2;::::0;;;;;;;;;;;;::::2;::::0;::::2;::::0;;;;;;;;;;;4578:44:::2;::::0;4458:14;4578:16:::2;:44::i;:::-;4636:9;:16:::0;:21;4629:352:::2;;4738:9;:16:::0;4720:15:::2;::::0;4738:20:::2;::::0;4757:1:::2;::::0;4738:20:::2;:::i;:::-;4720:38;;4766:14;4783:9;4793:7;4783:18;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;::::2;::::0;4831:14:::2;:23:::0;;4783:18:::2;::::0;;::::2;::::0;-1:-1:-1;4831:14:39;4846:7;;4831:23;::::2;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;::::2;::::0;::::2;4869:17:::0;;::::2;::::0;;:9:::2;:17:::0;;;;;;;4862:24;;;;;;;;;4831:23;;;::::2;4901:22:::0;;;;;4894:29;;;;;;;4931:9:::2;:15:::0;;4831:23;;-1:-1:-1;4931:9:39;:15;::::2;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;;;;;;;::::2;::::0;;;;;4954:14:::2;:20:::0;;;::::2;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;;;;;;;::::2;::::0;;;;;-1:-1:-1;4629:352:39::2;::::0;-1:-1:-1;;4629:352:39::2;;5046:9;5041:747;5065:12:::0;;:19;5061:23;::::2;5041:747;;;5103:12:::0;;:15;;5130:1:::2;::::0;5103:12;5116:1;;5103:15;::::2;;;;;:::i;:::-;;;;;;;:29;;::::0;5099:83:::2;;5141:41;::::0;::::2;::::0;;35242:2:83;5141:41:39::2;::::0;::::2;35224:21:83::0;35281:2;35261:18;;;35254:30;35320:26;35300:18;;;35293:54;35364:18;;5141:41:39::2;35040:348:83::0;5099:83:39::2;5226:1;5194:34;;:4;:17;;;5212:1;5194:20;;;;;;;;:::i;:::-;;;;;;;:34;;::::0;5190:93:::2;;5237:46;::::0;::::2;::::0;;35595:2:83;5237:46:39::2;::::0;::::2;35577:21:83::0;35634:2;35614:18;;;35607:30;35673:31;35653:18;;;35646:59;35722:18;;5237:46:39::2;35393:353:83::0;5190:93:39::2;5376:10;5341:9;:26;5351:4;:12;;;5364:1;5351:15;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5341:26:::2;;::::0;;;::::2;::::0;;;;;;-1:-1:-1;5341:26:39;:31;::::2;::::0;::::2;;;:45;::::0;::::2;;;;;;:::i;:::-;;5337:98;;5395:40;::::0;::::2;::::0;;35953:2:83;5395:40:39::2;::::0;::::2;35935:21:83::0;35992:2;35972:18;;;35965:30;36031:25;36011:18;;;36004:53;36074:18;;5395:40:39::2;35751:347:83::0;5337:98:39::2;5472:29;::::0;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;;5489:11:::2;5472:29;::::0;::::2;::::0;5453:12;;:15;;5443:9:::2;::::0;-1:-1:-1;;5472:29:39;;5453:15;::::2;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5443:26:::2;;::::0;;;;::::2;::::0;;;;;;-1:-1:-1;5443:26:39;:58;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;::::2;::::0;:26;;;;:58;;;::::2;::::0;::::2;::::0;::::2;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;5553:10:39::2;::::0;-1:-1:-1;5513:50:39::2;::::0;-1:-1:-1;5513:50:39;::::2;:9;:31;5523:4;:17;;;5541:1;5523:20;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5513:31:::2;;::::0;;;::::2;::::0;;;;;;-1:-1:-1;5513:31:39;:36;::::2;::::0;::::2;;;:50;::::0;::::2;;;;;;:::i;:::-;;5509:108;;5572:45;::::0;::::2;::::0;;36305:2:83;5572:45:39::2;::::0;::::2;36287:21:83::0;36344:2;36324:18;;;36317:30;36383;36363:18;;;36356:58;36431:18;;5572:45:39::2;36103:352:83::0;5509:108:39::2;5659:34;::::0;;;;::::2;::::0;;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;5676:16;5659:34;;::::0;5625:9:::2;:31;5635:4;:17;;;5653:1;5635:20;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5625:31:::2;;::::0;;;;::::2;::::0;;;;;;-1:-1:-1;5625:31:39;:68;;;;::::2;::::0;;::::2;::::0;;::::2;::::0;::::2;::::0;;;;::::2;::::0;:31;;;;:68;;;::::2;::::0;::::2;::::0;::::2;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;;5716:12:39;;:15;;5701:9:::2;::::0;-1:-1:-1;5729:1:39;;5716:15;::::2;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5701:31;;::::2;::::0;::::2;::::0;;-1:-1:-1;5701:31:39;;;;;;;;;::::2;::::0;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;;;5760:17;::::2;::::0;:20;;5740:14:::2;::::0;5760:17;5778:1;;5760:20;::::2;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;;5740:41;;::::2;::::0;::::2;::::0;;-1:-1:-1;5740:41:39;;;;;;;::::2;::::0;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;;5086:3;::::2;::::0;::::2;:::i;:::-;;;;5041:747;;;-1:-1:-1::0;5810:6:39::2;::::0;::::2;::::0;5793:14;:23;;;::::2;;::::0;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;5857:25:39;;5888:48;;::::2;5857:25:::0;::::2;5923:12;5888:48:::0;::::2;::::0;::::2;::::0;;;::::2;::::0;;;5857:25;::::2;::::0;::::2;::::0;-1:-1:-1;;;5942:13:39::2;::::0;:18:::2;::::0;-1:-1:-1;;5942:18:39;;::::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;6008:262;6045:13;6076:4;6091:13;;;;;;;;;;;6008:262;;6114:4;:12;;;6136:4;:17;;;6163:4;:6;;;6179:4;:18;;;6207:4;:26;;;6243:4;:19;;;6008:27;:262::i;:::-;5974:12;:296:::0;;;6305:12;;:19;;6282:14;:43;;;::::2;;;::::0;;::::2;::::0;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;6426:13:39;6467:17:::2;::::0;::::2;::::0;6492:6:::2;::::0;;::::2;::::0;6506:18:::2;::::0;::::2;::::0;6532:26:::2;::::0;::::2;::::0;6566:19:::2;::::0;::::2;::::0;6337:254;;::::2;::::0;::::2;::::0;6354:25;;5974:296;;6426:13;;;::::2;;;::::0;6305:12;;6467:17;;6492:6;;6506:18;;6337:254:::2;:::i;:::-;;;;;;;;4314:2282;;4020:2576:::0;;;;;;;;;:::o;4915:493:21:-;4965:7;4983:21;5008:17;5031:18;;;;;;;;;;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4980:87;;;;;;;5177:9;5159:15;:27;;;;:::i;:::-;5127:8;:29;;;;;;:59;:96;;;;-1:-1:-1;5190:8:21;:29;;;;;;:33;;5127:96;5123:158;;;-1:-1:-1;;5240:34:21;;;;;4915:493;-1:-1:-1;4915:493:21:o;5123:158::-;5308:1;5290:14;:19;5286:82;;5326:35;;;;;;;;19148:25:83;;;19121:18;;5326:35:21;19002:177:83;5286:82:21;-1:-1:-1;5388:14:21;4915:493;-1:-1:-1;4915:493:21:o;4481:244::-;4683:29;;4543:6;;4648:72;;4716:3;;4666:47;;4683:29;;;;;4666:16;:47::i;4648:72::-;4641:79;;4481:244;:::o;843:98:58:-;2059:20;:18;:20::i;:::-;914:22:::1;933:2;914:18;:22::i;:::-;843:98:::0;:::o;4765:110:21:-;4823:6;943:17:26;4844:24:21;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1797:158:58:-;1916:7;;;;1902:10;:21;1894:56;;;;;;;38481:2:83;1894:56:58;;;38463:21:83;38520:2;38500:18;;;38493:30;38559:24;38539:18;;;38532:52;38601:18;;1894:56:58;38279:346:83;1894:56:58;1797:158::o;6324:396:21:-;6391:6;6406:18;6426:14;6444:19;:17;:19::i;:::-;6405:58;;-1:-1:-1;6405:58:21;-1:-1:-1;6648:67:21;6405:58;6686:13;6405:58;6686:2;:13;:::i;:::-;6679:21;;:2;:21;:::i;:::-;6667:33;;:9;:33;:::i;:::-;6666:48;;;;:::i;:::-;6648:17;:67::i;:::-;6641:74;6324:396;-1:-1:-1;;;;6324:396:21:o;11886:177:80:-;11942:6;11973:16;11964:25;;;11956:76;;;;;;;40460:2:83;11956:76:80;;;40442:21:83;40499:2;40479:18;;;40472:30;40538:34;40518:18;;;40511:62;40609:8;40589:18;;;40582:36;40635:19;;11956:76:80;40258:402:83;11956:76:80;-1:-1:-1;12052:5:80;11886:177::o;17872:689:21:-;17919:9;;;;;:14;17915:41;;17872:689::o;17915:41::-;18065:29;18097:18;:16;:18::i;:::-;18152:19;;18065:50;;-1:-1:-1;18121:28:21;18181:25;;;18177:72;;18223:19;;;;;;;;;;;;;;18177:72;18276:9;;18254:19;;18276:40;;18295:20;;18276:9;;:40;:::i;:::-;18254:62;;18381:9;18376:119;18400:20;18396:1;:24;18376:119;;;18476:12;18435:20;:37;18456:12;18469:1;18456:15;;;;;;;;:::i;:::-;;;;;;;18435:37;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18422:3;;;;:::i;:::-;;;18376:119;;;-1:-1:-1;18513:43:21;18535:20;18513:12;:43;:::i;:::-;18500:9;:56;;:9;;:56;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17909:652;;;17872:689::o;7740:76:23:-;7791:20;:18;:20::i;9497:1968:21:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9756:8:21;:39;;9734:19;;;9640;;9756:39;;;;;;;9734:61;;;9730:120;;;9812:31;;;;;;;;;;;;;;9730:120;9856:13;9872:28;9887:7;:12;;;9872:14;:28::i;:::-;9856:44;;9921:22;:20;:22::i;:::-;9906:37;;9949:30;9982:137;10012:7;:24;;;10044:11;10063:6;10077:7;:16;;;10101:12;9982:22;:137::i;:::-;9949:170;;10220:23;10191:52;;10192:7;:24;;;10191:52;;;10187:101;;;10260:21;;;;;;;;;;;;;;10187:101;10345:30;;10294:23;;10327:48;;10345:30;;;;;10327:15;:48;:::i;:::-;10294:82;;10382:17;10447:4;10462:7;:26;;;10498:7;:22;;;10530:7;:25;;;10558:1;10530:29;;;;:::i;:::-;10579:12;;10569:23;;;;;;;10602:19;;;;10631:24;;;;10419:375;;;;;;;;10665:23;;10698:16;;10777:9;;10419:375;41840:42:83;41909:15;;;41891:34;;41961:15;;;41956:2;41941:18;;41934:43;41996:18;42050:15;;;42045:2;42030:18;;42023:43;42102:15;;;;42097:2;42082:18;;42075:43;42149:3;42134:19;;42127:35;;;;42211:6;42199:19;;;;42193:3;42178:19;;42171:48;42238:10;42285:15;;;42279:3;42264:19;;42257:44;42350:26;42338:39;;;;42332:3;42317:19;;42310:68;42415:15;;;;42409:3;42394:19;;42387:44;42468:15;;;42462:3;42447:19;;42440:44;41817:3;41802:19;;41443:1047;10419:375:21;;;;;;;;;;;;;;10402:398;;10419:375;10402:398;;;;10820:526;;;;;;;;10912:4;10820:526;;;;;;;;;;;10933:26;;;;10820:526;;;;;;10983:22;;;;;10820:526;;;;;;;;;;11031:24;;;;;10820:526;;;;;;;;;;;10867:16;;;;10820:526;;;;;;;;;;;;;;11238:8;:34;;;;;;10820:526;;;;11306:33;;;;;10820:526;;;;;;;;;;11397:22;;10419:375;;-1:-1:-1;10402:398:21;;-1:-1:-1;11397:22:21;;10419:375;;11397:22;;:::i;:::-;;;;;;;;;;;;;;11387:33;;11397:22;11387:33;;;;11353:31;;;;:20;:31;;;;;;:67;-1:-1:-1;9497:1968:21;;;;-1:-1:-1;9497:1968:21;;-1:-1:-1;;9497:1968:21:o;5003:1514:23:-;5091:15;5108:34;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5108:34:23;5158:27;;;;;5330:67;;;;5341:6;5330:67;:::i;:::-;5440:17;;5150:247;;-1:-1:-1;5150:247:23;;-1:-1:-1;5150:247:23;;-1:-1:-1;5150:247:23;-1:-1:-1;5150:247:23;-1:-1:-1;5403:55:23;;5476:25;;;:73;;;5535:7;:14;5511:20;:38;;5476:73;:120;;;;5583:6;:13;5559:20;:37;;5476:120;:176;;;;5630:15;:22;5606:20;:46;;5476:176;:233;;;;5686:16;:23;5662:20;:47;;5476:233;5465:317;;;5731:44;;;;;45563:2:83;5731:44:23;;;45545:21:83;45602:2;45582:18;;;45575:30;45641:29;45621:18;;;45614:57;45688:18;;5731:44:23;45361:351:83;5465:317:23;5793:9;5788:488;5812:20;5808:1;:24;5788:488;;;5851:33;5870:10;5881:1;5870:13;;;;;;;;:::i;:::-;;;;;;;18764:4:21;18783:31;;;:20;:31;;;;;;:45;;;18694:139;5851:33:23;6002:5;5847:169;6032:24;6055:1;6032:20;:24;:::i;:::-;6027:1;:29;6023:247;;6257:4;6244:17;;6023:247;5834:3;;;:::i;:::-;;;5788:488;;;-1:-1:-1;;6315:191:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5003:1514:23;;;;;;:::o;9432:565:39:-;9638:16;9831:20;:2;9849;9831:20;:::i;:::-;9773;:2;9791;9773:20;:::i;:::-;9657:73;9717:6;8959:453;9657:73;:::i;:::-;:136;;;;:::i;:::-;:194;;;;:::i;:::-;:233;;9889:1;9657:233;:::i;:::-;9638:252;-1:-1:-1;9915:8:39;:27;;9911:81;;9951:41;;;;;45919:2:83;9951:41:39;;;45901:21:83;45958:2;45938:18;;;45931:30;45997:26;45977:18;;;45970:54;46041:18;;9951:41:39;45717:348:83;9911:81:39;9569:428;9432:565;;;;;;:::o;6571:1125:23:-;6685:24;;:31;6648:69;;:28;6799:893;6823:20;6819:1;:24;6799:893;;;6858:38;6940:339;6967:13;:24;;;6992:1;6967:27;;;;;;;;:::i;:::-;;;;;;;7006:13;:21;;;7028:1;7006:24;;;;;;;;:::i;:::-;;;;;;;7042:13;:20;;;7063:1;7042:23;;;;;;;;:::i;:::-;;;;;;;7077:13;:29;;;7107:1;7077:32;;;;;;;;:::i;:::-;;;;;;;7121:13;:30;;;7152:1;7121:33;;;;;;;;:::i;:::-;;;;;;;7172:20;6940:15;:339::i;:::-;6858:429;-1:-1:-1;7484:41:23;7474:6;:51;;;;;;;;:::i;:::-;;:124;;;-1:-1:-1;7547:51:23;7537:6;:61;;;;;;;;:::i;:::-;;7474:124;7461:225;;;7637:24;;:27;;7662:1;;7637:27;;;;;;:::i;:::-;;;;;;;;;;;;7622:55;;7666:10;7090:74:83;;7637:27:23;;7622:55;;7063:18:83;7622:55:23;;;;;;;7461:225;-1:-1:-1;6845:3:23;;;:::i;:::-;;;6799:893;;7829:1124:21;8152:8;:35;8022:6;;8152:35;;;;;8138:49;;8134:119;;;8211:8;:35;;;;;;;-1:-1:-1;8134:119:21;8332:8;:44;8259:34;;8380:6;;8318:58;;8332:44;;8318:11;:58;:::i;:::-;8317:69;;;;:::i;:::-;8296:91;;:11;:91;:::i;:::-;8550:8;:33;8259:128;;-1:-1:-1;8490:20:21;;8586:16;;8513:70;;8550:33;;;;;;;8513:34;;;;:70;:::i;:::-;:89;;;;:::i;:::-;8490:112;;;;8608:16;8627:50;8668:8;;8627:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8627:40:21;;-1:-1:-1;;;8627:50:21:i;:::-;8608:69;-1:-1:-1;8683:37:21;8723:72;8608:69;8741:41;8770:12;8741:26;:41;:::i;:::-;8740:54;;;;:::i;:::-;8723:16;:72::i;:::-;8683:112;;8802:16;8874:17;8867:25;;8850:13;8843:21;;8828:11;8821:19;;:43;;;;:::i;:::-;:71;;;;:::i;:::-;8802:90;-1:-1:-1;8906:42:21;8802:90;8906:30;:42;:::i;:::-;8899:49;7829:1124;-1:-1:-1;;;;;;;;;;;7829:1124:21:o;4672:173:23:-;4805:1;4777:18;:16;:18::i;:::-;:25;:29;4773:68;;;4816:18;:16;:18::i;6600:834:39:-;6922:7;6937:9;7005:8;7025:16;7053:12;7077:8;7097:13;7122:2;7136:14;7162:21;7195:14;6983:236;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;6964:263;;6983:236;6964:263;;;;7416:11;7412:15;7330:20;7387:41;;-1:-1:-1;;6600:834:39;;;;;;;;;;;:::o;1528:235:58:-;1643:10;1637:16;;;;1629:52;;;;;;;47553:2:83;1629:52:58;;;47535:21:83;47592:2;47572:18;;;47565:30;47631:25;47611:18;;;47604:53;47674:18;;1629:52:58;47351:347:83;1629:52:58;1688:14;:19;;;;;;;;;;;;;;-1:-1:-1;1746:7:58;;1719:39;;1688:19;;1746:7;;1719:39;;-1:-1:-1;1719:39:58;1528:235;:::o;10458:177:80:-;10514:6;10545:16;10536:25;;;10528:76;;;;;;;47905:2:83;10528:76:80;;;47887:21:83;47944:2;47924:18;;;47917:30;47983:34;47963:18;;;47956:62;48054:8;48034:18;;;48027:36;48080:19;;10528:76:80;47703:402:83;12126:3655:21;12392:31;12431:46;12491:15;12480:59;;;;;;;;;;;;:::i;:::-;12431:108;;12546:22;12650:11;12611:10;:35;;;12572:10;:36;;;:74;;;;:::i;:::-;12571:90;;;;;;:::i;:::-;12546:115;;12667:21;12744:15;12691:68;;:50;12732:8;;12691:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12691:40:21;;-1:-1:-1;;;12691:50:21:i;:::-;:68;;;;:::i;:::-;12667:92;-1:-1:-1;12802:23:21;12828:48;12845:30;12667:92;12845:14;:30;:::i;12828:48::-;12802:74;;12882:18;12903:29;12920:11;12903:16;:29::i;:::-;12882:50;-1:-1:-1;13017:42:21;;943:17:26;13089:20:21;;;13117:8;13133:3;13144:11;13516:10;:19;;;13477:58;;13496:10;:17;;;13477:36;;:16;:36;;;;:::i;:::-;:58;;;;:::i;:::-;13543:10;13561:757;;;;;;;;14110:10;:20;;;13561:757;;;;13802:10;:22;;;13561:757;;;;;;14000:10;:34;;;13561:757;;;;;;13842:10;:17;;;13561:757;;;;;;13885:10;:25;;;13561:757;;;;;;13938:10;:27;;;13561:757;;;;;;13610:1;13561:757;;;;;;14148:10;:17;;;13561:757;;;;;;14202:10;:36;;;13561:757;;;;;;14274:10;:35;;;13561:757;;;;;;14062:10;:27;;;13561:757;;;;;13089:1235;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13016:1308;;-1:-1:-1;13016:1308:21;-1:-1:-1;14580:41:21;14566:10;:55;;;;;;;;:::i;:::-;;:130;;;-1:-1:-1;14645:51:21;14631:10;:65;;;;;;;;:::i;:::-;;14566:130;14555:1199;;;14718:31;;;;:20;:31;;;;;14711:38;14857:36;14876:17;14857:16;:36;:::i;:::-;14842:10;14821:32;;;;:20;:32;;;;;:72;;:32;;;:72;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15052:10;:17;;;15039:30;;:9;;:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15167:10;:19;;;15133:53;;:20;:30;15154:8;:6;:8::i;:::-;15133:30;;;;;;;;;;;;;-1:-1:-1;15133:30:21;;;:53;;:30;;-1:-1:-1;15133:53:21;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15396:9;15361:386;15428:11;15464:13;15506:17;15546:10;:17;;;15689:1;15719:10;:19;;;15361:386;;;;;;;;;;51766:26:83;51819:15;;;51801:34;;51866:2;51851:18;;51844:34;;;;51914:15;;;;51909:2;51894:18;;51887:43;51949:20;52005:15;;;52000:2;51985:18;;51978:43;52058:15;;;52052:3;52037:19;;52030:44;52111:15;;;52105:3;52090:19;;52083:44;51743:3;51728:19;;51470:663;15361:386:21;;;;;;;;14555:1199;-1:-1:-1;15766:10:21;12126:3655;-1:-1:-1;;;;;;;;;;;;12126:3655:21:o;2784:379:35:-;2864:16;2906:13;2929:27;2906:13;2929:18;:27::i;:::-;2925:220;;;777:42;2973:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2966:37;2784:379;-1:-1:-1;;;2784:379:35:o;2925:220::-;3020:27;3039:7;3020:18;:27::i;:::-;3016:129;;;1673:42;3064:27;;;3105:10;3117:19;;;;;;;;;;;;;;;;;3092:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3064:74;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3016:129;-1:-1:-1;3157:1:35;;2784:379;-1:-1:-1;;2784:379:35:o;5412:301:21:-;5479:6;5649:59;5688:19;:17;:19::i;:::-;5668:16;5675:9;5668:4;:16;:::i;7860:95:23:-;7910:13;7938:4;:10;;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3255:226:35:-;3323:4;937:5;3348:7;:31;:79;;;;1001:6;3389:7;:38;3348:79;:128;;;-1:-1:-1;;1067:6:35;3437:39;;3255:226::o;3657:332::-;3725:4;1864:2;3750:7;:30;:69;;;;1916:3;3790:7;:29;3750:69;:109;;;;1970:8;3829:7;:30;3750:109;:151;;;;2126:4;3869:7;:32;3750:151;:192;;;;2182:5;3911:7;:31;3750:192;:234;;;-1:-1:-1;;2240:5:35;3952:32;;3657:332::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:347:83:-;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:83;;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:83;-1:-1:-1;;;;366:409:83:o;780:250::-;865:1;875:113;889:6;886:1;883:13;875:113;;;965:11;;;959:18;946:11;;;939:39;911:2;904:10;875:113;;;-1:-1:-1;;1022:1:83;1004:16;;997:27;780:250::o;1035:330::-;1077:3;1115:5;1109:12;1142:6;1137:3;1130:19;1158:76;1227:6;1220:4;1215:3;1211:14;1204:4;1197:5;1193:16;1158:76;:::i;:::-;1279:2;1267:15;1284:66;1263:88;1254:98;;;;1354:4;1250:109;;1035:330;-1:-1:-1;;1035:330:83:o;1370:220::-;1519:2;1508:9;1501:21;1482:4;1539:45;1580:2;1569:9;1565:18;1557:6;1539:45;:::i;1595:184::-;1647:77;1644:1;1637:88;1744:4;1741:1;1734:15;1768:4;1765:1;1758:15;1784:252;1856:2;1850:9;1898:3;1886:16;;1932:18;1917:34;;1953:22;;;1914:62;1911:88;;;1979:18;;:::i;:::-;2015:2;2008:22;1784:252;:::o;2041:255::-;2113:2;2107:9;2155:6;2143:19;;2192:18;2177:34;;2213:22;;;2174:62;2171:88;;;2239:18;;:::i;2301:334::-;2372:2;2366:9;2428:2;2418:13;;2433:66;2414:86;2402:99;;2531:18;2516:34;;2552:22;;;2513:62;2510:88;;;2578:18;;:::i;:::-;2614:2;2607:22;2301:334;;-1:-1:-1;2301:334:83:o;2640:589::-;2682:5;2735:3;2728:4;2720:6;2716:17;2712:27;2702:55;;2753:1;2750;2743:12;2702:55;2789:6;2776:20;2815:18;2811:2;2808:26;2805:52;;;2837:18;;:::i;:::-;2881:114;2989:4;2920:66;2913:4;2909:2;2905:13;2901:86;2897:97;2881:114;:::i;:::-;3020:2;3011:7;3004:19;3066:3;3059:4;3054:2;3046:6;3042:15;3038:26;3035:35;3032:55;;;3083:1;3080;3073:12;3032:55;3148:2;3141:4;3133:6;3129:17;3122:4;3113:7;3109:18;3096:55;3196:1;3171:16;;;3189:4;3167:27;3160:38;;;;3175:7;2640:589;-1:-1:-1;;;2640:589:83:o;3234:320::-;3302:6;3355:2;3343:9;3334:7;3330:23;3326:32;3323:52;;;3371:1;3368;3361:12;3323:52;3411:9;3398:23;3444:18;3436:6;3433:30;3430:50;;;3476:1;3473;3466:12;3430:50;3499:49;3540:7;3531:6;3520:9;3516:22;3499:49;:::i;3875:154::-;3961:42;3954:5;3950:54;3943:5;3940:65;3930:93;;4019:1;4016;4009:12;4034:134;4102:20;;4131:31;4102:20;4131:31;:::i;4173:137::-;4258:26;4251:5;4247:38;4240:5;4237:49;4227:77;;4300:1;4297;4290:12;4315:132;4382:20;;4411:30;4382:20;4411:30;:::i;4452:386::-;4519:6;4527;4580:2;4568:9;4559:7;4555:23;4551:32;4548:52;;;4596:1;4593;4586:12;4548:52;4635:9;4622:23;4654:31;4679:5;4654:31;:::i;:::-;4704:5;-1:-1:-1;4761:2:83;4746:18;;4733:32;4774;4733;4774;:::i;:::-;4825:7;4815:17;;;4452:386;;;;;:::o;5315:484::-;5368:3;5406:5;5400:12;5433:6;5428:3;5421:19;5459:4;5488:2;5483:3;5479:12;5472:19;;5525:2;5518:5;5514:14;5546:1;5556:218;5570:6;5567:1;5564:13;5556:218;;;5635:13;;5650:42;5631:62;5619:75;;5714:12;;;;5749:15;;;;5592:1;5585:9;5556:218;;;-1:-1:-1;5790:3:83;;5315:484;-1:-1:-1;;;;;5315:484:83:o;5804:261::-;5983:2;5972:9;5965:21;5946:4;6003:56;6055:2;6044:9;6040:18;6032:6;6003:56;:::i;6759:180::-;6818:6;6871:2;6859:9;6850:7;6846:23;6842:32;6839:52;;;6887:1;6884;6877:12;6839:52;-1:-1:-1;6910:23:83;;6759:180;-1:-1:-1;6759:180:83:o;7175:392::-;7266:6;7319:2;7307:9;7298:7;7294:23;7290:32;7287:52;;;7335:1;7332;7325:12;7287:52;7375:9;7362:23;7408:18;7400:6;7397:30;7394:50;;;7440:1;7437;7430:12;7394:50;7463:22;;7519:3;7501:16;;;7497:26;7494:46;;;7536:1;7533;7526:12;7895:1276;7977:5;7971:12;7966:3;7959:25;8030:4;8023:5;8019:16;8013:23;8045:48;8087:4;8082:3;8078:14;8064:12;5260:42;5249:54;5237:67;;5183:127;8045:48;;8141:4;8134:5;8130:16;8124:23;8156:49;8199:4;8194:3;8190:14;8174;7648:26;7637:38;7625:51;;7572:110;8156:49;;8253:4;8246:5;8242:16;8236:23;8268:50;8312:4;8307:3;8303:14;8287;5260:42;5249:54;5237:67;;5183:127;8268:50;;8366:4;8359:5;8355:16;8349:23;8381:49;8424:4;8419:3;8415:14;8399;7763:18;7752:30;7740:43;;7687:102;8381:49;;8478:4;8471:5;8467:16;8461:23;8493:49;8536:4;8531:3;8527:14;8511;6369:10;6358:22;6346:35;;6293:94;8493:49;;8590:4;8583:5;8579:16;8573:23;8605:49;8648:4;8643:3;8639:14;8623;3635:20;3624:32;3612:45;;3559:104;8605:49;;8702:4;8695:5;8691:16;8685:23;8717:49;8760:4;8755:3;8751:14;8735;3635:20;3624:32;3612:45;;3559:104;8717:49;-1:-1:-1;8785:6:83;8828:14;;;8822:21;7870:12;7859:24;;;8886:12;;;7847:37;;;;8918:6;8961:14;;;8955:21;7859:24;;;9019:12;;;7847:37;9051:6;9094:14;;;9088:21;6369:10;6358:22;9152:12;;6346:35;7895:1276::o;9176:258::-;9368:3;9353:19;;9381:47;9357:9;9410:6;9381:47;:::i;9788:367::-;9851:8;9861:6;9915:3;9908:4;9900:6;9896:17;9892:27;9882:55;;9933:1;9930;9923:12;9882:55;-1:-1:-1;9956:20:83;;9999:18;9988:30;;9985:50;;;10031:1;10028;10021:12;9985:50;10068:4;10060:6;10056:17;10044:29;;10128:3;10121:4;10111:6;10108:1;10104:14;10096:6;10092:27;10088:38;10085:47;10082:67;;;10145:1;10142;10135:12;10160:1276;10345:6;10353;10361;10369;10377;10385;10393;10401;10454:3;10442:9;10433:7;10429:23;10425:33;10422:53;;;10471:1;10468;10461:12;10422:53;10509:2;10498:9;10494:18;10531:7;10527:2;10524:15;10521:35;;;10552:1;10549;10542:12;10521:35;10575:9;;-1:-1:-1;10607:16:83;10642:18;10672:14;;;10669:34;;;10699:1;10696;10689:12;10669:34;10738:58;10788:7;10779:6;10768:9;10764:22;10738:58;:::i;:::-;10815:8;;-1:-1:-1;10712:84:83;-1:-1:-1;10903:3:83;10888:19;;10875:33;;-1:-1:-1;10920:16:83;;;10917:36;;;10949:1;10946;10939:12;10917:36;10988:72;11052:7;11041:8;11030:9;11026:24;10988:72;:::i;:::-;11079:8;;-1:-1:-1;10962:98:83;-1:-1:-1;11167:3:83;11152:19;;11139:33;;-1:-1:-1;11184:16:83;;;11181:36;;;11213:1;11210;11203:12;11181:36;;11252:72;11316:7;11305:8;11294:9;11290:24;11252:72;:::i;:::-;10160:1276;;;;-1:-1:-1;10160:1276:83;;;;;;11226:98;;11425:3;11410:19;11397:33;;10160:1276;-1:-1:-1;;;;10160:1276:83:o;11441:121::-;11526:10;11519:5;11515:22;11508:5;11505:33;11495:61;;11552:1;11549;11542:12;11567:132;11634:20;;11663:30;11634:20;11663:30;:::i;11704:123::-;11789:12;11782:5;11778:24;11771:5;11768:35;11758:63;;11817:1;11814;11807:12;11832:132;11899:20;;11928:30;11899:20;11928:30;:::i;11969:159::-;12036:20;;12096:6;12085:18;;12075:29;;12065:57;;12118:1;12115;12108:12;12133:129;12218:18;12211:5;12207:30;12200:5;12197:41;12187:69;;12252:1;12249;12242:12;12267:132;12334:20;;12363:30;12334:20;12363:30;:::i;12404:114::-;12488:4;12481:5;12477:16;12470:5;12467:27;12457:55;;12508:1;12505;12498:12;12523:130;12589:20;;12618:29;12589:20;12618:29;:::i;12658:212::-;12726:20;;12786:58;12775:70;;12765:81;;12755:109;;12860:1;12857;12850:12;12875:1166;12975:6;13028:3;13016:9;13007:7;13003:23;12999:33;12996:53;;;13045:1;13042;13035:12;12996:53;13071:22;;:::i;:::-;13116:28;13134:9;13116:28;:::i;:::-;13109:5;13102:43;13177:37;13210:2;13199:9;13195:18;13177:37;:::i;:::-;13172:2;13165:5;13161:14;13154:61;13247:37;13280:2;13269:9;13265:18;13247:37;:::i;:::-;13242:2;13235:5;13231:14;13224:61;13317:37;13350:2;13339:9;13335:18;13317:37;:::i;:::-;13312:2;13305:5;13301:14;13294:61;13388:38;13421:3;13410:9;13406:19;13388:38;:::i;:::-;13382:3;13375:5;13371:15;13364:63;13460:38;13493:3;13482:9;13478:19;13460:38;:::i;:::-;13454:3;13447:5;13443:15;13436:63;13532:38;13565:3;13554:9;13550:19;13532:38;:::i;:::-;13526:3;13519:5;13515:15;13508:63;13604:37;13636:3;13625:9;13621:19;13604:37;:::i;:::-;13598:3;13591:5;13587:15;13580:62;13661:3;13696:38;13730:2;13719:9;13715:18;13696:38;:::i;:::-;13680:14;;;13673:62;13754:3;13789:37;13807:18;;;13789:37;:::i;:::-;13773:14;;;13766:61;13846:3;13881:37;13899:18;;;13881:37;:::i;:::-;13865:14;;;13858:61;13938:3;13973:37;13991:18;;;13973:37;:::i;:::-;13957:14;;;13950:61;13961:5;12875:1166;-1:-1:-1;;;12875:1166:83:o;14289:1669::-;14536:13;;6369:10;6358:22;6346:35;;14505:3;14490:19;;14608:4;14600:6;14596:17;14590:24;14623:53;14670:4;14659:9;14655:20;14641:12;6369:10;6358:22;6346:35;;6293:94;14623:53;;14725:4;14717:6;14713:17;14707:24;14740:55;14789:4;14778:9;14774:20;14758:14;6369:10;6358:22;6346:35;;6293:94;14740:55;;14844:4;14836:6;14832:17;14826:24;14859:55;14908:4;14897:9;14893:20;14877:14;6369:10;6358:22;6346:35;;6293:94;14859:55;;14963:4;14955:6;14951:17;14945:24;14978:55;15027:4;15016:9;15012:20;14996:14;7870:12;7859:24;7847:37;;7794:96;14978:55;;15082:4;15074:6;15070:17;15064:24;15097:55;15146:4;15135:9;15131:20;15115:14;14122:6;14111:18;14099:31;;14046:90;15097:55;;15201:4;15193:6;15189:17;15183:24;15216:55;15265:4;15254:9;15250:20;15234:14;7763:18;7752:30;7740:43;;7687:102;15216:55;;15320:4;15312:6;15308:17;15302:24;15335:54;15383:4;15372:9;15368:20;15352:14;4910:4;4899:16;4887:29;;4843:75;15335:54;-1:-1:-1;15408:6:83;15451:15;;;15445:22;14218:58;14207:70;15511:18;;;14195:83;15549:6;15592:15;;;15586:22;6369:10;6358:22;15651:18;;;6346:35;15689:6;15732:15;;;15726:22;14122:6;14111:18;;;15791;;;14099:31;;;;15829:6;15873:15;;;15867:22;14111:18;;;15933;;;14099:31;15829:6;15898:54;;;14289:1669;;;;:::o;15963:750::-;16058:6;16066;16074;16082;16090;16143:3;16131:9;16122:7;16118:23;16114:33;16111:53;;;16160:1;16157;16150:12;16111:53;16199:9;16186:23;16218:30;16242:5;16218:30;:::i;:::-;16267:5;-1:-1:-1;16323:2:83;16308:18;;16295:32;16350:18;16339:30;;16336:50;;;16382:1;16379;16372:12;16336:50;16421:58;16471:7;16462:6;16451:9;16447:22;16421:58;:::i;:::-;16498:8;;-1:-1:-1;16395:84:83;-1:-1:-1;;16585:2:83;16570:18;;16557:32;16598;16557;16598;:::i;:::-;15963:750;;;;-1:-1:-1;15963:750:83;;16703:2;16688:18;16675:32;;15963:750;-1:-1:-1;;15963:750:83:o;16931:183::-;16991:4;17024:18;17016:6;17013:30;17010:56;;;17046:18;;:::i;:::-;-1:-1:-1;17091:1:83;17087:14;17103:4;17083:25;;16931:183::o;17119:737::-;17173:5;17226:3;17219:4;17211:6;17207:17;17203:27;17193:55;;17244:1;17241;17234:12;17193:55;17280:6;17267:20;17306:4;17330:60;17346:43;17386:2;17346:43;:::i;:::-;17330:60;:::i;:::-;17424:15;;;17510:1;17506:10;;;;17494:23;;17490:32;;;17455:12;;;;17534:15;;;17531:35;;;17562:1;17559;17552:12;17531:35;17598:2;17590:6;17586:15;17610:217;17626:6;17621:3;17618:15;17610:217;;;17706:3;17693:17;17723:31;17748:5;17723:31;:::i;:::-;17767:18;;17805:12;;;;17643;;17610:217;;;-1:-1:-1;17845:5:83;17119:737;-1:-1:-1;;;;;;17119:737:83:o;17861:1136::-;18030:6;18038;18046;18054;18062;18070;18123:3;18111:9;18102:7;18098:23;18094:33;18091:53;;;18140:1;18137;18130:12;18091:53;18180:9;18167:23;18209:18;18250:2;18242:6;18239:14;18236:34;;;18266:1;18263;18256:12;18236:34;18289:61;18342:7;18333:6;18322:9;18318:22;18289:61;:::i;:::-;18279:71;;18403:2;18392:9;18388:18;18375:32;18359:48;;18432:2;18422:8;18419:16;18416:36;;;18448:1;18445;18438:12;18416:36;18471:63;18526:7;18515:8;18504:9;18500:24;18471:63;:::i;:::-;18461:73;;18553:36;18585:2;18574:9;18570:18;18553:36;:::i;:::-;18543:46;;18642:2;18631:9;18627:18;18614:32;18598:48;;18671:2;18661:8;18658:16;18655:36;;;18687:1;18684;18677:12;18655:36;18710:51;18753:7;18742:8;18731:9;18727:24;18710:51;:::i;:::-;18700:61;;18780:38;18813:3;18802:9;18798:19;18780:38;:::i;:::-;18770:48;;18871:3;18860:9;18856:19;18843:33;18827:49;;18901:2;18891:8;18888:16;18885:36;;;18917:1;18914;18907:12;18885:36;;18940:51;18983:7;18972:8;18961:9;18957:24;18940:51;:::i;:::-;18930:61;;;17861:1136;;;;;;;;:::o;19184:247::-;19243:6;19296:2;19284:9;19275:7;19271:23;19267:32;19264:52;;;19312:1;19309;19302:12;19264:52;19351:9;19338:23;19370:31;19395:5;19370:31;:::i;19436:437::-;19515:1;19511:12;;;;19558;;;19579:61;;19633:4;19625:6;19621:17;19611:27;;19579:61;19686:2;19678:6;19675:14;19655:18;19652:38;19649:218;;19723:77;19720:1;19713:88;19824:4;19821:1;19814:15;19852:4;19849:1;19842:15;20003:544;20104:2;20099:3;20096:11;20093:448;;;20140:1;20165:5;20161:2;20154:17;20210:4;20206:2;20196:19;20280:2;20268:10;20264:19;20261:1;20257:27;20251:4;20247:38;20316:4;20304:10;20301:20;20298:47;;;-1:-1:-1;20339:4:83;20298:47;20394:2;20389:3;20385:12;20382:1;20378:20;20372:4;20368:31;20358:41;;20449:82;20467:2;20460:5;20457:13;20449:82;;;20512:17;;;20493:1;20482:13;20449:82;;20783:1321;20905:18;20900:3;20897:27;20894:53;;;20927:18;;:::i;:::-;20956:93;21045:3;21005:38;21037:4;21031:11;21005:38;:::i;:::-;20999:4;20956:93;:::i;:::-;21075:1;21100:2;21095:3;21092:11;21117:1;21112:734;;;;21890:1;21907:3;21904:93;;;-1:-1:-1;21963:19:83;;;21950:33;21904:93;20689:66;20680:1;20676:11;;;20672:84;20668:89;20658:100;20764:1;20760:11;;;20655:117;22010:78;;21085:1013;;21112:734;19950:1;19943:14;;;19987:4;19974:18;;21157:66;21148:76;;;21307:9;21329:229;21343:7;21340:1;21337:14;21329:229;;;21432:19;;;21419:33;21404:49;;21539:4;21524:20;;;;21492:1;21480:14;;;;21359:12;21329:229;;;21333:3;21586;21577:7;21574:16;21571:219;;;21706:66;21700:3;21694;21691:1;21687:11;21683:21;21679:94;21675:99;21662:9;21657:3;21653:19;21640:33;21636:139;21628:6;21621:155;21571:219;;;21833:1;21827:3;21824:1;21820:11;21816:19;21810:4;21803:33;21085:1013;;;20783:1321;;;:::o;22109:184::-;22161:77;22158:1;22151:88;22258:4;22255:1;22248:15;22282:4;22279:1;22272:15;22298:184;22350:77;22347:1;22340:88;22447:4;22444:1;22437:15;22471:4;22468:1;22461:15;22487:207;22526:1;22552:26;22605:2;22602:1;22598:10;22627:3;22617:37;;22634:18;;:::i;:::-;22672:10;;22668:20;;;;;22487:207;-1:-1:-1;;22487:207:83:o;22699:191::-;22767:26;22826:10;;;22814;;;22810:27;;22849:12;;;22846:38;;;22864:18;;:::i;:::-;22846:38;22699:191;;;;:::o;23228:179::-;23306:13;;23359:22;23348:34;;23338:45;;23328:73;;23397:1;23394;23387:12;23412:473;23515:6;23523;23531;23539;23547;23600:3;23588:9;23579:7;23575:23;23571:33;23568:53;;;23617:1;23614;23607:12;23568:53;23640:39;23669:9;23640:39;:::i;:::-;23630:49;;23719:2;23708:9;23704:18;23698:25;23688:35;;23763:2;23752:9;23748:18;23742:25;23732:35;;23807:2;23796:9;23792:18;23786:25;23776:35;;23830:49;23874:3;23863:9;23859:19;23830:49;:::i;:::-;23820:59;;23412:473;;;;;;;;:::o;23890:128::-;23957:9;;;23978:11;;;23975:37;;;23992:18;;:::i;24203:247::-;24271:6;24324:2;24312:9;24303:7;24299:23;24295:32;24292:52;;;24340:1;24337;24330:12;24292:52;24372:9;24366:16;24391:29;24414:5;24391:29;:::i;24806:184::-;24858:77;24855:1;24848:88;24955:4;24952:1;24945:15;24979:4;24976:1;24969:15;24995:195;25034:3;25065:66;25058:5;25055:77;25052:103;;25135:18;;:::i;:::-;-1:-1:-1;25182:1:83;25171:13;;24995:195::o;25377:131::-;25462:20;25455:5;25451:32;25444:5;25441:43;25431:71;;25498:1;25495;25488:12;25513:132;25580:20;;25609:30;25580:20;25609:30;:::i;25650:1206::-;25762:9;25821:6;25813:5;25797:14;25793:26;25789:39;25786:59;;;25841:1;25838;25831:12;25786:59;25869:22;;:::i;:::-;25927:5;25914:19;25956:18;25948:6;25945:30;25942:50;;;25988:1;25985;25978:12;25942:50;26017:52;26054:14;26045:6;26038:5;26034:18;26017:52;:::i;:::-;26008:7;26001:69;;26128:2;26121:5;26117:14;26104:28;26099:2;26090:7;26086:16;26079:54;26167:34;26197:2;26190:5;26186:14;26167:34;:::i;:::-;26162:2;26153:7;26149:16;26142:60;26236:33;26265:2;26258:5;26254:14;26236:33;:::i;:::-;26231:2;26222:7;26218:16;26211:59;26305:34;26334:3;26327:5;26323:15;26305:34;:::i;:::-;26299:3;26290:7;26286:17;26279:61;26375:34;26404:3;26397:5;26393:15;26375:34;:::i;:::-;26369:3;26360:7;26356:17;26349:61;26445:34;26474:3;26467:5;26463:15;26445:34;:::i;:::-;26439:3;26430:7;26426:17;26419:61;26515:34;26544:3;26537:5;26533:15;26515:34;:::i;:::-;26509:3;26500:7;26496:17;26489:61;26569:3;26606:33;26635:2;26628:5;26624:14;26606:33;:::i;:::-;26588:16;;;26581:59;26659:3;26696:33;26714:14;;;26696:33;:::i;:::-;26678:16;;;26671:59;26749:3;26786:34;26805:14;;;26786:34;:::i;:::-;26768:16;;;26761:60;26772:7;25650:1206;-1:-1:-1;;25650:1206:83:o;26861:245::-;26919:6;26972:2;26960:9;26951:7;26947:23;26943:32;26940:52;;;26988:1;26985;26978:12;26940:52;27027:9;27014:23;27046:30;27070:5;27046:30;:::i;27111:580::-;27188:4;27194:6;27254:11;27241:25;27344:66;27333:8;27317:14;27313:29;27309:102;27289:18;27285:127;27275:155;;27426:1;27423;27416:12;27275:155;27453:33;;27505:20;;;-1:-1:-1;27548:18:83;27537:30;;27534:50;;;27580:1;27577;27570:12;27534:50;27613:4;27601:17;;-1:-1:-1;27644:14:83;27640:27;;;27630:38;;27627:58;;;27681:1;27678;27671:12;27696:184;27754:6;27807:2;27795:9;27786:7;27782:23;27778:32;27775:52;;;27823:1;27820;27813:12;27775:52;27846:28;27864:9;27846:28;:::i;27885:245::-;27943:6;27996:2;27984:9;27975:7;27971:23;27967:32;27964:52;;;28012:1;28009;28002:12;27964:52;28051:9;28038:23;28070:30;28094:5;28070:30;:::i;28135:1200::-;28554:42;28623:15;;;28605:34;;28687:18;28675:31;;28670:2;28655:18;;28648:59;28743:15;;28738:2;28723:18;;28716:43;28532:3;28790:2;28775:18;;28768:30;;;28814:18;;28807:34;;;28503:4;28860:3;28834:6;28905;28885:18;;;28872:48;28969:1;28940:22;;;28936:31;;28929:42;29150:6;29138:19;;29132:3;29117:19;;29110:48;29189:3;29174:19;;29167:35;;;29251:10;29239:23;;29233:3;29218:19;;29211:52;29023:2;29011:15;;29028:66;29007:88;28992:104;;28988:113;;-1:-1:-1;29272:57:83;29324:3;29309:19;;29301:6;29272:57;:::i;:::-;28135:1200;;;;;;;;;;;;:::o;29608:148::-;29696:4;29675:12;;;29689;;;29671:31;;29714:13;;29711:39;;;29730:18;;:::i;29761:165::-;29799:1;29833:4;29830:1;29826:12;29857:3;29847:37;;29864:18;;:::i;:::-;29916:3;29909:4;29906:1;29902:12;29898:22;29893:27;;;29761:165;;;;:::o;30695:184::-;30747:77;30744:1;30737:88;30844:4;30841:1;30834:15;30868:4;30865:1;30858:15;31237:271;31420:6;31412;31407:3;31394:33;31376:3;31446:16;;31471:13;;;31446:16;31237:271;-1:-1:-1;31237:271:83:o;31513:308::-;31730:6;31725:3;31718:19;31781:4;31773:6;31768:2;31763:3;31759:12;31746:40;31811:3;31802:13;;31513:308;-1:-1:-1;;31513:308:83:o;34325:168::-;34398:9;;;34429;;34446:15;;;34440:22;;34426:37;34416:71;;34467:18;;:::i;34851:184::-;34903:77;34900:1;34893:88;35000:4;34997:1;34990:15;35024:4;35021:1;35014:15;36460:172;36527:10;36557;;;36569;;;36553:27;;36592:11;;;36589:37;;;36606:18;;:::i;36637:1242::-;37079:4;37108:3;37130:10;37179:2;37171:6;37167:15;37156:9;37149:34;37219:6;37214:2;37203:9;37199:18;37192:34;37274:2;37266:6;37262:15;37257:2;37246:9;37242:18;37235:43;;37314:2;37309;37298:9;37294:18;37287:30;37340:56;37392:2;37381:9;37377:18;37369:6;37340:56;:::i;:::-;37326:70;;37445:9;37437:6;37433:22;37427:3;37416:9;37412:19;37405:51;37479:44;37516:6;37508;37479:44;:::i;:::-;37465:58;;37572:4;37564:6;37560:17;37554:3;37543:9;37539:19;37532:46;37627:9;37619:6;37615:22;37609:3;37598:9;37594:19;37587:51;37661:33;37687:6;37679;37661:33;:::i;:::-;37647:47;;37743:18;37735:6;37731:31;37725:3;37714:9;37710:19;37703:60;37812:9;37804:6;37800:22;37794:3;37783:9;37779:19;37772:51;37840:33;37866:6;37858;37840:33;:::i;:::-;37832:41;36637:1242;-1:-1:-1;;;;;;;;;;;;36637:1242:83:o;37884:136::-;37962:13;;37984:30;37962:13;37984:30;:::i;38025:249::-;38094:6;38147:2;38135:9;38126:7;38122:23;38118:32;38115:52;;;38163:1;38160;38153:12;38115:52;38195:9;38189:16;38214:30;38238:5;38214:30;:::i;38630:482::-;38719:1;38762:5;38719:1;38776:330;38797:7;38787:8;38784:21;38776:330;;;38916:4;38848:66;38844:77;38838:4;38835:87;38832:113;;;38925:18;;:::i;:::-;38975:7;38965:8;38961:22;38958:55;;;38995:16;;;;38958:55;39074:22;;;;39034:15;;;;38776:330;;;38780:3;38630:482;;;;;:::o;39117:866::-;39166:5;39196:8;39186:80;;-1:-1:-1;39237:1:83;39251:5;;39186:80;39285:4;39275:76;;-1:-1:-1;39322:1:83;39336:5;;39275:76;39367:4;39385:1;39380:59;;;;39453:1;39448:130;;;;39360:218;;39380:59;39410:1;39401:10;;39424:5;;;39448:130;39485:3;39475:8;39472:17;39469:43;;;39492:18;;:::i;:::-;-1:-1:-1;;39548:1:83;39534:16;;39563:5;;39360:218;;39662:2;39652:8;39649:16;39643:3;39637:4;39634:13;39630:36;39624:2;39614:8;39611:16;39606:2;39600:4;39597:12;39593:35;39590:77;39587:159;;;-1:-1:-1;39699:19:83;;;39731:5;;39587:159;39778:34;39803:8;39797:4;39778:34;:::i;:::-;39908:6;39840:66;39836:79;39827:7;39824:92;39821:118;;;39919:18;;:::i;:::-;39957:20;;39117:866;-1:-1:-1;;;39117:866:83:o;39988:140::-;40046:5;40075:47;40116:4;40106:8;40102:19;40096:4;40075:47;:::i;40133:120::-;40173:1;40199;40189:35;;40204:18;;:::i;:::-;-1:-1:-1;40238:9:83;;40133:120::o;40665:188::-;40732:26;40778:10;;;40790;;;40774:27;;40813:11;;;40810:37;;;40827:18;;:::i;40858:265::-;40929:26;40987:10;;;40999;;;40983:27;41030:20;;;;40929:26;41069:24;;;41059:58;;41097:18;;:::i;41128:125::-;41193:9;;;41214:10;;;41211:36;;;41227:18;;:::i;41258:180::-;41325:18;41363:10;;;41375;;;41359:27;;41398:11;;;41395:37;;;41412:18;;:::i;42495:662::-;42549:5;42602:3;42595:4;42587:6;42583:17;42579:27;42569:55;;42620:1;42617;42610:12;42569:55;42656:6;42643:20;42682:4;42706:60;42722:43;42762:2;42722:43;:::i;42706:60::-;42800:15;;;42886:1;42882:10;;;;42870:23;;42866:32;;;42831:12;;;;42910:15;;;42907:35;;;42938:1;42935;42928:12;42907:35;42974:2;42966:6;42962:15;42986:142;43002:6;42997:3;42994:15;42986:142;;;43068:17;;43056:30;;43106:12;;;;43019;;42986:142;;43162:886;43214:5;43267:3;43260:4;43252:6;43248:17;43244:27;43234:55;;43285:1;43282;43275:12;43234:55;43321:6;43308:20;43347:4;43371:60;43387:43;43427:2;43387:43;:::i;43371:60::-;43465:15;;;43551:1;43547:10;;;;43535:23;;43531:32;;;43496:12;;;;43575:15;;;43572:35;;;43603:1;43600;43593:12;43572:35;43639:2;43631:6;43627:15;43651:368;43667:6;43662:3;43659:15;43651:368;;;43753:3;43740:17;43789:18;43776:11;43773:35;43770:125;;;43849:1;43878:2;43874;43867:14;43770:125;43920:56;43972:3;43967:2;43953:11;43945:6;43941:24;43937:33;43920:56;:::i;:::-;43908:69;;-1:-1:-1;43997:12:83;;;;43684;;43651:368;;44053:1303;44309:6;44317;44325;44333;44341;44394:3;44382:9;44373:7;44369:23;44365:33;44362:53;;;44411:1;44408;44401:12;44362:53;44451:9;44438:23;44480:18;44521:2;44513:6;44510:14;44507:34;;;44537:1;44534;44527:12;44507:34;44560:61;44613:7;44604:6;44593:9;44589:22;44560:61;:::i;:::-;44550:71;;44674:2;44663:9;44659:18;44646:32;44630:48;;44703:2;44693:8;44690:16;44687:36;;;44719:1;44716;44709:12;44687:36;44742:61;44795:7;44784:8;44773:9;44769:24;44742:61;:::i;:::-;44732:71;;44856:2;44845:9;44841:18;44828:32;44812:48;;44885:2;44875:8;44872:16;44869:36;;;44901:1;44898;44891:12;44869:36;44924:61;44977:7;44966:8;44955:9;44951:24;44924:61;:::i;:::-;44914:71;;45038:2;45027:9;45023:18;45010:32;44994:48;;45067:2;45057:8;45054:16;45051:36;;;45083:1;45080;45073:12;45051:36;45106:61;45159:7;45148:8;45137:9;45133:24;45106:61;:::i;:::-;45096:71;;45220:3;45209:9;45205:19;45192:33;45176:49;;45250:2;45240:8;45237:16;45234:36;;;45266:1;45263;45256:12;45234:36;;45289:61;45342:7;45331:8;45320:9;45316:24;45289:61;:::i;:::-;45279:71;;;44053:1303;;;;;;;;:::o;46070:1276::-;46514:4;46543:3;46573:6;46562:9;46555:25;46628:42;46620:6;46616:55;46611:2;46600:9;46596:18;46589:83;46691:18;46757:2;46749:6;46745:15;46740:2;46729:9;46725:18;46718:43;46797:2;46792;46781:9;46777:18;46770:30;46823:56;46875:2;46864:9;46860:18;46852:6;46823:56;:::i;:::-;46809:70;;46928:9;46920:6;46916:22;46910:3;46899:9;46895:19;46888:51;46962:44;46999:6;46991;46962:44;:::i;:::-;46948:58;;47055:4;47047:6;47043:17;47037:3;47026:9;47022:19;47015:46;47110:9;47102:6;47098:22;47092:3;47081:9;47077:19;47070:51;47144:33;47170:6;47162;47144:33;:::i;:::-;47214:15;;;47208:3;47193:19;;47186:44;47267:22;;;47261:3;47246:19;;47239:51;47130:47;-1:-1:-1;47307:33:83;47130:47;47325:6;47307:33;:::i;48110:138::-;48189:13;;48211:31;48189:13;48211:31;:::i;48253:136::-;48331:13;;48353:30;48331:13;48353:30;:::i;48394:136::-;48472:13;;48494:30;48472:13;48494:30;:::i;48535:136::-;48613:13;;48635:30;48613:13;48635:30;:::i;48676:136::-;48754:13;;48776:30;48754:13;48776:30;:::i;48817:1173::-;48916:6;48969:3;48957:9;48948:7;48944:23;48940:33;48937:53;;;48986:1;48983;48976:12;48937:53;49012:22;;:::i;:::-;49063:9;49057:16;49050:5;49043:31;49106:49;49151:2;49140:9;49136:18;49106:49;:::i;:::-;49101:2;49094:5;49090:14;49083:73;49188:48;49232:2;49221:9;49217:18;49188:48;:::i;:::-;49183:2;49176:5;49172:14;49165:72;49269:49;49314:2;49303:9;49299:18;49269:49;:::i;:::-;49264:2;49257:5;49253:14;49246:73;49352:49;49396:3;49385:9;49381:19;49352:49;:::i;:::-;49346:3;49339:5;49335:15;49328:74;49435:49;49479:3;49468:9;49464:19;49435:49;:::i;:::-;49429:3;49422:5;49418:15;49411:74;49518:49;49562:3;49551:9;49547:19;49518:49;:::i;:::-;49512:3;49505:5;49501:15;49494:74;49601:49;49645:3;49634:9;49630:19;49601:49;:::i;:::-;49595:3;49588:5;49584:15;49577:74;49670:3;49705:48;49749:2;49738:9;49734:18;49705:48;:::i;:::-;49689:14;;;49682:72;49773:3;49808:48;49837:18;;;49808:48;:::i;:::-;49792:14;;;49785:72;49876:3;49911:48;49940:18;;;49911:48;:::i;49995:174::-;50062:12;50094:10;;;50106;;;50090:27;;50129:11;;;50126:37;;;50143:18;;:::i;50174:875::-;50496:4;50525:3;50555:2;50544:9;50537:21;50581:45;50622:2;50611:9;50607:18;50599:6;50581:45;:::i;:::-;50567:59;;50674:9;50666:6;50662:22;50657:2;50646:9;50642:18;50635:50;50702:33;50728:6;50720;50702:33;:::i;:::-;50754:26;50816:15;;;50811:2;50796:18;;50789:43;50868:15;;50863:2;50848:18;;50841:43;50933:42;50921:55;;50915:3;50900:19;;50893:84;50694:41;-1:-1:-1;50986:57:83;;-1:-1:-1;51038:3:83;51023:19;;51015:6;50986:57;:::i;:::-;50174:875;;;;;;;;;:::o;51054:411::-;51151:6;51159;51212:2;51200:9;51191:7;51187:23;51183:32;51180:52;;;51228:1;51225;51218:12;51180:52;51260:9;51254:16;51299:1;51292:5;51289:12;51279:40;;51315:1;51312;51305:12;51279:40;51388:2;51373:18;;51367:25;51338:5;;-1:-1:-1;51401:32:83;51367:25;51401:32;:::i;52138:184::-;52208:6;52261:2;52249:9;52240:7;52236:23;52232:32;52229:52;;;52277:1;52274;52267:12;52229:52;-1:-1:-1;52300:16:83;;52138:184;-1:-1:-1;52138:184:83:o;52327:492::-;52502:3;52540:6;52534:13;52556:66;52615:6;52610:3;52603:4;52595:6;52591:17;52556:66;:::i;:::-;52685:13;;52644:16;;;;52707:70;52685:13;52644:16;52754:4;52742:17;;52707:70;:::i;:::-;52793:20;;52327:492;-1:-1:-1;;;;52327:492:83:o;52824:251::-;52894:6;52947:2;52935:9;52926:7;52922:23;52918:32;52915:52;;;52963:1;52960;52953:12;52915:52;52995:9;52989:16;53014:31;53039:5;53014:31;:::i",
    "linkReferences": {},
    "immutableReferences": {
      "48101": [
        {
          "start": 1948,
          "length": 32
        },
        {
          "start": 3197,
          "length": 32
        },
        {
          "start": 3857,
          "length": 32
        },
        {
          "start": 4135,
          "length": 32
        },
        {
          "start": 6957,
          "length": 32
        },
        {
          "start": 10731,
          "length": 32
        },
        {
          "start": 14697,
          "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))": "ba9c924d"
  },
  "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\":\"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\"}],\"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\":\"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\":\"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))\":{\"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))\":{\"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\":{\"src/v0.8/functions/dev/v1_X/FunctionsBilling.sol\":{\"keccak256\":\"0x71bdbb591d2bd3d8c3d5bee55ed2bdc9c6cabeccec89946c1caf9f7346f67160\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b443826090753ae9be4bf09fffcc562a32d23c10049e38a4012e6ce1e6df51f4\",\"dweb:/ipfs/QmNYnhB8jRZtax2daHq36a1QQTwz9AcaopGh6dj2TbkxZV\"]},\"src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol\":{\"keccak256\":\"0xdf68be7b053a8ebf09de9b99feee94fb541038e8dacd0c23700171f33fde8b23\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3360a483854b3be07e8388cc251b6e55bd6ac26652a30c1f38f87279d041ae0\",\"dweb:/ipfs/QmRahrBBL4Ki4UdwvJxT3M5RQES27ZVo8o4cV3nni9n58L\"]},\"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\":\"0x893efd4997343120895e073b6288d6aa9c1a699b6c1913585ff12d47ff851c05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1070f3c0d3782be7348d9cad5e9233caa0dc0c4c0a011dd97b94f6224bd9208\",\"dweb:/ipfs/QmNVFTz2SuKLK1uL7mCDfJrmsRmvbhnxVdPCqoDjVCptVM\"]},\"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\":\"0xd8c93c8fc0a1131956a9cf9f1b6f1bf13bfbeaadc0064d0a4c18c0e6eb7c0015\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ef4515ff168802d55651cfb708c44c96c8ede98248f26f24e167cc01799e008\",\"dweb:/ipfs/Qma3b5FDVGoYA4WnUrggNpqtwghJqvPmG7odsHJAsAoTCx\"]},\"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\":\"0xb5454d68210deb3f2c91adf6ddec3ff03fbbd5a755636327c2be8fdf705f8159\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5dea6d99f97bfe2f92806005c0fe3577b8dc9d2ce7254be670438149f507e63e\",\"dweb:/ipfs/QmRRgnSyButSGoswHnAHXc2B43UjVfZFX1kyEKzRVXoXv6\"]},\"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\":\"0x927e505bb87a58ea04d1a9efe945f4bf4093e88b618b6fede3b9c68e1e63d989\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40f41d2c6eb2e11b9952350013d2fd57ec44c01f60fc33855bdb8d84ad352008\",\"dweb:/ipfs/Qmbi7J7LZzvy8imXMfYpRMiKtr9ewcAHfeE4s3zLm11QY4\"]},\"src/v0.8/shared/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]},\"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\":\"0x70607287132cc13f599a31a2eb679f4259f86429ea2fdf4f8f02be3044f6db5a\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://766e347c1bd5401df3ea872b753bf52d92c08d0c008c979bd30cca48be34c8a6\",\"dweb:/ipfs/QmZP3i4JwTyVGPkVdzUVye7ubJbLii5t4x8cZZ7nd4W6S2\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.16.2/src/L2/GasPriceOracle.sol\":{\"keccak256\":\"0x83db4afd61799160aae216f12f612c05f1f0631dcf3a54a9770c0e4c857c6bbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7467d59deeb02c89b0d0fc1f6fa62f73ac6f442e6433a90b7fb5a7ef03d7b3a\",\"dweb:/ipfs/QmctpUmaXt6Ww2wp6zsFcsomJfCa959wVgU9MoYVKDuRHg\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.16.2/src/L2/L1Block.sol\":{\"keccak256\":\"0x8e587430f46468f629adc512dd013232b7416c10b10b1045a16e8c807ff8dc13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d90fcb7dc4380cb0ca623da4326be4e9d42bff552e754872b49889c68fc1817\",\"dweb:/ipfs/QmZnqXS5DM6yfNb9HhYNDP33JyZacPaPnEdSUuXUpAYMYh\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.16.2/src/libraries/Predeploys.sol\":{\"keccak256\":\"0x1bb7275924131c08f796d243071e5e338f679ccca9145c08fb60d9b49f435507\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42211f21693cae56a56cd4e630d782ed1d5e2db8f04557a3e1f12022535492f5\",\"dweb:/ipfs/QmSfrXywYm6YXwystfN9kUj5fBe5S24m5GqRGfrjGujGue\"]},\"src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.16.2/src/universal/ISemver.sol\":{\"keccak256\":\"0xdf1cf1ed1786b5602e713b5450186643005f98205622d2b85e75cdfae721f787\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4ea906b3d7d1730692239c4ed1afb25e74c7b32f75e797106aebbf4d7c04baf\",\"dweb:/ipfs/QmUSfm2XZWpzqH4ukW83tJtjPUW6MQsyv2AxhA6iEZAjp3\"]},\"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\"]}},\"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": "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"
                }
              ],
              "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"
                }
              ]
            }
          ]
        },
        {
          "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"
                }
              ]
            }
          ],
          "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))": {
            "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))": {
            "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"
      },
      "libraries": {}
    },
    "sources": {
      "src/v0.8/functions/dev/v1_X/FunctionsBilling.sol": {
        "keccak256": "0x71bdbb591d2bd3d8c3d5bee55ed2bdc9c6cabeccec89946c1caf9f7346f67160",
        "urls": [
          "bzz-raw://b443826090753ae9be4bf09fffcc562a32d23c10049e38a4012e6ce1e6df51f4",
          "dweb:/ipfs/QmNYnhB8jRZtax2daHq36a1QQTwz9AcaopGh6dj2TbkxZV"
        ],
        "license": "MIT"
      },
      "src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol": {
        "keccak256": "0xdf68be7b053a8ebf09de9b99feee94fb541038e8dacd0c23700171f33fde8b23",
        "urls": [
          "bzz-raw://d3360a483854b3be07e8388cc251b6e55bd6ac26652a30c1f38f87279d041ae0",
          "dweb:/ipfs/QmRahrBBL4Ki4UdwvJxT3M5RQES27ZVo8o4cV3nni9n58L"
        ],
        "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": "0x893efd4997343120895e073b6288d6aa9c1a699b6c1913585ff12d47ff851c05",
        "urls": [
          "bzz-raw://b1070f3c0d3782be7348d9cad5e9233caa0dc0c4c0a011dd97b94f6224bd9208",
          "dweb:/ipfs/QmNVFTz2SuKLK1uL7mCDfJrmsRmvbhnxVdPCqoDjVCptVM"
        ],
        "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": "0xd8c93c8fc0a1131956a9cf9f1b6f1bf13bfbeaadc0064d0a4c18c0e6eb7c0015",
        "urls": [
          "bzz-raw://3ef4515ff168802d55651cfb708c44c96c8ede98248f26f24e167cc01799e008",
          "dweb:/ipfs/Qma3b5FDVGoYA4WnUrggNpqtwghJqvPmG7odsHJAsAoTCx"
        ],
        "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": "0xb5454d68210deb3f2c91adf6ddec3ff03fbbd5a755636327c2be8fdf705f8159",
        "urls": [
          "bzz-raw://5dea6d99f97bfe2f92806005c0fe3577b8dc9d2ce7254be670438149f507e63e",
          "dweb:/ipfs/QmRRgnSyButSGoswHnAHXc2B43UjVfZFX1kyEKzRVXoXv6"
        ],
        "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": "0x927e505bb87a58ea04d1a9efe945f4bf4093e88b618b6fede3b9c68e1e63d989",
        "urls": [
          "bzz-raw://40f41d2c6eb2e11b9952350013d2fd57ec44c01f60fc33855bdb8d84ad352008",
          "dweb:/ipfs/Qmbi7J7LZzvy8imXMfYpRMiKtr9ewcAHfeE4s3zLm11QY4"
        ],
        "license": "MIT"
      },
      "src/v0.8/shared/interfaces/AggregatorV3Interface.sol": {
        "keccak256": "0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd",
        "urls": [
          "bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7",
          "dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2"
        ],
        "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": "0x70607287132cc13f599a31a2eb679f4259f86429ea2fdf4f8f02be3044f6db5a",
        "urls": [
          "bzz-raw://766e347c1bd5401df3ea872b753bf52d92c08d0c008c979bd30cca48be34c8a6",
          "dweb:/ipfs/QmZP3i4JwTyVGPkVdzUVye7ubJbLii5t4x8cZZ7nd4W6S2"
        ],
        "license": "BUSL-1.1"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.16.2/src/L2/GasPriceOracle.sol": {
        "keccak256": "0x83db4afd61799160aae216f12f612c05f1f0631dcf3a54a9770c0e4c857c6bbb",
        "urls": [
          "bzz-raw://b7467d59deeb02c89b0d0fc1f6fa62f73ac6f442e6433a90b7fb5a7ef03d7b3a",
          "dweb:/ipfs/QmctpUmaXt6Ww2wp6zsFcsomJfCa959wVgU9MoYVKDuRHg"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.16.2/src/L2/L1Block.sol": {
        "keccak256": "0x8e587430f46468f629adc512dd013232b7416c10b10b1045a16e8c807ff8dc13",
        "urls": [
          "bzz-raw://7d90fcb7dc4380cb0ca623da4326be4e9d42bff552e754872b49889c68fc1817",
          "dweb:/ipfs/QmZnqXS5DM6yfNb9HhYNDP33JyZacPaPnEdSUuXUpAYMYh"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.16.2/src/libraries/Predeploys.sol": {
        "keccak256": "0x1bb7275924131c08f796d243071e5e338f679ccca9145c08fb60d9b49f435507",
        "urls": [
          "bzz-raw://42211f21693cae56a56cd4e630d782ed1d5e2db8f04557a3e1f12022535492f5",
          "dweb:/ipfs/QmSfrXywYm6YXwystfN9kUj5fBe5S24m5GqRGfrjGujGue"
        ],
        "license": "MIT"
      },
      "src/v0.8/vendor/@eth-optimism/contracts-bedrock/v0.16.2/src/universal/ISemver.sol": {
        "keccak256": "0xdf1cf1ed1786b5602e713b5450186643005f98205622d2b85e75cdfae721f787",
        "urls": [
          "bzz-raw://c4ea906b3d7d1730692239c4ed1afb25e74c7b32f75e797106aebbf4d7c04baf",
          "dweb:/ipfs/QmUSfm2XZWpzqH4ukW83tJtjPUW6MQsyv2AxhA6iEZAjp3"
        ],
        "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"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "src/v0.8/functions/dev/v1_X/FunctionsCoordinator.sol",
    "id": 45227,
    "exportedSymbols": {
      "FunctionsBilling": [
        44554
      ],
      "FunctionsBillingConfig": [
        48927
      ],
      "FunctionsCoordinator": [
        45226
      ],
      "FunctionsResponse": [
        49983
      ],
      "IFunctionsCoordinator": [
        48981
      ],
      "ITypeAndVersion": [
        71235
      ],
      "OCR2Base": [
        50960
      ]
    },
    "nodeType": "SourceUnit",
    "src": "32:7926:23",
    "nodes": [
      {
        "id": 44674,
        "nodeType": "PragmaDirective",
        "src": "32:24:23",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 44676,
        "nodeType": "ImportDirective",
        "src": "58:77:23",
        "nodes": [],
        "absolutePath": "src/v0.8/functions/dev/v1_X/interfaces/IFunctionsCoordinator.sol",
        "file": "./interfaces/IFunctionsCoordinator.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 45227,
        "sourceUnit": 48982,
        "symbolAliases": [
          {
            "foreign": {
              "id": 44675,
              "name": "IFunctionsCoordinator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 48981,
              "src": "66:21:23",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 44678,
        "nodeType": "ImportDirective",
        "src": "136:79:23",
        "nodes": [],
        "absolutePath": "src/v0.8/shared/interfaces/ITypeAndVersion.sol",
        "file": "../../../shared/interfaces/ITypeAndVersion.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 45227,
        "sourceUnit": 71236,
        "symbolAliases": [
          {
            "foreign": {
              "id": 44677,
              "name": "ITypeAndVersion",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 71235,
              "src": "144:15:23",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 44681,
        "nodeType": "ImportDirective",
        "src": "217:80:23",
        "nodes": [],
        "absolutePath": "src/v0.8/functions/dev/v1_X/FunctionsBilling.sol",
        "file": "./FunctionsBilling.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 45227,
        "sourceUnit": 44555,
        "symbolAliases": [
          {
            "foreign": {
              "id": 44679,
              "name": "FunctionsBilling",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 44554,
              "src": "225:16:23",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          },
          {
            "foreign": {
              "id": 44680,
              "name": "FunctionsBillingConfig",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 48927,
              "src": "243:22:23",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 44683,
        "nodeType": "ImportDirective",
        "src": "298:44:23",
        "nodes": [],
        "absolutePath": "src/v0.8/functions/dev/v1_X/ocr/OCR2Base.sol",
        "file": "./ocr/OCR2Base.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 45227,
        "sourceUnit": 50961,
        "symbolAliases": [
          {
            "foreign": {
              "id": 44682,
              "name": "OCR2Base",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 50960,
              "src": "306:8:23",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 44685,
        "nodeType": "ImportDirective",
        "src": "343:68:23",
        "nodes": [],
        "absolutePath": "src/v0.8/functions/dev/v1_X/libraries/FunctionsResponse.sol",
        "file": "./libraries/FunctionsResponse.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 45227,
        "sourceUnit": 49984,
        "symbolAliases": [
          {
            "foreign": {
              "id": 44684,
              "name": "FunctionsResponse",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 49983,
              "src": "351:17:23",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 45226,
        "nodeType": "ContractDefinition",
        "src": "541:7416:23",
        "nodes": [
          {
            "id": 44696,
            "nodeType": "UsingForDirective",
            "src": "628:58:23",
            "nodes": [],
            "global": false,
            "libraryName": {
              "id": 44693,
              "name": "FunctionsResponse",
              "nameLocations": [
                "634:17:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 49983,
              "src": "634:17:23"
            },
            "typeName": {
              "id": 44695,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 44694,
                "name": "FunctionsResponse.RequestMeta",
                "nameLocations": [
                  "656:17:23",
                  "674:11:23"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 49951,
                "src": "656:29:23"
              },
              "referencedDeclaration": 49951,
              "src": "656:29:23",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_RequestMeta_$49951_storage_ptr",
                "typeString": "struct FunctionsResponse.RequestMeta"
              }
            }
          },
          {
            "id": 44700,
            "nodeType": "UsingForDirective",
            "src": "689:57:23",
            "nodes": [],
            "global": false,
            "libraryName": {
              "id": 44697,
              "name": "FunctionsResponse",
              "nameLocations": [
                "695:17:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 49983,
              "src": "695:17:23"
            },
            "typeName": {
              "id": 44699,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 44698,
                "name": "FunctionsResponse.Commitment",
                "nameLocations": [
                  "717:17:23",
                  "735:10:23"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 49982,
                "src": "717:28:23"
              },
              "referencedDeclaration": 49982,
              "src": "717:28:23",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Commitment_$49982_storage_ptr",
                "typeString": "struct FunctionsResponse.Commitment"
              }
            }
          },
          {
            "id": 44704,
            "nodeType": "UsingForDirective",
            "src": "749:60:23",
            "nodes": [],
            "global": false,
            "libraryName": {
              "id": 44701,
              "name": "FunctionsResponse",
              "nameLocations": [
                "755:17:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 49983,
              "src": "755:17:23"
            },
            "typeName": {
              "id": 44703,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 44702,
                "name": "FunctionsResponse.FulfillResult",
                "nameLocations": [
                  "777:17:23",
                  "795:13:23"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 49959,
                "src": "777:31:23"
              },
              "referencedDeclaration": 49959,
              "src": "777:31:23",
              "typeDescriptions": {
                "typeIdentifier": "t_enum$_FulfillResult_$49959",
                "typeString": "enum FunctionsResponse.FulfillResult"
              }
            }
          },
          {
            "id": 44709,
            "nodeType": "VariableDeclaration",
            "src": "933:79:23",
            "nodes": [],
            "baseFunctions": [
              71234
            ],
            "constant": true,
            "documentation": {
              "id": 44705,
              "nodeType": "StructuredDocumentation",
              "src": "813:31:23",
              "text": "@inheritdoc ITypeAndVersion"
            },
            "functionSelector": "181f5a77",
            "mutability": "constant",
            "name": "typeAndVersion",
            "nameLocation": "965:14:23",
            "overrides": {
              "id": 44707,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "956:8:23"
            },
            "scope": 45226,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 44706,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "933:6:23",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "46756e6374696f6e7320436f6f7264696e61746f722076312e332e30",
              "id": 44708,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "982:30:23",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_7704f642b7da61b14425959dc3abbcae2341c0c26201f4503b7f9a044cf62647",
                "typeString": "literal_string \"Functions Coordinator v1.3.0\""
              },
              "value": "Functions Coordinator v1.3.0"
            },
            "visibility": "public"
          },
          {
            "id": 44732,
            "nodeType": "EventDefinition",
            "src": "1017:316:23",
            "nodes": [],
            "anonymous": false,
            "eventSelector": "bf50768ccf13bd0110ca6d53a9c4f1f3271abdd4c24a56878863ed25b20598ff",
            "name": "OracleRequest",
            "nameLocation": "1023:13:23",
            "parameters": {
              "id": 44731,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44711,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "requestId",
                  "nameLocation": "1058:9:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44732,
                  "src": "1042:25:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 44710,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1042:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44713,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "requestingContract",
                  "nameLocation": "1089:18:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44732,
                  "src": "1073:34:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44712,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1073:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44715,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "requestInitiator",
                  "nameLocation": "1121:16:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44732,
                  "src": "1113:24:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44714,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1113:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44717,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "subscriptionId",
                  "nameLocation": "1150:14:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44732,
                  "src": "1143:21:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 44716,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "1143:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44719,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "subscriptionOwner",
                  "nameLocation": "1178:17:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44732,
                  "src": "1170:25:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44718,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1170:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44721,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "1207:4:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44732,
                  "src": "1201:10:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 44720,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1201:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44723,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "dataVersion",
                  "nameLocation": "1224:11:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44732,
                  "src": "1217:18:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 44722,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1217:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44725,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "flags",
                  "nameLocation": "1249:5:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44732,
                  "src": "1241:13:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 44724,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1241:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44727,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "callbackGasLimit",
                  "nameLocation": "1267:16:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44732,
                  "src": "1260:23:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 44726,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "1260:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44730,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "commitment",
                  "nameLocation": "1318:10:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44732,
                  "src": "1289:39:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                    "typeString": "struct FunctionsResponse.Commitment"
                  },
                  "typeName": {
                    "id": 44729,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 44728,
                      "name": "FunctionsResponse.Commitment",
                      "nameLocations": [
                        "1289:17:23",
                        "1307:10:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 49982,
                      "src": "1289:28:23"
                    },
                    "referencedDeclaration": 49982,
                    "src": "1289:28:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Commitment_$49982_storage_ptr",
                      "typeString": "struct FunctionsResponse.Commitment"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1036:296:23"
            }
          },
          {
            "id": 44738,
            "nodeType": "EventDefinition",
            "src": "1336:69:23",
            "nodes": [],
            "anonymous": false,
            "eventSelector": "c708e0440951fd63499c0f7a73819b469ee5dd3ecc356c0ab4eb7f18389009d9",
            "name": "OracleResponse",
            "nameLocation": "1342:14:23",
            "parameters": {
              "id": 44737,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44734,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "requestId",
                  "nameLocation": "1373:9:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44738,
                  "src": "1357:25:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 44733,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1357:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44736,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "transmitter",
                  "nameLocation": "1392:11:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44738,
                  "src": "1384:19:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44735,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1384:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1356:48:23"
            }
          },
          {
            "id": 44740,
            "nodeType": "ErrorDefinition",
            "src": "1409:31:23",
            "nodes": [],
            "errorSelector": "e915fda5",
            "name": "InconsistentReportData",
            "nameLocation": "1415:22:23",
            "parameters": {
              "id": 44739,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1437:2:23"
            }
          },
          {
            "id": 44742,
            "nodeType": "ErrorDefinition",
            "src": "1443:23:23",
            "nodes": [],
            "errorSelector": "4f42be3d",
            "name": "EmptyPublicKey",
            "nameLocation": "1449:14:23",
            "parameters": {
              "id": 44741,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1463:2:23"
            }
          },
          {
            "id": 44744,
            "nodeType": "ErrorDefinition",
            "src": "1469:36:23",
            "nodes": [],
            "errorSelector": "ed6dd19b",
            "name": "UnauthorizedPublicKeyChange",
            "nameLocation": "1475:27:23",
            "parameters": {
              "id": 44743,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1502:2:23"
            }
          },
          {
            "id": 44746,
            "nodeType": "VariableDeclaration",
            "src": "1509:28:23",
            "nodes": [],
            "constant": false,
            "mutability": "mutable",
            "name": "s_donPublicKey",
            "nameLocation": "1523:14:23",
            "scope": 45226,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 44745,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "1509:5:23",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "visibility": "private"
          },
          {
            "id": 44748,
            "nodeType": "VariableDeclaration",
            "src": "1541:34:23",
            "nodes": [],
            "constant": false,
            "mutability": "mutable",
            "name": "s_thresholdPublicKey",
            "nameLocation": "1555:20:23",
            "scope": 45226,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 44747,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "1541:5:23",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "visibility": "private"
          },
          {
            "id": 44769,
            "nodeType": "FunctionDefinition",
            "src": "1580:214:23",
            "nodes": [],
            "body": {
              "id": 44768,
              "nodeType": "Block",
              "src": "1792:2:23",
              "nodes": [],
              "statements": []
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [],
                "id": 44760,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 44759,
                  "name": "OCR2Base",
                  "nameLocations": [
                    "1715:8:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 50960,
                  "src": "1715:8:23"
                },
                "nodeType": "ModifierInvocation",
                "src": "1715:10:23"
              },
              {
                "arguments": [
                  {
                    "id": 44762,
                    "name": "router",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 44750,
                    "src": "1743:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 44763,
                    "name": "config",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 44753,
                    "src": "1751:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FunctionsBillingConfig_$48927_memory_ptr",
                      "typeString": "struct FunctionsBillingConfig memory"
                    }
                  },
                  {
                    "id": 44764,
                    "name": "linkToNativeFeed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 44755,
                    "src": "1759:16:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 44765,
                    "name": "linkToUsdFeed",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 44757,
                    "src": "1777:13:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 44766,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 44761,
                  "name": "FunctionsBilling",
                  "nameLocations": [
                    "1726:16:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 44554,
                  "src": "1726:16:23"
                },
                "nodeType": "ModifierInvocation",
                "src": "1726:65:23"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 44758,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44750,
                  "mutability": "mutable",
                  "name": "router",
                  "nameLocation": "1605:6:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44769,
                  "src": "1597:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44749,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1597:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44753,
                  "mutability": "mutable",
                  "name": "config",
                  "nameLocation": "1647:6:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44769,
                  "src": "1617:36:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_FunctionsBillingConfig_$48927_memory_ptr",
                    "typeString": "struct FunctionsBillingConfig"
                  },
                  "typeName": {
                    "id": 44752,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 44751,
                      "name": "FunctionsBillingConfig",
                      "nameLocations": [
                        "1617:22:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 48927,
                      "src": "1617:22:23"
                    },
                    "referencedDeclaration": 48927,
                    "src": "1617:22:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_FunctionsBillingConfig_$48927_storage_ptr",
                      "typeString": "struct FunctionsBillingConfig"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44755,
                  "mutability": "mutable",
                  "name": "linkToNativeFeed",
                  "nameLocation": "1667:16:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44769,
                  "src": "1659:24:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44754,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1659:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44757,
                  "mutability": "mutable",
                  "name": "linkToUsdFeed",
                  "nameLocation": "1697:13:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44769,
                  "src": "1689:21:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44756,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1689:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1591:123:23"
            },
            "returnParameters": {
              "id": 44767,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1792:0:23"
            },
            "scope": 45226,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 44788,
            "nodeType": "FunctionDefinition",
            "src": "1838:198:23",
            "nodes": [],
            "body": {
              "id": 44787,
              "nodeType": "Block",
              "src": "1917:119:23",
              "nodes": [],
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 44779,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 44776,
                        "name": "s_thresholdPublicKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44748,
                        "src": "1927:20:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      },
                      "id": 44777,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1948:6:23",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "1927:27:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 44778,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1958:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1927:32:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 44784,
                  "nodeType": "IfStatement",
                  "src": "1923:76:23",
                  "trueBody": {
                    "id": 44783,
                    "nodeType": "Block",
                    "src": "1961:38:23",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 44780,
                            "name": "EmptyPublicKey",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44742,
                            "src": "1976:14:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 44781,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1976:16:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 44782,
                        "nodeType": "RevertStatement",
                        "src": "1969:23:23"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 44785,
                    "name": "s_thresholdPublicKey",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 44748,
                    "src": "2011:20:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "functionReturnParameters": 44775,
                  "id": 44786,
                  "nodeType": "Return",
                  "src": "2004:27:23"
                }
              ]
            },
            "baseFunctions": [
              48952
            ],
            "documentation": {
              "id": 44770,
              "nodeType": "StructuredDocumentation",
              "src": "1798:37:23",
              "text": "@inheritdoc IFunctionsCoordinator"
            },
            "functionSelector": "81f1b938",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getThresholdPublicKey",
            "nameLocation": "1847:21:23",
            "overrides": {
              "id": 44772,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1885:8:23"
            },
            "parameters": {
              "id": 44771,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1868:2:23"
            },
            "returnParameters": {
              "id": 44775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44774,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44788,
                  "src": "1903:12:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 44773,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1903:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1902:14:23"
            },
            "scope": 45226,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 44811,
            "nodeType": "FunctionDefinition",
            "src": "2080:225:23",
            "nodes": [],
            "body": {
              "id": 44810,
              "nodeType": "Block",
              "src": "2174:131:23",
              "nodes": [],
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 44800,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 44797,
                        "name": "thresholdPublicKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44791,
                        "src": "2184:18:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      "id": 44798,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2203:6:23",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "2184:25:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 44799,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2213:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2184:30:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 44805,
                  "nodeType": "IfStatement",
                  "src": "2180:74:23",
                  "trueBody": {
                    "id": 44804,
                    "nodeType": "Block",
                    "src": "2216:38:23",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 44801,
                            "name": "EmptyPublicKey",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44742,
                            "src": "2231:14:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 44802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2231:16:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 44803,
                        "nodeType": "RevertStatement",
                        "src": "2224:23:23"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 44808,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 44806,
                      "name": "s_thresholdPublicKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44748,
                      "src": "2259:20:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 44807,
                      "name": "thresholdPublicKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44791,
                      "src": "2282:18:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_calldata_ptr",
                        "typeString": "bytes calldata"
                      }
                    },
                    "src": "2259:41:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 44809,
                  "nodeType": "ExpressionStatement",
                  "src": "2259:41:23"
                }
              ]
            },
            "baseFunctions": [
              48958
            ],
            "documentation": {
              "id": 44789,
              "nodeType": "StructuredDocumentation",
              "src": "2040:37:23",
              "text": "@inheritdoc IFunctionsCoordinator"
            },
            "functionSelector": "083a5466",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 44795,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 44794,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "2164:9:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 71081,
                  "src": "2164:9:23"
                },
                "nodeType": "ModifierInvocation",
                "src": "2164:9:23"
              }
            ],
            "name": "setThresholdPublicKey",
            "nameLocation": "2089:21:23",
            "overrides": {
              "id": 44793,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2155:8:23"
            },
            "parameters": {
              "id": 44792,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44791,
                  "mutability": "mutable",
                  "name": "thresholdPublicKey",
                  "nameLocation": "2126:18:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44811,
                  "src": "2111:33:23",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 44790,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2111:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2110:35:23"
            },
            "returnParameters": {
              "id": 44796,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2174:0:23"
            },
            "scope": 45226,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 44830,
            "nodeType": "FunctionDefinition",
            "src": "2349:180:23",
            "nodes": [],
            "body": {
              "id": 44829,
              "nodeType": "Block",
              "src": "2422:107:23",
              "nodes": [],
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 44821,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 44818,
                        "name": "s_donPublicKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44746,
                        "src": "2432:14:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage",
                          "typeString": "bytes storage ref"
                        }
                      },
                      "id": 44819,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2447:6:23",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "2432:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 44820,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2457:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2432:26:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 44826,
                  "nodeType": "IfStatement",
                  "src": "2428:70:23",
                  "trueBody": {
                    "id": 44825,
                    "nodeType": "Block",
                    "src": "2460:38:23",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 44822,
                            "name": "EmptyPublicKey",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44742,
                            "src": "2475:14:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 44823,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2475:16:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 44824,
                        "nodeType": "RevertStatement",
                        "src": "2468:23:23"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 44827,
                    "name": "s_donPublicKey",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 44746,
                    "src": "2510:14:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "functionReturnParameters": 44817,
                  "id": 44828,
                  "nodeType": "Return",
                  "src": "2503:21:23"
                }
              ]
            },
            "baseFunctions": [
              48964
            ],
            "documentation": {
              "id": 44812,
              "nodeType": "StructuredDocumentation",
              "src": "2309:37:23",
              "text": "@inheritdoc IFunctionsCoordinator"
            },
            "functionSelector": "d328a91e",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getDONPublicKey",
            "nameLocation": "2358:15:23",
            "overrides": {
              "id": 44814,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2390:8:23"
            },
            "parameters": {
              "id": 44813,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2373:2:23"
            },
            "returnParameters": {
              "id": 44817,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44816,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44830,
                  "src": "2408:12:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 44815,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2408:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2407:14:23"
            },
            "scope": 45226,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 44853,
            "nodeType": "FunctionDefinition",
            "src": "2573:195:23",
            "nodes": [],
            "body": {
              "id": 44852,
              "nodeType": "Block",
              "src": "2655:113:23",
              "nodes": [],
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 44842,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 44839,
                        "name": "donPublicKey",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44833,
                        "src": "2665:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      "id": 44840,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2678:6:23",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "2665:19:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 44841,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2688:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2665:24:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 44847,
                  "nodeType": "IfStatement",
                  "src": "2661:68:23",
                  "trueBody": {
                    "id": 44846,
                    "nodeType": "Block",
                    "src": "2691:38:23",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 44843,
                            "name": "EmptyPublicKey",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44742,
                            "src": "2706:14:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 44844,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2706:16:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 44845,
                        "nodeType": "RevertStatement",
                        "src": "2699:23:23"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 44850,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 44848,
                      "name": "s_donPublicKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44746,
                      "src": "2734:14:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 44849,
                      "name": "donPublicKey",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44833,
                      "src": "2751:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_calldata_ptr",
                        "typeString": "bytes calldata"
                      }
                    },
                    "src": "2734:29:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 44851,
                  "nodeType": "ExpressionStatement",
                  "src": "2734:29:23"
                }
              ]
            },
            "baseFunctions": [
              48970
            ],
            "documentation": {
              "id": 44831,
              "nodeType": "StructuredDocumentation",
              "src": "2533:37:23",
              "text": "@inheritdoc IFunctionsCoordinator"
            },
            "functionSelector": "7f15e166",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 44837,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 44836,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "2645:9:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 71081,
                  "src": "2645:9:23"
                },
                "nodeType": "ModifierInvocation",
                "src": "2645:9:23"
              }
            ],
            "name": "setDONPublicKey",
            "nameLocation": "2582:15:23",
            "overrides": {
              "id": 44835,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2636:8:23"
            },
            "parameters": {
              "id": 44834,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44833,
                  "mutability": "mutable",
                  "name": "donPublicKey",
                  "nameLocation": "2613:12:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44853,
                  "src": "2598:27:23",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 44832,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2598:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2597:29:23"
            },
            "returnParameters": {
              "id": 44838,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2655:0:23"
            },
            "scope": 45226,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 44886,
            "nodeType": "FunctionDefinition",
            "src": "2828:276:23",
            "nodes": [],
            "body": {
              "id": 44885,
              "nodeType": "Block",
              "src": "2895:209:23",
              "nodes": [],
              "statements": [
                {
                  "body": {
                    "id": 44881,
                    "nodeType": "Block",
                    "src": "3007:75:23",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 44876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "baseExpression": {
                              "id": 44872,
                              "name": "s_transmitters",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50141,
                              "src": "3019:14:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage",
                                "typeString": "address[] storage ref"
                              }
                            },
                            "id": 44874,
                            "indexExpression": {
                              "id": 44873,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44862,
                              "src": "3034:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3019:17:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 44875,
                            "name": "node",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44856,
                            "src": "3040:4:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "3019:25:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 44880,
                        "nodeType": "IfStatement",
                        "src": "3015:61:23",
                        "trueBody": {
                          "id": 44879,
                          "nodeType": "Block",
                          "src": "3046:30:23",
                          "statements": [
                            {
                              "expression": {
                                "hexValue": "74727565",
                                "id": 44877,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3063:4:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "functionReturnParameters": 44860,
                              "id": 44878,
                              "nodeType": "Return",
                              "src": "3056:11:23"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 44868,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 44865,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44862,
                      "src": "2975:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 44866,
                        "name": "s_transmitters",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50141,
                        "src": "2979:14:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage",
                          "typeString": "address[] storage ref"
                        }
                      },
                      "id": 44867,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2994:6:23",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "2979:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2975:25:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 44882,
                  "initializationExpression": {
                    "assignments": [
                      44862
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 44862,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "2968:1:23",
                        "nodeType": "VariableDeclaration",
                        "scope": 44882,
                        "src": "2960:9:23",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 44861,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2960:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 44864,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 44863,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2972:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2960:13:23"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 44870,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "3002:3:23",
                      "subExpression": {
                        "id": 44869,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44862,
                        "src": "3004:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 44871,
                    "nodeType": "ExpressionStatement",
                    "src": "3002:3:23"
                  },
                  "nodeType": "ForStatement",
                  "src": "2955:127:23"
                },
                {
                  "expression": {
                    "hexValue": "66616c7365",
                    "id": 44883,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3094:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "functionReturnParameters": 44860,
                  "id": 44884,
                  "nodeType": "Return",
                  "src": "3087:12:23"
                }
              ]
            },
            "documentation": {
              "id": 44854,
              "nodeType": "StructuredDocumentation",
              "src": "2772:53:23",
              "text": "@dev check if node is in current transmitter list"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_isTransmitter",
            "nameLocation": "2837:14:23",
            "parameters": {
              "id": 44857,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44856,
                  "mutability": "mutable",
                  "name": "node",
                  "nameLocation": "2860:4:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44886,
                  "src": "2852:12:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 44855,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2852:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2851:14:23"
            },
            "returnParameters": {
              "id": 44860,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44859,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44886,
                  "src": "2889:4:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 44858,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2889:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2888:6:23"
            },
            "scope": 45226,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 44958,
            "nodeType": "FunctionDefinition",
            "src": "3148:1404:23",
            "nodes": [],
            "body": {
              "id": 44957,
              "nodeType": "Block",
              "src": "3312:1240:23",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    44900
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 44900,
                      "mutability": "mutable",
                      "name": "operationFee",
                      "nameLocation": "3325:12:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 44957,
                      "src": "3318:19:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint72",
                        "typeString": "uint72"
                      },
                      "typeName": {
                        "id": 44899,
                        "name": "uint72",
                        "nodeType": "ElementaryTypeName",
                        "src": "3318:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint72",
                          "typeString": "uint72"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 44901,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3318:19:23"
                },
                {
                  "expression": {
                    "id": 44908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "components": [
                        {
                          "id": 44902,
                          "name": "commitment",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44897,
                          "src": "3344:10:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                            "typeString": "struct FunctionsResponse.Commitment memory"
                          }
                        },
                        {
                          "id": 44903,
                          "name": "operationFee",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44900,
                          "src": "3356:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint72",
                            "typeString": "uint72"
                          }
                        }
                      ],
                      "id": 44904,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "3343:26:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_struct$_Commitment_$49982_memory_ptr_$_t_uint72_$",
                        "typeString": "tuple(struct FunctionsResponse.Commitment memory,uint72)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 44906,
                          "name": "request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44890,
                          "src": "3386:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestMeta_$49951_calldata_ptr",
                            "typeString": "struct FunctionsResponse.RequestMeta calldata"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_RequestMeta_$49951_calldata_ptr",
                            "typeString": "struct FunctionsResponse.RequestMeta calldata"
                          }
                        ],
                        "id": 44905,
                        "name": "_startBilling",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44141,
                        "src": "3372:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_RequestMeta_$49951_memory_ptr_$returns$_t_struct$_Commitment_$49982_memory_ptr_$_t_uint72_$",
                          "typeString": "function (struct FunctionsResponse.RequestMeta memory) returns (struct FunctionsResponse.Commitment memory,uint72)"
                        }
                      },
                      "id": 44907,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3372:22:23",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_struct$_Commitment_$49982_memory_ptr_$_t_uint72_$",
                        "typeString": "tuple(struct FunctionsResponse.Commitment memory,uint72)"
                      }
                    },
                    "src": "3343:51:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 44909,
                  "nodeType": "ExpressionStatement",
                  "src": "3343:51:23"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 44911,
                          "name": "commitment",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44897,
                          "src": "3427:10:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                            "typeString": "struct FunctionsResponse.Commitment memory"
                          }
                        },
                        "id": 44912,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3438:9:23",
                        "memberName": "requestId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 49961,
                        "src": "3427:20:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 44913,
                          "name": "request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44890,
                          "src": "3455:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestMeta_$49951_calldata_ptr",
                            "typeString": "struct FunctionsResponse.RequestMeta calldata"
                          }
                        },
                        "id": 44914,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3463:18:23",
                        "memberName": "requestingContract",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 49934,
                        "src": "3455:26:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 44915,
                          "name": "tx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -26,
                          "src": "3540:2:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_transaction",
                            "typeString": "tx"
                          }
                        },
                        "id": 44916,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3543:6:23",
                        "memberName": "origin",
                        "nodeType": "MemberAccess",
                        "src": "3540:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 44917,
                          "name": "request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44890,
                          "src": "3557:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestMeta_$49951_calldata_ptr",
                            "typeString": "struct FunctionsResponse.RequestMeta calldata"
                          }
                        },
                        "id": 44918,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3565:14:23",
                        "memberName": "subscriptionId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 49940,
                        "src": "3557:22:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "expression": {
                          "id": 44919,
                          "name": "request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44890,
                          "src": "3587:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestMeta_$49951_calldata_ptr",
                            "typeString": "struct FunctionsResponse.RequestMeta calldata"
                          }
                        },
                        "id": 44920,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3595:17:23",
                        "memberName": "subscriptionOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 49950,
                        "src": "3587:25:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 44921,
                          "name": "request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44890,
                          "src": "3620:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestMeta_$49951_calldata_ptr",
                            "typeString": "struct FunctionsResponse.RequestMeta calldata"
                          }
                        },
                        "id": 44922,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3628:4:23",
                        "memberName": "data",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 49930,
                        "src": "3620:12:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "expression": {
                          "id": 44923,
                          "name": "request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44890,
                          "src": "3640:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestMeta_$49951_calldata_ptr",
                            "typeString": "struct FunctionsResponse.RequestMeta calldata"
                          }
                        },
                        "id": 44924,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3648:11:23",
                        "memberName": "dataVersion",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 49946,
                        "src": "3640:19:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      {
                        "expression": {
                          "id": 44925,
                          "name": "request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44890,
                          "src": "3667:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestMeta_$49951_calldata_ptr",
                            "typeString": "struct FunctionsResponse.RequestMeta calldata"
                          }
                        },
                        "id": 44926,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3675:5:23",
                        "memberName": "flags",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 49932,
                        "src": "3667:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 44927,
                          "name": "request",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 44890,
                          "src": "3688:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RequestMeta_$49951_calldata_ptr",
                            "typeString": "struct FunctionsResponse.RequestMeta calldata"
                          }
                        },
                        "id": 44928,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "3696:16:23",
                        "memberName": "callbackGasLimit",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 49944,
                        "src": "3688:24:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 44931,
                              "name": "commitment",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44897,
                              "src": "3772:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                                "typeString": "struct FunctionsResponse.Commitment memory"
                              }
                            },
                            "id": 44932,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3783:11:23",
                            "memberName": "coordinator",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49963,
                            "src": "3772:22:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "id": 44933,
                              "name": "commitment",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44897,
                              "src": "3812:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                                "typeString": "struct FunctionsResponse.Commitment memory"
                              }
                            },
                            "id": 44934,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3823:6:23",
                            "memberName": "client",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49967,
                            "src": "3812:17:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "id": 44935,
                              "name": "commitment",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44897,
                              "src": "3855:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                                "typeString": "struct FunctionsResponse.Commitment memory"
                              }
                            },
                            "id": 44936,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3866:14:23",
                            "memberName": "subscriptionId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49969,
                            "src": "3855:25:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            }
                          },
                          {
                            "expression": {
                              "id": 44937,
                              "name": "commitment",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44897,
                              "src": "3908:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                                "typeString": "struct FunctionsResponse.Commitment memory"
                              }
                            },
                            "id": 44938,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3919:16:23",
                            "memberName": "callbackGasLimit",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49971,
                            "src": "3908:27:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "expression": {
                              "id": 44939,
                              "name": "commitment",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44897,
                              "src": "3970:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                                "typeString": "struct FunctionsResponse.Commitment memory"
                              }
                            },
                            "id": 44940,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3981:23:23",
                            "memberName": "estimatedTotalCostJuels",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49965,
                            "src": "3970:34:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            }
                          },
                          {
                            "expression": {
                              "id": 44941,
                              "name": "commitment",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44897,
                              "src": "4032:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                                "typeString": "struct FunctionsResponse.Commitment memory"
                              }
                            },
                            "id": 44942,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4043:16:23",
                            "memberName": "timeoutTimestamp",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49981,
                            "src": "4032:27:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          {
                            "expression": {
                              "id": 44943,
                              "name": "commitment",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44897,
                              "src": "4080:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                                "typeString": "struct FunctionsResponse.Commitment memory"
                              }
                            },
                            "id": 44944,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4091:9:23",
                            "memberName": "requestId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49961,
                            "src": "4080:20:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "expression": {
                              "id": 44945,
                              "name": "commitment",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44897,
                              "src": "4118:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                                "typeString": "struct FunctionsResponse.Commitment memory"
                              }
                            },
                            "id": 44946,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4129:6:23",
                            "memberName": "donFee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49975,
                            "src": "4118:17:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint72",
                              "typeString": "uint72"
                            }
                          },
                          {
                            "expression": {
                              "id": 44947,
                              "name": "commitment",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44897,
                              "src": "4172:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                                "typeString": "struct FunctionsResponse.Commitment memory"
                              }
                            },
                            "id": 44948,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4183:25:23",
                            "memberName": "gasOverheadBeforeCallback",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49977,
                            "src": "4172:36:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint40",
                              "typeString": "uint40"
                            }
                          },
                          {
                            "expression": {
                              "id": 44949,
                              "name": "commitment",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 44897,
                              "src": "4244:10:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                                "typeString": "struct FunctionsResponse.Commitment memory"
                              }
                            },
                            "id": 44950,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4255:24:23",
                            "memberName": "gasOverheadAfterCallback",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49979,
                            "src": "4244:35:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint40",
                              "typeString": "uint40"
                            }
                          },
                          {
                            "id": 44951,
                            "name": "operationFee",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44900,
                            "src": "4496:12:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint72",
                              "typeString": "uint72"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint64",
                              "typeString": "uint64"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_uint96",
                              "typeString": "uint96"
                            },
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint72",
                              "typeString": "uint72"
                            },
                            {
                              "typeIdentifier": "t_uint40",
                              "typeString": "uint40"
                            },
                            {
                              "typeIdentifier": "t_uint40",
                              "typeString": "uint40"
                            },
                            {
                              "typeIdentifier": "t_uint72",
                              "typeString": "uint72"
                            }
                          ],
                          "expression": {
                            "id": 44929,
                            "name": "FunctionsResponse",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 49983,
                            "src": "3720:17:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_FunctionsResponse_$49983_$",
                              "typeString": "type(library FunctionsResponse)"
                            }
                          },
                          "id": 44930,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3738:10:23",
                          "memberName": "Commitment",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 49982,
                          "src": "3720:28:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Commitment_$49982_storage_ptr_$",
                            "typeString": "type(struct FunctionsResponse.Commitment storage pointer)"
                          }
                        },
                        "id": 44952,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [
                          "3759:11:23",
                          "3804:6:23",
                          "3839:14:23",
                          "3890:16:23",
                          "3945:23:23",
                          "4014:16:23",
                          "4069:9:23",
                          "4110:6:23",
                          "4145:25:23",
                          "4218:24:23",
                          "4486:8:23"
                        ],
                        "names": [
                          "coordinator",
                          "client",
                          "subscriptionId",
                          "callbackGasLimit",
                          "estimatedTotalCostJuels",
                          "timeoutTimestamp",
                          "requestId",
                          "donFee",
                          "gasOverheadBeforeCallback",
                          "gasOverheadAfterCallback",
                          "adminFee"
                        ],
                        "nodeType": "FunctionCall",
                        "src": "3720:797:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                          "typeString": "struct FunctionsResponse.Commitment memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                          "typeString": "struct FunctionsResponse.Commitment memory"
                        }
                      ],
                      "id": 44910,
                      "name": "OracleRequest",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 44732,
                      "src": "3406:13:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint64_$_t_address_$_t_bytes_memory_ptr_$_t_uint16_$_t_bytes32_$_t_uint64_$_t_struct$_Commitment_$49982_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,address,address,uint64,address,bytes memory,uint16,bytes32,uint64,struct FunctionsResponse.Commitment memory)"
                      }
                    },
                    "id": 44953,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3406:1117:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 44954,
                  "nodeType": "EmitStatement",
                  "src": "3401:1122:23"
                },
                {
                  "expression": {
                    "id": 44955,
                    "name": "commitment",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 44897,
                    "src": "4537:10:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                      "typeString": "struct FunctionsResponse.Commitment memory"
                    }
                  },
                  "functionReturnParameters": 44898,
                  "id": 44956,
                  "nodeType": "Return",
                  "src": "4530:17:23"
                }
              ]
            },
            "baseFunctions": [
              48980
            ],
            "documentation": {
              "id": 44887,
              "nodeType": "StructuredDocumentation",
              "src": "3108:37:23",
              "text": "@inheritdoc IFunctionsCoordinator"
            },
            "functionSelector": "a631571e",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 44894,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 44893,
                  "name": "onlyRouter",
                  "nameLocations": [
                    "3244:10:23"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 48158,
                  "src": "3244:10:23"
                },
                "nodeType": "ModifierInvocation",
                "src": "3244:10:23"
              }
            ],
            "name": "startRequest",
            "nameLocation": "3157:12:23",
            "overrides": {
              "id": 44892,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3235:8:23"
            },
            "parameters": {
              "id": 44891,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44890,
                  "mutability": "mutable",
                  "name": "request",
                  "nameLocation": "3214:7:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44958,
                  "src": "3175:46:23",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestMeta_$49951_calldata_ptr",
                    "typeString": "struct FunctionsResponse.RequestMeta"
                  },
                  "typeName": {
                    "id": 44889,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 44888,
                      "name": "FunctionsResponse.RequestMeta",
                      "nameLocations": [
                        "3175:17:23",
                        "3193:11:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 49951,
                      "src": "3175:29:23"
                    },
                    "referencedDeclaration": 49951,
                    "src": "3175:29:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestMeta_$49951_storage_ptr",
                      "typeString": "struct FunctionsResponse.RequestMeta"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3169:56:23"
            },
            "returnParameters": {
              "id": 44898,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44897,
                  "mutability": "mutable",
                  "name": "commitment",
                  "nameLocation": "3300:10:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 44958,
                  "src": "3264:46:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Commitment_$49982_memory_ptr",
                    "typeString": "struct FunctionsResponse.Commitment"
                  },
                  "typeName": {
                    "id": 44896,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 44895,
                      "name": "FunctionsResponse.Commitment",
                      "nameLocations": [
                        "3264:17:23",
                        "3282:10:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 49982,
                      "src": "3264:28:23"
                    },
                    "referencedDeclaration": 49982,
                    "src": "3264:28:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Commitment_$49982_storage_ptr",
                      "typeString": "struct FunctionsResponse.Commitment"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3263:48:23"
            },
            "scope": 45226,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 44978,
            "nodeType": "FunctionDefinition",
            "src": "4672:173:23",
            "nodes": [],
            "body": {
              "id": 44977,
              "nodeType": "Block",
              "src": "4767:78:23",
              "nodes": [],
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 44971,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 44967,
                          "name": "_getTransmitters",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            44989
                          ],
                          "referencedDeclaration": 44989,
                          "src": "4777:16:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                            "typeString": "function () view returns (address[] memory)"
                          }
                        },
                        "id": 44968,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4777:18:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 44969,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4796:6:23",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "4777:25:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 44970,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4805:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "4777:29:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 44976,
                  "nodeType": "IfStatement",
                  "src": "4773:68:23",
                  "trueBody": {
                    "id": 44975,
                    "nodeType": "Block",
                    "src": "4808:33:23",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 44972,
                            "name": "_disperseFeePool",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44528,
                            "src": "4816:16:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 44973,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4816:18:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 44974,
                        "nodeType": "ExpressionStatement",
                        "src": "4816:18:23"
                      }
                    ]
                  }
                }
              ]
            },
            "baseFunctions": [
              50651
            ],
            "documentation": {
              "id": 44959,
              "nodeType": "StructuredDocumentation",
              "src": "4556:113:23",
              "text": "@dev DON fees are pooled together. If the OCR configuration is going to change, these need to be distributed."
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeSetConfig",
            "nameLocation": "4681:16:23",
            "overrides": {
              "id": 44965,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4758:8:23"
            },
            "parameters": {
              "id": 44964,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44961,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44978,
                  "src": "4698:5:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 44960,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "4698:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44963,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44978,
                  "src": "4714:12:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 44962,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4714:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4697:51:23"
            },
            "returnParameters": {
              "id": 44966,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4767:0:23"
            },
            "scope": 45226,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 44989,
            "nodeType": "FunctionDefinition",
            "src": "4889:110:23",
            "nodes": [],
            "body": {
              "id": 44988,
              "nodeType": "Block",
              "src": "4967:32:23",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 44986,
                    "name": "s_transmitters",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 50141,
                    "src": "4980:14:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage",
                      "typeString": "address[] storage ref"
                    }
                  },
                  "functionReturnParameters": 44985,
                  "id": 44987,
                  "nodeType": "Return",
                  "src": "4973:21:23"
                }
              ]
            },
            "baseFunctions": [
              44459
            ],
            "documentation": {
              "id": 44979,
              "nodeType": "StructuredDocumentation",
              "src": "4849:37:23",
              "text": "@dev Used by FunctionsBilling.sol"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_getTransmitters",
            "nameLocation": "4898:16:23",
            "overrides": {
              "id": 44981,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4931:8:23"
            },
            "parameters": {
              "id": 44980,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4914:2:23"
            },
            "returnParameters": {
              "id": 44985,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44984,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 44989,
                  "src": "4949:16:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 44982,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4949:7:23",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 44983,
                    "nodeType": "ArrayTypeName",
                    "src": "4949:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4948:18:23"
            },
            "scope": 45226,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 45117,
            "nodeType": "FunctionDefinition",
            "src": "5003:1514:23",
            "nodes": [],
            "body": {
              "id": 45116,
              "nodeType": "Block",
              "src": "5144:1373:23",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    45004,
                    45007,
                    45010,
                    45013,
                    45016
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 45004,
                      "mutability": "mutable",
                      "name": "requestIds",
                      "nameLocation": "5175:10:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 45116,
                      "src": "5158:27:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 45002,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "5158:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 45003,
                        "nodeType": "ArrayTypeName",
                        "src": "5158:9:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                          "typeString": "bytes32[]"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 45007,
                      "mutability": "mutable",
                      "name": "results",
                      "nameLocation": "5208:7:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 45116,
                      "src": "5193:22:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                        "typeString": "bytes[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 45005,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "5193:5:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "id": 45006,
                        "nodeType": "ArrayTypeName",
                        "src": "5193:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                          "typeString": "bytes[]"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 45010,
                      "mutability": "mutable",
                      "name": "errors",
                      "nameLocation": "5238:6:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 45116,
                      "src": "5223:21:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                        "typeString": "bytes[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 45008,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "5223:5:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "id": 45009,
                        "nodeType": "ArrayTypeName",
                        "src": "5223:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                          "typeString": "bytes[]"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 45013,
                      "mutability": "mutable",
                      "name": "onchainMetadata",
                      "nameLocation": "5267:15:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 45116,
                      "src": "5252:30:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                        "typeString": "bytes[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 45011,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "5252:5:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "id": 45012,
                        "nodeType": "ArrayTypeName",
                        "src": "5252:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                          "typeString": "bytes[]"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 45016,
                      "mutability": "mutable",
                      "name": "offchainMetadata",
                      "nameLocation": "5305:16:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 45116,
                      "src": "5290:31:23",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                        "typeString": "bytes[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 45014,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "5290:5:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "id": 45015,
                        "nodeType": "ArrayTypeName",
                        "src": "5290:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr",
                          "typeString": "bytes[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 45037,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 45019,
                        "name": "report",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44991,
                        "src": "5341:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "components": [
                          {
                            "baseExpression": {
                              "id": 45021,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5350:7:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 45020,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "5350:7:23",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 45022,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5350:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$",
                              "typeString": "type(bytes32[] memory)"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 45024,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5361:5:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": {
                                "id": 45023,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "5361:5:23",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 45025,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5361:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$",
                              "typeString": "type(bytes memory[] memory)"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 45027,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5370:5:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": {
                                "id": 45026,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "5370:5:23",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 45028,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5370:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$",
                              "typeString": "type(bytes memory[] memory)"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 45030,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5379:5:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": {
                                "id": 45029,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "5379:5:23",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 45031,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5379:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$",
                              "typeString": "type(bytes memory[] memory)"
                            }
                          },
                          {
                            "baseExpression": {
                              "id": 45033,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5388:5:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                "typeString": "type(bytes storage pointer)"
                              },
                              "typeName": {
                                "id": 45032,
                                "name": "bytes",
                                "nodeType": "ElementaryTypeName",
                                "src": "5388:5:23",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 45034,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5388:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$",
                              "typeString": "type(bytes memory[] memory)"
                            }
                          }
                        ],
                        "id": 45035,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5349:47:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$_t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$",
                          "typeString": "tuple(type(bytes32[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(bytes memory[] memory))"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_tuple$_t_type$_t_array$_t_bytes32_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$_t_type$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_$",
                          "typeString": "tuple(type(bytes32[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(bytes memory[] memory),type(bytes memory[] memory))"
                        }
                      ],
                      "expression": {
                        "id": 45017,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -1,
                        "src": "5330:3:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 45018,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "5334:6:23",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "5330:10:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 45036,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5330:67:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$",
                      "typeString": "tuple(bytes32[] memory,bytes memory[] memory,bytes memory[] memory,bytes memory[] memory,bytes memory[] memory)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5150:247:23"
                },
                {
                  "assignments": [
                    45039
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 45039,
                      "mutability": "mutable",
                      "name": "numberOfFulfillments",
                      "nameLocation": "5411:20:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 45116,
                      "src": "5403:28:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 45038,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5403:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 45045,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 45042,
                          "name": "requestIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 45004,
                          "src": "5440:10:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 45043,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5451:6:23",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "5440:17:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 45041,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5434:5:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint8_$",
                        "typeString": "type(uint8)"
                      },
                      "typeName": {
                        "id": 45040,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "5434:5:23",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 45044,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5434:24:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5403:55:23"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 45068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 45063,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 45058,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 45053,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 45048,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 45046,
                              "name": "numberOfFulfillments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45039,
                              "src": "5476:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 45047,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5500:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "5476:25:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 45052,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 45049,
                              "name": "numberOfFulfillments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45039,
                              "src": "5511:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "expression": {
                                "id": 45050,
                                "name": "results",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 45007,
                                "src": "5535:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                                  "typeString": "bytes memory[] memory"
                                }
                              },
                              "id": 45051,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5543:6:23",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "5535:14:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5511:38:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "5476:73:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 45057,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 45054,
                            "name": "numberOfFulfillments",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45039,
                            "src": "5559:20:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "expression": {
                              "id": 45055,
                              "name": "errors",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45010,
                              "src": "5583:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                                "typeString": "bytes memory[] memory"
                              }
                            },
                            "id": 45056,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5590:6:23",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "5583:13:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5559:37:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "5476:120:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 45062,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 45059,
                          "name": "numberOfFulfillments",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 45039,
                          "src": "5606:20:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "expression": {
                            "id": 45060,
                            "name": "onchainMetadata",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45013,
                            "src": "5630:15:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            }
                          },
                          "id": 45061,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "5646:6:23",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "5630:22:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5606:46:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "5476:176:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 45067,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 45064,
                        "name": "numberOfFulfillments",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 45039,
                        "src": "5662:20:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "expression": {
                          "id": 45065,
                          "name": "offchainMetadata",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 45016,
                          "src": "5686:16:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                            "typeString": "bytes memory[] memory"
                          }
                        },
                        "id": 45066,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "5703:6:23",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "5686:23:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5662:47:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5476:233:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 45074,
                  "nodeType": "IfStatement",
                  "src": "5465:317:23",
                  "trueBody": {
                    "id": 45073,
                    "nodeType": "Block",
                    "src": "5716:66:23",
                    "statements": [
                      {
                        "errorCall": {
                          "arguments": [
                            {
                              "hexValue": "4669656c6473206d75737420626520657175616c206c656e677468",
                              "id": 45070,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5745:29:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_1e41d5015a5e9acefac5731b15740fd5ac5888776f7ff6427baac957ff5b4610",
                                "typeString": "literal_string \"Fields must be equal length\""
                              },
                              "value": "Fields must be equal length"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_1e41d5015a5e9acefac5731b15740fd5ac5888776f7ff6427baac957ff5b4610",
                                "typeString": "literal_string \"Fields must be equal length\""
                              }
                            ],
                            "id": 45069,
                            "name": "ReportInvalid",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50094,
                            "src": "5731:13:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (string memory) pure"
                            }
                          },
                          "id": 45071,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5731:44:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 45072,
                        "nodeType": "RevertStatement",
                        "src": "5724:51:23"
                      }
                    ]
                  }
                },
                {
                  "body": {
                    "id": 45104,
                    "nodeType": "Block",
                    "src": "5839:437:23",
                    "statements": [
                      {
                        "condition": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 45086,
                                "name": "requestIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 45004,
                                "src": "5870:10:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              "id": 45088,
                              "indexExpression": {
                                "id": 45087,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 45076,
                                "src": "5881:1:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5870:13:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 45085,
                            "name": "_isExistingRequest",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 44548,
                            "src": "5851:18:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                              "typeString": "function (bytes32) view returns (bool)"
                            }
                          },
                          "id": 45089,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5851:33:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 45092,
                        "nodeType": "IfStatement",
                        "src": "5847:169:23",
                        "trueBody": {
                          "id": 45091,
                          "nodeType": "Block",
                          "src": "5886:130:23",
                          "statements": [
                            {
                              "id": 45090,
                              "nodeType": "Break",
                              "src": "6002:5:23"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 45097,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 45093,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45076,
                            "src": "6027:1:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 45096,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 45094,
                              "name": "numberOfFulfillments",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45039,
                              "src": "6032:20:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 45095,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6055:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "6032:24:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6027:29:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 45103,
                        "nodeType": "IfStatement",
                        "src": "6023:247:23",
                        "trueBody": {
                          "id": 45102,
                          "nodeType": "Block",
                          "src": "6058:212:23",
                          "statements": [
                            {
                              "expression": {
                                "id": 45100,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 45098,
                                  "name": "shouldStop",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 44995,
                                  "src": "6244:10:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "hexValue": "74727565",
                                  "id": 45099,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6257:4:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "true"
                                },
                                "src": "6244:17:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 45101,
                              "nodeType": "ExpressionStatement",
                              "src": "6244:17:23"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 45081,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 45079,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 45076,
                      "src": "5808:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 45080,
                      "name": "numberOfFulfillments",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 45039,
                      "src": "5812:20:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5808:24:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 45105,
                  "initializationExpression": {
                    "assignments": [
                      45076
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 45076,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "5801:1:23",
                        "nodeType": "VariableDeclaration",
                        "scope": 45105,
                        "src": "5793:9:23",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 45075,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5793:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 45078,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 45077,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5805:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5793:13:23"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 45083,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "5834:3:23",
                      "subExpression": {
                        "id": 45082,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 45076,
                        "src": "5836:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 45084,
                    "nodeType": "ExpressionStatement",
                    "src": "5834:3:23"
                  },
                  "nodeType": "ForStatement",
                  "src": "5788:488:23"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "id": 45106,
                        "name": "shouldStop",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 44995,
                        "src": "6297:10:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 45108,
                            "name": "requestIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45004,
                            "src": "6351:10:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            }
                          },
                          {
                            "id": 45109,
                            "name": "results",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45007,
                            "src": "6380:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            }
                          },
                          {
                            "id": 45110,
                            "name": "errors",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45010,
                            "src": "6405:6:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            }
                          },
                          {
                            "id": 45111,
                            "name": "onchainMetadata",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45013,
                            "src": "6438:15:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            }
                          },
                          {
                            "id": 45112,
                            "name": "offchainMetadata",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45016,
                            "src": "6481:16:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                              "typeString": "bytes32[] memory"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            },
                            {
                              "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                              "typeString": "bytes memory[] memory"
                            }
                          ],
                          "id": 45107,
                          "name": "DecodedReport",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50157,
                          "src": "6315:13:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_DecodedReport_$50157_storage_ptr_$",
                            "typeString": "type(struct OCR2Base.DecodedReport storage pointer)"
                          }
                        },
                        "id": 45113,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [
                          "6339:10:23",
                          "6371:7:23",
                          "6397:6:23",
                          "6421:15:23",
                          "6463:16:23"
                        ],
                        "names": [
                          "requestIds",
                          "results",
                          "errors",
                          "onchainMetadata",
                          "offchainMetadata"
                        ],
                        "nodeType": "FunctionCall",
                        "src": "6315:191:23",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DecodedReport_$50157_memory_ptr",
                          "typeString": "struct OCR2Base.DecodedReport memory"
                        }
                      }
                    ],
                    "id": 45114,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "6289:223:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_struct$_DecodedReport_$50157_memory_ptr_$",
                      "typeString": "tuple(bool,struct OCR2Base.DecodedReport memory)"
                    }
                  },
                  "functionReturnParameters": 44999,
                  "id": 45115,
                  "nodeType": "Return",
                  "src": "6282:230:23"
                }
              ]
            },
            "baseFunctions": [
              50735
            ],
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeTransmit",
            "nameLocation": "5012:15:23",
            "overrides": {
              "id": 44993,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5073:8:23"
            },
            "parameters": {
              "id": 44992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44991,
                  "mutability": "mutable",
                  "name": "report",
                  "nameLocation": "5048:6:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 45117,
                  "src": "5033:21:23",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 44990,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5033:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5027:31:23"
            },
            "returnParameters": {
              "id": 44999,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 44995,
                  "mutability": "mutable",
                  "name": "shouldStop",
                  "nameLocation": "5096:10:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 45117,
                  "src": "5091:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 44994,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5091:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 44998,
                  "mutability": "mutable",
                  "name": "decodedReport",
                  "nameLocation": "5129:13:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 45117,
                  "src": "5108:34:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DecodedReport_$50157_memory_ptr",
                    "typeString": "struct OCR2Base.DecodedReport"
                  },
                  "typeName": {
                    "id": 44997,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 44996,
                      "name": "DecodedReport",
                      "nameLocations": [
                        "5108:13:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 50157,
                      "src": "5108:13:23"
                    },
                    "referencedDeclaration": 50157,
                    "src": "5108:13:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DecodedReport_$50157_storage_ptr",
                      "typeString": "struct OCR2Base.DecodedReport"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5090:53:23"
            },
            "scope": 45226,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 45204,
            "nodeType": "FunctionDefinition",
            "src": "6571:1125:23",
            "nodes": [],
            "body": {
              "id": 45203,
              "nodeType": "Block",
              "src": "6642:1054:23",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    45126
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 45126,
                      "mutability": "mutable",
                      "name": "numberOfFulfillments",
                      "nameLocation": "6656:20:23",
                      "nodeType": "VariableDeclaration",
                      "scope": 45203,
                      "src": "6648:28:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 45125,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6648:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 45133,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "expression": {
                            "id": 45129,
                            "name": "decodedReport",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 45121,
                            "src": "6685:13:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DecodedReport_$50157_memory_ptr",
                              "typeString": "struct OCR2Base.DecodedReport memory"
                            }
                          },
                          "id": 45130,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "6699:10:23",
                          "memberName": "requestIds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 50144,
                          "src": "6685:24:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                            "typeString": "bytes32[] memory"
                          }
                        },
                        "id": 45131,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6710:6:23",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "6685:31:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 45128,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6679:5:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint8_$",
                        "typeString": "type(uint8)"
                      },
                      "typeName": {
                        "id": 45127,
                        "name": "uint8",
                        "nodeType": "ElementaryTypeName",
                        "src": "6679:5:23",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 45132,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6679:38:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6648:69:23"
                },
                {
                  "body": {
                    "id": 45201,
                    "nodeType": "Block",
                    "src": "6850:842:23",
                    "statements": [
                      {
                        "assignments": [
                          45148
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 45148,
                            "mutability": "mutable",
                            "name": "result",
                            "nameLocation": "6890:6:23",
                            "nodeType": "VariableDeclaration",
                            "scope": 45201,
                            "src": "6858:38:23",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_FulfillResult_$49959",
                              "typeString": "enum FunctionsResponse.FulfillResult"
                            },
                            "typeName": {
                              "id": 45147,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 45146,
                                "name": "FunctionsResponse.FulfillResult",
                                "nameLocations": [
                                  "6858:17:23",
                                  "6876:13:23"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 49959,
                                "src": "6858:31:23"
                              },
                              "referencedDeclaration": 49959,
                              "src": "6858:31:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_FulfillResult_$49959",
                                "typeString": "enum FunctionsResponse.FulfillResult"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 45178,
                        "initialValue": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "baseExpression": {
                                    "expression": {
                                      "id": 45152,
                                      "name": "decodedReport",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 45121,
                                      "src": "6967:13:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_DecodedReport_$50157_memory_ptr",
                                        "typeString": "struct OCR2Base.DecodedReport memory"
                                      }
                                    },
                                    "id": 45153,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "6981:10:23",
                                    "memberName": "requestIds",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 50144,
                                    "src": "6967:24:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                      "typeString": "bytes32[] memory"
                                    }
                                  },
                                  "id": 45155,
                                  "indexExpression": {
                                    "id": 45154,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 45135,
                                    "src": "6992:1:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "6967:27:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "baseExpression": {
                                    "expression": {
                                      "id": 45156,
                                      "name": "decodedReport",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 45121,
                                      "src": "7006:13:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_DecodedReport_$50157_memory_ptr",
                                        "typeString": "struct OCR2Base.DecodedReport memory"
                                      }
                                    },
                                    "id": 45157,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "7020:7:23",
                                    "memberName": "results",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 50147,
                                    "src": "7006:21:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "bytes memory[] memory"
                                    }
                                  },
                                  "id": 45159,
                                  "indexExpression": {
                                    "id": 45158,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 45135,
                                    "src": "7028:1:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "7006:24:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                {
                                  "baseExpression": {
                                    "expression": {
                                      "id": 45160,
                                      "name": "decodedReport",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 45121,
                                      "src": "7042:13:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_DecodedReport_$50157_memory_ptr",
                                        "typeString": "struct OCR2Base.DecodedReport memory"
                                      }
                                    },
                                    "id": 45161,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "7056:6:23",
                                    "memberName": "errors",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 50150,
                                    "src": "7042:20:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "bytes memory[] memory"
                                    }
                                  },
                                  "id": 45163,
                                  "indexExpression": {
                                    "id": 45162,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 45135,
                                    "src": "7063:1:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "7042:23:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                {
                                  "baseExpression": {
                                    "expression": {
                                      "id": 45164,
                                      "name": "decodedReport",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 45121,
                                      "src": "7077:13:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_DecodedReport_$50157_memory_ptr",
                                        "typeString": "struct OCR2Base.DecodedReport memory"
                                      }
                                    },
                                    "id": 45165,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "7091:15:23",
                                    "memberName": "onchainMetadata",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 50153,
                                    "src": "7077:29:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "bytes memory[] memory"
                                    }
                                  },
                                  "id": 45167,
                                  "indexExpression": {
                                    "id": 45166,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 45135,
                                    "src": "7107:1:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "7077:32:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                {
                                  "baseExpression": {
                                    "expression": {
                                      "id": 45168,
                                      "name": "decodedReport",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 45121,
                                      "src": "7121:13:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_DecodedReport_$50157_memory_ptr",
                                        "typeString": "struct OCR2Base.DecodedReport memory"
                                      }
                                    },
                                    "id": 45169,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "7135:16:23",
                                    "memberName": "offchainMetadata",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 50156,
                                    "src": "7121:30:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_bytes_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "bytes memory[] memory"
                                    }
                                  },
                                  "id": 45171,
                                  "indexExpression": {
                                    "id": 45170,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 45135,
                                    "src": "7152:1:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "7121:33:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  }
                                },
                                {
                                  "arguments": [
                                    {
                                      "id": 45174,
                                      "name": "numberOfFulfillments",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 45126,
                                      "src": "7172:20:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 45173,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "7166:5:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint8_$",
                                      "typeString": "type(uint8)"
                                    },
                                    "typeName": {
                                      "id": 45172,
                                      "name": "uint8",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "7166:5:23",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 45175,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "7166:27:23",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes_memory_ptr",
                                    "typeString": "bytes memory"
                                  },
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 45151,
                                "name": "_fulfillAndBill",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 44313,
                                "src": "6940:15:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_uint8_$returns$_t_enum$_FulfillResult_$49959_$",
                                  "typeString": "function (bytes32,bytes memory,bytes memory,bytes memory,bytes memory,uint8) returns (enum FunctionsResponse.FulfillResult)"
                                }
                              },
                              "id": 45176,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6940:339:23",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_FulfillResult_$49959",
                                "typeString": "enum FunctionsResponse.FulfillResult"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_FulfillResult_$49959",
                                "typeString": "enum FunctionsResponse.FulfillResult"
                              }
                            ],
                            "expression": {
                              "id": 45149,
                              "name": "FunctionsResponse",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 49983,
                              "src": "6899:17:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_FunctionsResponse_$49983_$",
                                "typeString": "type(library FunctionsResponse)"
                              }
                            },
                            "id": 45150,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6917:13:23",
                            "memberName": "FulfillResult",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 49959,
                            "src": "6899:31:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_FulfillResult_$49959_$",
                              "typeString": "type(enum FunctionsResponse.FulfillResult)"
                            }
                          },
                          "id": 45177,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6899:388:23",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_FulfillResult_$49959",
                            "typeString": "enum FunctionsResponse.FulfillResult"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "6858:429:23"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 45189,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_enum$_FulfillResult_$49959",
                              "typeString": "enum FunctionsResponse.FulfillResult"
                            },
                            "id": 45183,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 45179,
                              "name": "result",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45148,
                              "src": "7474:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_FulfillResult_$49959",
                                "typeString": "enum FunctionsResponse.FulfillResult"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "expression": {
                                  "id": 45180,
                                  "name": "FunctionsResponse",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 49983,
                                  "src": "7484:17:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FunctionsResponse_$49983_$",
                                    "typeString": "type(library FunctionsResponse)"
                                  }
                                },
                                "id": 45181,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "7502:13:23",
                                "memberName": "FulfillResult",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 49959,
                                "src": "7484:31:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_FulfillResult_$49959_$",
                                  "typeString": "type(enum FunctionsResponse.FulfillResult)"
                                }
                              },
                              "id": 45182,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "7516:9:23",
                              "memberName": "FULFILLED",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 49952,
                              "src": "7484:41:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_FulfillResult_$49959",
                                "typeString": "enum FunctionsResponse.FulfillResult"
                              }
                            },
                            "src": "7474:51:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "||",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_enum$_FulfillResult_$49959",
                              "typeString": "enum FunctionsResponse.FulfillResult"
                            },
                            "id": 45188,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 45184,
                              "name": "result",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 45148,
                              "src": "7537:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_FulfillResult_$49959",
                                "typeString": "enum FunctionsResponse.FulfillResult"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "expression": {
                                  "id": 45185,
                                  "name": "FunctionsResponse",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 49983,
                                  "src": "7547:17:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_FunctionsResponse_$49983_$",
                                    "typeString": "type(library FunctionsResponse)"
                                  }
                                },
                                "id": 45186,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "7565:13:23",
                                "memberName": "FulfillResult",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 49959,
                                "src": "7547:31:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_FulfillResult_$49959_$",
                                  "typeString": "type(enum FunctionsResponse.FulfillResult)"
                                }
                              },
                              "id": 45187,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "7579:19:23",
                              "memberName": "USER_CALLBACK_ERROR",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 49953,
                              "src": "7547:51:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_FulfillResult_$49959",
                                "typeString": "enum FunctionsResponse.FulfillResult"
                              }
                            },
                            "src": "7537:61:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "7474:124:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 45200,
                        "nodeType": "IfStatement",
                        "src": "7461:225:23",
                        "trueBody": {
                          "id": 45199,
                          "nodeType": "Block",
                          "src": "7607:79:23",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "expression": {
                                        "id": 45191,
                                        "name": "decodedReport",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 45121,
                                        "src": "7637:13:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_DecodedReport_$50157_memory_ptr",
                                          "typeString": "struct OCR2Base.DecodedReport memory"
                                        }
                                      },
                                      "id": 45192,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "7651:10:23",
                                      "memberName": "requestIds",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 50144,
                                      "src": "7637:24:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                        "typeString": "bytes32[] memory"
                                      }
                                    },
                                    "id": 45194,
                                    "indexExpression": {
                                      "id": 45193,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 45135,
                                      "src": "7662:1:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "7637:27:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 45195,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": -15,
                                      "src": "7666:3:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 45196,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "7670:6:23",
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "src": "7666:10:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 45190,
                                  "name": "OracleResponse",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 44738,
                                  "src": "7622:14:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                                    "typeString": "function (bytes32,address)"
                                  }
                                },
                                "id": 45197,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7622:55:23",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 45198,
                              "nodeType": "EmitStatement",
                              "src": "7617:60:23"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 45140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 45138,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 45135,
                      "src": "6819:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 45139,
                      "name": "numberOfFulfillments",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 45126,
                      "src": "6823:20:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6819:24:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 45202,
                  "initializationExpression": {
                    "assignments": [
                      45135
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 45135,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "6812:1:23",
                        "nodeType": "VariableDeclaration",
                        "scope": 45202,
                        "src": "6804:9:23",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 45134,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "6804:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 45137,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 45136,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6816:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6804:13:23"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 45142,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": true,
                      "src": "6845:3:23",
                      "subExpression": {
                        "id": 45141,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 45135,
                        "src": "6847:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 45143,
                    "nodeType": "ExpressionStatement",
                    "src": "6845:3:23"
                  },
                  "nodeType": "ForStatement",
                  "src": "6799:893:23"
                }
              ]
            },
            "baseFunctions": [
              50658
            ],
            "documentation": {
              "id": 45118,
              "nodeType": "StructuredDocumentation",
              "src": "6521:47:23",
              "text": "@dev Report hook called within OCR2Base.sol"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_report",
            "nameLocation": "6580:7:23",
            "overrides": {
              "id": 45123,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6633:8:23"
            },
            "parameters": {
              "id": 45122,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45121,
                  "mutability": "mutable",
                  "name": "decodedReport",
                  "nameLocation": "6609:13:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 45204,
                  "src": "6588:34:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DecodedReport_$50157_memory_ptr",
                    "typeString": "struct OCR2Base.DecodedReport"
                  },
                  "typeName": {
                    "id": 45120,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 45119,
                      "name": "DecodedReport",
                      "nameLocations": [
                        "6588:13:23"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 50157,
                      "src": "6588:13:23"
                    },
                    "referencedDeclaration": 50157,
                    "src": "6588:13:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DecodedReport_$50157_storage_ptr",
                      "typeString": "struct OCR2Base.DecodedReport"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6587:36:23"
            },
            "returnParameters": {
              "id": 45124,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6642:0:23"
            },
            "scope": 45226,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 45213,
            "nodeType": "FunctionDefinition",
            "src": "7740:76:23",
            "nodes": [],
            "body": {
              "id": 45212,
              "nodeType": "Block",
              "src": "7785:31:23",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 45209,
                      "name": "_validateOwnership",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 71073,
                      "src": "7791:18:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 45210,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7791:20:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 45211,
                  "nodeType": "ExpressionStatement",
                  "src": "7791:20:23"
                }
              ]
            },
            "baseFunctions": [
              44531
            ],
            "documentation": {
              "id": 45205,
              "nodeType": "StructuredDocumentation",
              "src": "7700:37:23",
              "text": "@dev Used in FunctionsBilling.sol"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_onlyOwner",
            "nameLocation": "7749:10:23",
            "overrides": {
              "id": 45207,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7776:8:23"
            },
            "parameters": {
              "id": 45206,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7759:2:23"
            },
            "returnParameters": {
              "id": 45208,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7785:0:23"
            },
            "scope": 45226,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 45225,
            "nodeType": "FunctionDefinition",
            "src": "7860:95:23",
            "nodes": [],
            "body": {
              "id": 45224,
              "nodeType": "Block",
              "src": "7925:30:23",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 45220,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -28,
                        "src": "7938:4:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_FunctionsCoordinator_$45226",
                          "typeString": "contract FunctionsCoordinator"
                        }
                      },
                      "id": 45221,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7943:5:23",
                      "memberName": "owner",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 71036,
                      "src": "7938:10:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                        "typeString": "function () view external returns (address)"
                      }
                    },
                    "id": 45222,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7938:12:23",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 45219,
                  "id": 45223,
                  "nodeType": "Return",
                  "src": "7931:19:23"
                }
              ]
            },
            "baseFunctions": [
              44553
            ],
            "documentation": {
              "id": 45214,
              "nodeType": "StructuredDocumentation",
              "src": "7820:37:23",
              "text": "@dev Used in FunctionsBilling.sol"
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_owner",
            "nameLocation": "7869:6:23",
            "overrides": {
              "id": 45216,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7892:8:23"
            },
            "parameters": {
              "id": 45215,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7875:2:23"
            },
            "returnParameters": {
              "id": 45219,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 45218,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "7918:5:23",
                  "nodeType": "VariableDeclaration",
                  "scope": 45225,
                  "src": "7910:13:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 45217,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7910:7:23",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7909:15:23"
            },
            "scope": 45226,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 44687,
              "name": "OCR2Base",
              "nameLocations": [
                "574:8:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 50960,
              "src": "574:8:23"
            },
            "id": 44688,
            "nodeType": "InheritanceSpecifier",
            "src": "574:8:23"
          },
          {
            "baseName": {
              "id": 44689,
              "name": "IFunctionsCoordinator",
              "nameLocations": [
                "584:21:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 48981,
              "src": "584:21:23"
            },
            "id": 44690,
            "nodeType": "InheritanceSpecifier",
            "src": "584:21:23"
          },
          {
            "baseName": {
              "id": 44691,
              "name": "FunctionsBilling",
              "nameLocations": [
                "607:16:23"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 44554,
              "src": "607:16:23"
            },
            "id": 44692,
            "nodeType": "InheritanceSpecifier",
            "src": "607:16:23"
          }
        ],
        "canonicalName": "FunctionsCoordinator",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 44686,
          "nodeType": "StructuredDocumentation",
          "src": "413:128:23",
          "text": "@title Functions Coordinator contract\n @notice Contract that nodes of a Decentralized Oracle Network (DON) interact with"
        },
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          45226,
          44554,
          48902,
          48175,
          48981,
          50960,
          50079,
          71235,
          70919,
          71082,
          71227
        ],
        "name": "FunctionsCoordinator",
        "nameLocation": "550:20:23",
        "scope": 45227,
        "usedErrors": [
          43554,
          43556,
          43558,
          43560,
          43564,
          43568,
          43572,
          43574,
          43576,
          43578,
          44740,
          44742,
          44744,
          48103,
          48105,
          48107,
          50094,
          50098
        ]
      }
    ],
    "license": "MIT"
  },
  "id": 23
}
