{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_hub",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_revokedNonce",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_config",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "AcceptorIsProposer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "tag",
          "type": "bytes32"
        }
      ],
      "name": "AddressMissingHubTag",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "used",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "limit",
          "type": "uint256"
        }
      ],
      "name": "AvailableCreditLimitExceeded",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "CallerIsNotStatedProposer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "current",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "allowed",
          "type": "address"
        }
      ],
      "name": "CallerNotAllowedAcceptor",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "loanContract",
          "type": "address"
        }
      ],
      "name": "CallerNotLoanContract",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "CollateralIdNotWhitelisted",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "current",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "expiration",
          "type": "uint256"
        }
      ],
      "name": "Expired",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "current",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "proposed",
          "type": "bytes32"
        }
      ],
      "name": "InvalidCollateralStateFingerprint",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "refinancingLoanId",
          "type": "uint256"
        }
      ],
      "name": "InvalidRefinancingLoanId",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "signer",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "digest",
          "type": "bytes32"
        }
      ],
      "name": "InvalidSignature",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "length",
          "type": "uint256"
        }
      ],
      "name": "InvalidSignatureLength",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "MissingStateFingerprintComputer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "nonceSpace",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "NonceNotUsable",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "proposalHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "collateralIdsWhitelistMerkleRoot",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "creditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "expiration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "indexed": false,
          "internalType": "struct PWNSimpleLoanListProposal.Proposal",
          "name": "proposal",
          "type": "tuple"
        }
      ],
      "name": "ProposalMade",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MULTIPROPOSAL_DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MULTIPROPOSAL_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PROPOSAL_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "acceptor",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "refinancingLoanId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "proposalData",
          "type": "bytes"
        },
        {
          "internalType": "bytes32[]",
          "name": "proposalInclusionProof",
          "type": "bytes32[]"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "acceptProposal",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "proposalHash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "lender",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "borrower",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "category",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "assetAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct MultiToken.Asset",
              "name": "collateral",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "category",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "assetAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "id",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct MultiToken.Asset",
              "name": "credit",
              "type": "tuple"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "bytes32",
              "name": "lenderSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "borrowerSpecHash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct PWNSimpleLoan.Terms",
          "name": "loanTerms",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "config",
      "outputs": [
        {
          "internalType": "contract PWNConfig",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "creditUsed",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "proposalData",
          "type": "bytes"
        }
      ],
      "name": "decodeProposalData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "collateralIdsWhitelistMerkleRoot",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "creditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "expiration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "internalType": "struct PWNSimpleLoanListProposal.Proposal",
          "name": "",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "collateralId",
              "type": "uint256"
            },
            {
              "internalType": "bytes32[]",
              "name": "merkleInclusionProof",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct PWNSimpleLoanListProposal.ProposalValues",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "collateralIdsWhitelistMerkleRoot",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "creditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "expiration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "internalType": "struct PWNSimpleLoanListProposal.Proposal",
          "name": "proposal",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "collateralId",
              "type": "uint256"
            },
            {
              "internalType": "bytes32[]",
              "name": "merkleInclusionProof",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct PWNSimpleLoanListProposal.ProposalValues",
          "name": "proposalValues",
          "type": "tuple"
        }
      ],
      "name": "encodeProposalData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "multiproposalMerkleRoot",
              "type": "bytes32"
            }
          ],
          "internalType": "struct PWNSimpleLoanProposal.Multiproposal",
          "name": "multiproposal",
          "type": "tuple"
        }
      ],
      "name": "getMultiproposalHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "collateralIdsWhitelistMerkleRoot",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "creditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "expiration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "internalType": "struct PWNSimpleLoanListProposal.Proposal",
          "name": "proposal",
          "type": "tuple"
        }
      ],
      "name": "getProposalHash",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "hub",
      "outputs": [
        {
          "internalType": "contract PWNHub",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "enum MultiToken.Category",
              "name": "collateralCategory",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "collateralAddress",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "collateralIdsWhitelistMerkleRoot",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "checkCollateralStateFingerprint",
              "type": "bool"
            },
            {
              "internalType": "bytes32",
              "name": "collateralStateFingerprint",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "creditAddress",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "creditAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "availableCreditLimit",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "fixedInterestAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint40",
              "name": "accruingInterestAPR",
              "type": "uint40"
            },
            {
              "internalType": "uint32",
              "name": "duration",
              "type": "uint32"
            },
            {
              "internalType": "uint40",
              "name": "expiration",
              "type": "uint40"
            },
            {
              "internalType": "address",
              "name": "allowedAcceptor",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "proposerSpecHash",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "isOffer",
              "type": "bool"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "internalType": "struct PWNSimpleLoanListProposal.Proposal",
          "name": "proposal",
          "type": "tuple"
        }
      ],
      "name": "makeProposal",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "proposalHash",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "proposalsMade",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "nonceSpace",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "nonce",
          "type": "uint256"
        }
      ],
      "name": "revokeNonce",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "revokedNonce",
      "outputs": [
        {
          "internalType": "contract PWNRevokedNonce",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x6101206040523480156200001257600080fd5b5060405162002a0438038062002a048339810160408190526200003591620001ea565b604080518082018252601981527f50574e53696d706c654c6f616e4c69737450726f706f73616c0000000000000060208083019190915282518084018452600381526218971960e91b818301526001600160a01b0380881660c05280871660e052851661010052925186938693869390927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f91620000d69185910162000234565b6040516020818303038152906040528051906020012082604051602001620000ff919062000234565b60408051601f1981840301815282825280516020918201209083019490945281019190915260608101919091524660808201523060a082015260c00160408051808303601f1901815282825280516020918201206080527fb2178a58fb1eefb359ecfdd57bb19c0bdd0f4e6eed8547f46600e500ed111af3908301527fb63b40822cc79278afd8d1ce1a8006a4a298ec829d4d1610b69b2a4830c232709082015260600160408051601f19818403018152919052805160209091012060a05250620002659650505050505050565b80516001600160a01b0381168114620001e557600080fd5b919050565b6000806000606084860312156200020057600080fd5b6200020b84620001cd565b92506200021b60208501620001cd565b91506200022b60408501620001cd565b90509250925092565b6000825160005b818110156200025757602081860181015185830152016200023b565b506000920191825250919050565b60805160a05160c05160e05161010051612729620002db6000396000818161024201526110a10152600081816102a30152818161084201528181610dfb0152610f420152600081816101ee0152610af00152600081816102ca01526108b50152600081816101c701526109b101526127296000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c806379502c55116100a2578063abe9387811610071578063abe93878146102c5578063d06a0d82146102ec578063f0209ad614610313578063f164787414610333578063ffa1ad741461035357600080fd5b806379502c551461023d578063829d377014610264578063853b94a0146102775780639788ad551461029e57600080fd5b80632d5d17fc116100de5780632d5d17fc146101a15780633644e515146101c2578063365a86fc146101e9578063579bfc301461022857600080fd5b806301e832721461011057806318e639b91461013a5780631a787a481461015b5780631da4c2751461016e575b600080fd5b61012361011e366004611952565b610375565b604051610131929190611aa4565b60405180910390f35b61014d610148366004611b46565b610693565b604051908152602001610131565b61014d610169366004611b46565b610713565b61019161017c366004611b5f565b60006020819052908152604090205460ff1681565b6040519015158152602001610131565b6101b46101af366004611c0c565b610750565b604051610131929190611dd6565b61014d7f000000000000000000000000000000000000000000000000000000000000000081565b6102107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610131565b61023b610236366004611e45565b61082b565b005b6102107f000000000000000000000000000000000000000000000000000000000000000081565b61014d610272366004611e67565b6108b1565b61014d7fafbf4de294949c186bbc5f2122c5a2c96baf0ea86d6d3b740cddf83e4f89035181565b6102107f000000000000000000000000000000000000000000000000000000000000000081565b61014d7f000000000000000000000000000000000000000000000000000000000000000081565b61014d7f73af92d8ed4d3261ba61cd686d2f8a9cceb2563cc7c4c5355eb121316fc5358d81565b61014d610321366004611b5f565b60016020526000908152604090205481565b610346610341366004611fe5565b610981565b60405161013191906121bb565b6103466040518060400160405280600381526020016218971960e91b81525081565b600061037f611859565b6000806103c18a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061075092505050565b9150915061040e7fafbf4de294949c186bbc5f2122c5a2c96baf0ea86d6d3b740cddf83e4f890351836040516020016103fa91906121ce565b6040516020818303038152906040526109ad565b6040830151909450156104825761045a81602001518360400151836000015160405160200161043f91815260200190565b60405160208183030381529060405280519060200120610a3e565b61048257805160405163153accc960e21b815260048101919091526024015b60405180910390fd5b61055f8c8c868b8b8b8b604051806101c001604052808b602001516001600160a01b031681526020018a6000015181526020018b60800151151581526020018b60a0015181526020018b60e0015181526020018b610100015181526020018b610180015164ffffffffff1681526020018b6101a001516001600160a01b031681526020018b6101c001516001600160a01b031681526020018b6102000151151581526020018b610220015181526020018b610240015181526020018b610260015181526020018b61028001516001600160a01b0316815250610a56565b60405180610120016040528083610200015161057b578d610582565b836101c001515b6001600160a01b031681526020018361020001516105a557836101c001516105a7565b8d5b6001600160a01b0316815260200183610160015163ffffffff1681526020016040518060800160405280856000015160038111156105e7576105e7611a39565b815260200185602001516001600160a01b0316815260200184600001518152602001856060015181525081526020016106288460c001518560e00151611254565b8152602001836101200151815260200183610140015164ffffffffff16815260200183610200015161065b576000610662565b836101e001515b815260200183610200015161067c57836101e0015161067f565b60005b815250925050509850989650505050505050565b600061069e82610713565b90506106bb816106b66101e085016101c086016121dd565b61128c565b6106cd6101e083016101c084016121dd565b6001600160a01b0316817f5ea9a493aa7cc9a038b59151e7f783c297cb1b764579b58cfd90f530049a8c098460405161070691906121fa565b60405180910390a3919050565b600061074a7fafbf4de294949c186bbc5f2122c5a2c96baf0ea86d6d3b740cddf83e4f890351836040516020016103fa91906121fa565b92915050565b604080516102a081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101829052610220810182905261024081018290526102608101829052610280810191909152604080518082019091526000815260606020820152828060200190518101906108229190612448565b91509150915091565b60405163f79924a960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f79924a99061087b903390869086906004016125c4565b600060405180830381600087803b15801561089557600080fd5b505af11580156108a9573d6000803e3d6000fd5b505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000007f73af92d8ed4d3261ba61cd686d2f8a9cceb2563cc7c4c5355eb121316fc5358d836040516020016109099151815260200190565b60408051601f198184030181529082905261092792916020016125e5565b6040516020818303038152906040528051906020012060405160200161096492919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050919050565b60608282604051602001610996929190611dd6565b604051602081830303815290604052905092915050565b60007f000000000000000000000000000000000000000000000000000000000000000083836040516020016109e39291906125e5565b60405160208183030381529060405280519060200120604051602001610a2092919061190160f01b81526002810192909252602282015260420190565b60405160208183030381529060405280519060200120905092915050565b600082610a4b85846112dc565b1490505b9392505050565b806101a001516001600160a01b0316336001600160a01b031614610aa5576101a081015160405163a4ce7f2960e01b81523360048201526001600160a01b039091166024820152604401610479565b6101a081015160405163680cabbd60e11b81526001600160a01b0391821660048201527f9e56ea094d7a53440eef11fa42b63159fbf703b4ee579494a6ae85afc560359460248201527f00000000000000000000000000000000000000000000000000000000000000009091169063d019577a90604401602060405180830381865afa158015610b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d919061260b565b610bb2576101a0810151604051630b92eb2560e11b81526001600160a01b0390911660048201527f9e56ea094d7a53440eef11fa42b63159fbf703b4ee579494a6ae85afc56035946024820152604401610479565b6000849003610c525760008681526020819052604090205460ff16610c4d57610c178161010001518785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061132992505050565b610c4d576101008101516040516301d2d55760e31b81526001600160a01b03909116600482015260248101879052604401610479565b610cf4565b6000610c746040518060200160405280610c6d89898c6114cd565b90526108b1565b9050610cbc8261010001518286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061132992505050565b610cf2576101008201516040516301d2d55760e31b81526001600160a01b03909116600482015260248101829052604401610479565b505b876001600160a01b03168161010001516001600160a01b031603610d36576040516326ab1a1d60e11b81526001600160a01b0389166004820152602401610479565b86600003610d705761014081015115610d6b57806101400151604051637a4b6f9760e11b815260040161047991815260200190565b610db9565b8061014001518714610db957610140810151151580610d925750806101200151155b15610db957806101400151604051637a4b6f9760e11b815260040161047991815260200190565b8060c0015164ffffffffff164210610df95760c081015160405163aa2fd92560e01b815242600482015264ffffffffff9091166024820152604401610479565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f291a62c8261010001518361016001518461018001516040518463ffffffff1660e01b8152600401610e58939291906125c4565b602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e99919061260b565b610ecb57806101000151816101600151826101800151604051632108c30560e11b8152600401610479939291906125c4565b60e08101516001600160a01b031615801590610efd57508060e001516001600160a01b0316886001600160a01b031614155b15610f345760e0810151604051636075c95560e11b81526001600160a01b03808b1660048301529091166024820152604401610479565b8060a00151600003610fd6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f79924a98261010001518361016001518461018001516040518463ffffffff1660e01b8152600401610f9f939291906125c4565b600060405180830381600087803b158015610fb957600080fd5b505af1158015610fcd573d6000803e3d6000fd5b50505050611071565b60a08101516080820151600088815260016020526040902054610ff9919061263e565b1161102c5760808101516000878152600160205260408120805490919061102190849061263e565b909155506110719050565b608081015160008781526001602052604090205461104a919061263e565b60a082015160405163231795cb60e21b815260048101929092526024820152604401610479565b80604001511561124a578051604051630b7e49eb60e21b81526001600160a01b03918216600482015260009182917f000000000000000000000000000000000000000000000000000000000000000090911690632df927ac90602401602060405180830381865afa1580156110ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110e9190612651565b90506001600160a01b038116156111ac578251602084015160405163ec2ce34560e01b81526001600160a01b0384169263ec2ce34592611164926004016001600160a01b03929092168252602082015260400190565b602060405180830381865afa158015611181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a5919061266e565b9150611213565b82516111bf9063f511231560e01b611519565b156111fa578251602084015160405163f511231560e01b81526001600160a01b039092169163f5112315916111649160040190815260200190565b60405163f3c0936360e01b815260040160405180910390fd5b81836060015114611247576060830151604051633840fc0160e01b8152610479918491600401918252602082015260400190565b50505b5050505050505050565b61125c6118b2565b506040805160808101825260008082526001600160a01b0394909416602082015290810192909252606082015290565b336001600160a01b038216146112c057604051631144200360e31b81526001600160a01b0382166004820152602401610479565b506000908152602081905260409020805460ff19166001179055565b600081815b84518110156113215761130d8286838151811061130057611300612687565b6020026020010151611535565b9150806113198161269d565b9150506112e1565b509392505050565b60006001600160a01b0384163b1561142457600080856001600160a01b0316631626ba7e60e01b86866040516024016113639291906126b6565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516113a191906126d7565b600060405180830381855afa9150503d80600081146113dc576040519150601f19603f3d011682016040523d82523d6000602084013e6113e1565b606091505b50915091508180156113f4575080516020145b801561141b57508051630b135d3f60e11b90611419908301602090810190840161266e565b145b92505050610a4f565b6000806000845160410361144c5750505060208201516040830151606084015160001a6114a3565b845160400361148557602085015160408601519093506001600160ff1b038116925061147d60ff82901c601b61263e565b9150506114a3565b845160405163058676ad60e31b815260040161047991815260200190565b6114af86828585611564565b6001600160a01b0316876001600160a01b0316149350505050610a4f565b600081815b84811015611510576114fc828787848181106114f0576114f0612687565b90506020020135611535565b9150806115088161269d565b9150506114d2565b50949350505050565b60006115248361158c565b8015610a4f5750610a4f83836115bf565b6000818310611551576000828152602084905260409020610a4f565b6000838152602083905260409020610a4f565b600080600061157587878787611648565b915091506115828161170c565b5095945050505050565b600061159f826301ffc9a760e01b6115bf565b801561074a57506115b8826001600160e01b03196115bf565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015611631575060208210155b801561163d5750600081115b979650505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561167f5750600090506003611703565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156116d3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116fc57600060019250925050611703565b9150600090505b94509492505050565b600081600481111561172057611720611a39565b036117285750565b600181600481111561173c5761173c611a39565b036117895760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610479565b600281600481111561179d5761179d611a39565b036117ea5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610479565b60038160048111156117fe576117fe611a39565b036118565760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610479565b50565b604080516101208101825260008082526020820181905291810191909152606081016118836118b2565b81526020016118906118b2565b8152600060208201819052604082018190526060820181905260809091015290565b6040805160808101909152806000815260200160006001600160a01b0316815260200160008152602001600081525090565b6001600160a01b038116811461185657600080fd5b8035611904816118e4565b919050565b60008083601f84011261191b57600080fd5b50813567ffffffffffffffff81111561193357600080fd5b60208301915083602082850101111561194b57600080fd5b9250929050565b60008060008060008060008060a0898b03121561196e57600080fd5b8835611979816118e4565b975060208901359650604089013567ffffffffffffffff8082111561199d57600080fd5b6119a98c838d01611909565b909850965060608b01359150808211156119c257600080fd5b818b0191508b601f8301126119d657600080fd5b8135818111156119e557600080fd5b8c60208260051b85010111156119fa57600080fd5b6020830196508095505060808b0135915080821115611a1857600080fd5b50611a258b828c01611909565b999c989b5096995094979396929594505050565b634e487b7160e01b600052602160045260246000fd5b60048110611a6d57634e487b7160e01b600052602160045260246000fd5b9052565b611a7c828251611a4f565b6020818101516001600160a01b03169083015260408082015190830152606090810151910152565b82815281516001600160a01b03166020820152610200810160208301516001600160a01b038116604084015250604083015163ffffffff81166060840152506060830151611af56080840182611a71565b506080830151610100611b0a81850183611a71565b60a085015161018085015260c085015164ffffffffff166101a085015260e08501516101c0850152909301516101e09092019190915292915050565b60006102a08284031215611b5957600080fd5b50919050565b600060208284031215611b7157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611bb157611bb1611b78565b60405290565b6040516102a0810167ffffffffffffffff81118282101715611bb157611bb1611b78565b604051601f8201601f1916810167ffffffffffffffff81118282101715611c0457611c04611b78565b604052919050565b60006020808385031215611c1f57600080fd5b823567ffffffffffffffff80821115611c3757600080fd5b818501915085601f830112611c4b57600080fd5b813581811115611c5d57611c5d611b78565b611c6f601f8201601f19168501611bdb565b91508082528684828501011115611c8557600080fd5b8084840185840137600090820190930192909252509392505050565b611cac828251611a4f565b6020810151611cc660208401826001600160a01b03169052565b5060408101516040830152606081015160608301526080810151611cee608084018215159052565b5060a081015160a083015260c0810151611d1360c08401826001600160a01b03169052565b5060e08181015190830152610100808201519083015261012080820151908301526101408082015164ffffffffff908116918401919091526101608083015163ffffffff169084015261018080830151909116908301526101a0808201516001600160a01b03908116918401919091526101c0808301518216908401526101e08083015190840152610200808301511515908401526102208083015190840152610240808301519084015261026080830151908401526102809182015116910152565b60006102c0611de58386611ca1565b6102a0830181905283519083015260208084015160406102e085015280516103008501819052908201906000906103208601905b80831015611e395783518252928401926001929092019190840190611e19565b50979650505050505050565b60008060408385031215611e5857600080fd5b50508035926020909101359150565b600060208284031215611e7957600080fd5b6040516020810181811067ffffffffffffffff82111715611e9c57611e9c611b78565b6040529135825250919050565b6004811061185657600080fd5b803561190481611ea9565b801515811461185657600080fd5b803561190481611ec1565b64ffffffffff8116811461185657600080fd5b803561190481611eda565b63ffffffff8116811461185657600080fd5b803561190481611ef8565b600067ffffffffffffffff821115611f2f57611f2f611b78565b5060051b60200190565b600060408284031215611f4b57600080fd5b611f53611b8e565b90508135815260208083013567ffffffffffffffff811115611f7457600080fd5b8301601f81018513611f8557600080fd5b8035611f98611f9382611f15565b611bdb565b81815260059190911b82018301908381019087831115611fb757600080fd5b928401925b82841015611fd557833582529284019290840190611fbc565b8085870152505050505092915050565b6000808284036102c0811215611ffa57600080fd5b6102a08082121561200a57600080fd5b612012611bb7565b915061201d85611eb6565b825261202b602086016118f9565b6020830152604085013560408301526060850135606083015261205060808601611ecf565b608083015260a085013560a083015261206b60c086016118f9565b60c083015260e085810135908301526101008086013590830152610120808601359083015261014061209e818701611eed565b908301526101606120b0868201611f0a565b908301526101806120c2868201611eed565b908301526101a06120d48682016118f9565b908301526101c06120e68682016118f9565b908301526101e08581013590830152610200612103818701611ecf565b908301526102208581013590830152610240808601359083015261026080860135908301526102806121368187016118f9565b9083015290925083013567ffffffffffffffff81111561215557600080fd5b61216185828601611f39565b9150509250929050565b60005b8381101561218657818101518382015260200161216e565b50506000910152565b600081518084526121a781602086016020860161216b565b601f01601f19169290920160200192915050565b602081526000610a4f602083018461218f565b6102a0810161074a8284611ca1565b6000602082840312156121ef57600080fd5b8135610a4f816118e4565b6102a081016122118261220c85611eb6565b611a4f565b61221d602084016118f9565b6001600160a01b038116602084015250604083013560408301526060830135606083015261224d60808401611ecf565b1515608083015260a0838101359083015261226a60c084016118f9565b6001600160a01b031660c083015260e08381013590830152610100808401359083015261012080840135908301526101406122a6818501611eed565b64ffffffffff16908301526101606122bf848201611f0a565b63ffffffff16908301526101806122d7848201611eed565b64ffffffffff16908301526101a06122f08482016118f9565b6001600160a01b0316908301526101c061230b8482016118f9565b6001600160a01b0316908301526101e08381013590830152610200612331818501611ecf565b1515908301526102208381013590830152610240808401359083015261026080840135908301526102806123668185016118f9565b6001600160a01b0316920191909152919050565b805161190481611ea9565b8051611904816118e4565b805161190481611ec1565b805161190481611eda565b805161190481611ef8565b6000604082840312156123c357600080fd5b6123cb611b8e565b90508151815260208083015167ffffffffffffffff8111156123ec57600080fd5b8301601f810185136123fd57600080fd5b805161240b611f9382611f15565b81815260059190911b8201830190838101908783111561242a57600080fd5b928401925b82841015611fd55783518252928401929084019061242f565b6000808284036102c081121561245d57600080fd5b6102a08082121561246d57600080fd5b612475611bb7565b91506124808561237a565b825261248e60208601612385565b602083015260408501516040830152606085015160608301526124b360808601612390565b608083015260a085015160a08301526124ce60c08601612385565b60c083015260e085810151908301526101008086015190830152610120808601519083015261014061250181870161239b565b908301526101606125138682016123a6565b9083015261018061252586820161239b565b908301526101a0612537868201612385565b908301526101c0612549868201612385565b908301526101e08581015190830152610200612566818701612390565b90830152610220858101519083015261024080860151908301526102608086015190830152610280612599818701612385565b9083015284015190925067ffffffffffffffff8111156125b857600080fd5b612161858286016123b1565b6001600160a01b039390931683526020830191909152604082015260600190565b828152600082516125fd81602085016020870161216b565b919091016020019392505050565b60006020828403121561261d57600080fd5b8151610a4f81611ec1565b634e487b7160e01b600052601160045260246000fd5b8082018082111561074a5761074a612628565b60006020828403121561266357600080fd5b8151610a4f816118e4565b60006020828403121561268057600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600182016126af576126af612628565b5060010190565b8281526040602082015260006126cf604083018461218f565b949350505050565b600082516126e981846020870161216b565b919091019291505056fea26469706673582212205ee3c5ea8f3e460f171747972966f555d0afadd1a2547107b7a46e08c6bfd05b64736f6c63430008100033",
    "sourceMap": "590:10174:89:-:0;;;5572:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4106:773:90;;;;;;;;;;;;;;;;;;;;5749:7:89;;;;;;;;;;-1:-1:-1;;;5749:7:89;;;;-1:-1:-1;;;;;4271:18:90;;;;;4299:45;;;;;4354:27;;;;4564:22;;5690:4:89;;5696:13;;5711:7;;4106:773:90;;4445:95;;4564:22;;4106:773;;4564:22;;:::i;:::-;;;;;;;;;;;;;4554:33;;;;;;4628:7;4611:25;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4611:25:90;;;;;;;;;4601:36;;4611:25;4601:36;;;;4421:280;;;1257:25:119;;;;1298:18;;1291:34;;;;1341:18;;;1334:34;;;;4651:13:90;1384:18:119;;;1377:34;4686:4:90;1427:19:119;;;1420:61;1229:19;;4421:280:90;;;;;;-1:-1:-1;;4421:280:90;;;;;;4411:291;;4421:280;4411:291;;;;4392:310;;4780:38;4756:115;;;1666:25:119;4832:29:90;1707:18:119;;;1700:34;1639:18;;4756:115:90;;;-1:-1:-1;;4756:115:90;;;;;;;;;4746:126;;4756:115;4746:126;;;;4713:159;;-1:-1:-1;590:10174:89;;-1:-1:-1;;;;;;;590:10174:89;14:177:119;93:13;;-1:-1:-1;;;;;135:31:119;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:378::-;284:6;292;300;353:2;341:9;332:7;328:23;324:32;321:52;;;369:1;366;359:12;321:52;392:40;422:9;392:40;:::i;:::-;382:50;;451:49;496:2;485:9;481:18;451:49;:::i;:::-;441:59;;519:49;564:2;553:9;549:18;519:49;:::i;:::-;509:59;;196:378;;;;;:::o;579:414::-;710:3;748:6;742:13;773:1;783:129;797:6;794:1;791:13;783:129;;;895:4;879:14;;;875:25;;869:32;856:11;;;849:53;812:12;783:129;;;-1:-1:-1;967:1:119;931:16;;956:13;;;-1:-1:-1;931:16:119;579:414;-1:-1:-1;579:414:119:o;1492:248::-;590:10174:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c806379502c55116100a2578063abe9387811610071578063abe93878146102c5578063d06a0d82146102ec578063f0209ad614610313578063f164787414610333578063ffa1ad741461035357600080fd5b806379502c551461023d578063829d377014610264578063853b94a0146102775780639788ad551461029e57600080fd5b80632d5d17fc116100de5780632d5d17fc146101a15780633644e515146101c2578063365a86fc146101e9578063579bfc301461022857600080fd5b806301e832721461011057806318e639b91461013a5780631a787a481461015b5780631da4c2751461016e575b600080fd5b61012361011e366004611952565b610375565b604051610131929190611aa4565b60405180910390f35b61014d610148366004611b46565b610693565b604051908152602001610131565b61014d610169366004611b46565b610713565b61019161017c366004611b5f565b60006020819052908152604090205460ff1681565b6040519015158152602001610131565b6101b46101af366004611c0c565b610750565b604051610131929190611dd6565b61014d7f000000000000000000000000000000000000000000000000000000000000000081565b6102107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610131565b61023b610236366004611e45565b61082b565b005b6102107f000000000000000000000000000000000000000000000000000000000000000081565b61014d610272366004611e67565b6108b1565b61014d7fafbf4de294949c186bbc5f2122c5a2c96baf0ea86d6d3b740cddf83e4f89035181565b6102107f000000000000000000000000000000000000000000000000000000000000000081565b61014d7f000000000000000000000000000000000000000000000000000000000000000081565b61014d7f73af92d8ed4d3261ba61cd686d2f8a9cceb2563cc7c4c5355eb121316fc5358d81565b61014d610321366004611b5f565b60016020526000908152604090205481565b610346610341366004611fe5565b610981565b60405161013191906121bb565b6103466040518060400160405280600381526020016218971960e91b81525081565b600061037f611859565b6000806103c18a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061075092505050565b9150915061040e7fafbf4de294949c186bbc5f2122c5a2c96baf0ea86d6d3b740cddf83e4f890351836040516020016103fa91906121ce565b6040516020818303038152906040526109ad565b6040830151909450156104825761045a81602001518360400151836000015160405160200161043f91815260200190565b60405160208183030381529060405280519060200120610a3e565b61048257805160405163153accc960e21b815260048101919091526024015b60405180910390fd5b61055f8c8c868b8b8b8b604051806101c001604052808b602001516001600160a01b031681526020018a6000015181526020018b60800151151581526020018b60a0015181526020018b60e0015181526020018b610100015181526020018b610180015164ffffffffff1681526020018b6101a001516001600160a01b031681526020018b6101c001516001600160a01b031681526020018b6102000151151581526020018b610220015181526020018b610240015181526020018b610260015181526020018b61028001516001600160a01b0316815250610a56565b60405180610120016040528083610200015161057b578d610582565b836101c001515b6001600160a01b031681526020018361020001516105a557836101c001516105a7565b8d5b6001600160a01b0316815260200183610160015163ffffffff1681526020016040518060800160405280856000015160038111156105e7576105e7611a39565b815260200185602001516001600160a01b0316815260200184600001518152602001856060015181525081526020016106288460c001518560e00151611254565b8152602001836101200151815260200183610140015164ffffffffff16815260200183610200015161065b576000610662565b836101e001515b815260200183610200015161067c57836101e0015161067f565b60005b815250925050509850989650505050505050565b600061069e82610713565b90506106bb816106b66101e085016101c086016121dd565b61128c565b6106cd6101e083016101c084016121dd565b6001600160a01b0316817f5ea9a493aa7cc9a038b59151e7f783c297cb1b764579b58cfd90f530049a8c098460405161070691906121fa565b60405180910390a3919050565b600061074a7fafbf4de294949c186bbc5f2122c5a2c96baf0ea86d6d3b740cddf83e4f890351836040516020016103fa91906121fa565b92915050565b604080516102a081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101829052610220810182905261024081018290526102608101829052610280810191909152604080518082019091526000815260606020820152828060200190518101906108229190612448565b91509150915091565b60405163f79924a960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f79924a99061087b903390869086906004016125c4565b600060405180830381600087803b15801561089557600080fd5b505af11580156108a9573d6000803e3d6000fd5b505050505050565b60007f00000000000000000000000000000000000000000000000000000000000000007f73af92d8ed4d3261ba61cd686d2f8a9cceb2563cc7c4c5355eb121316fc5358d836040516020016109099151815260200190565b60408051601f198184030181529082905261092792916020016125e5565b6040516020818303038152906040528051906020012060405160200161096492919061190160f01b81526002810192909252602282015260420190565b604051602081830303815290604052805190602001209050919050565b60608282604051602001610996929190611dd6565b604051602081830303815290604052905092915050565b60007f000000000000000000000000000000000000000000000000000000000000000083836040516020016109e39291906125e5565b60405160208183030381529060405280519060200120604051602001610a2092919061190160f01b81526002810192909252602282015260420190565b60405160208183030381529060405280519060200120905092915050565b600082610a4b85846112dc565b1490505b9392505050565b806101a001516001600160a01b0316336001600160a01b031614610aa5576101a081015160405163a4ce7f2960e01b81523360048201526001600160a01b039091166024820152604401610479565b6101a081015160405163680cabbd60e11b81526001600160a01b0391821660048201527f9e56ea094d7a53440eef11fa42b63159fbf703b4ee579494a6ae85afc560359460248201527f00000000000000000000000000000000000000000000000000000000000000009091169063d019577a90604401602060405180830381865afa158015610b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b5d919061260b565b610bb2576101a0810151604051630b92eb2560e11b81526001600160a01b0390911660048201527f9e56ea094d7a53440eef11fa42b63159fbf703b4ee579494a6ae85afc56035946024820152604401610479565b6000849003610c525760008681526020819052604090205460ff16610c4d57610c178161010001518785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061132992505050565b610c4d576101008101516040516301d2d55760e31b81526001600160a01b03909116600482015260248101879052604401610479565b610cf4565b6000610c746040518060200160405280610c6d89898c6114cd565b90526108b1565b9050610cbc8261010001518286868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061132992505050565b610cf2576101008201516040516301d2d55760e31b81526001600160a01b03909116600482015260248101829052604401610479565b505b876001600160a01b03168161010001516001600160a01b031603610d36576040516326ab1a1d60e11b81526001600160a01b0389166004820152602401610479565b86600003610d705761014081015115610d6b57806101400151604051637a4b6f9760e11b815260040161047991815260200190565b610db9565b8061014001518714610db957610140810151151580610d925750806101200151155b15610db957806101400151604051637a4b6f9760e11b815260040161047991815260200190565b8060c0015164ffffffffff164210610df95760c081015160405163aa2fd92560e01b815242600482015264ffffffffff9091166024820152604401610479565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f291a62c8261010001518361016001518461018001516040518463ffffffff1660e01b8152600401610e58939291906125c4565b602060405180830381865afa158015610e75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e99919061260b565b610ecb57806101000151816101600151826101800151604051632108c30560e11b8152600401610479939291906125c4565b60e08101516001600160a01b031615801590610efd57508060e001516001600160a01b0316886001600160a01b031614155b15610f345760e0810151604051636075c95560e11b81526001600160a01b03808b1660048301529091166024820152604401610479565b8060a00151600003610fd6577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f79924a98261010001518361016001518461018001516040518463ffffffff1660e01b8152600401610f9f939291906125c4565b600060405180830381600087803b158015610fb957600080fd5b505af1158015610fcd573d6000803e3d6000fd5b50505050611071565b60a08101516080820151600088815260016020526040902054610ff9919061263e565b1161102c5760808101516000878152600160205260408120805490919061102190849061263e565b909155506110719050565b608081015160008781526001602052604090205461104a919061263e565b60a082015160405163231795cb60e21b815260048101929092526024820152604401610479565b80604001511561124a578051604051630b7e49eb60e21b81526001600160a01b03918216600482015260009182917f000000000000000000000000000000000000000000000000000000000000000090911690632df927ac90602401602060405180830381865afa1580156110ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110e9190612651565b90506001600160a01b038116156111ac578251602084015160405163ec2ce34560e01b81526001600160a01b0384169263ec2ce34592611164926004016001600160a01b03929092168252602082015260400190565b602060405180830381865afa158015611181573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a5919061266e565b9150611213565b82516111bf9063f511231560e01b611519565b156111fa578251602084015160405163f511231560e01b81526001600160a01b039092169163f5112315916111649160040190815260200190565b60405163f3c0936360e01b815260040160405180910390fd5b81836060015114611247576060830151604051633840fc0160e01b8152610479918491600401918252602082015260400190565b50505b5050505050505050565b61125c6118b2565b506040805160808101825260008082526001600160a01b0394909416602082015290810192909252606082015290565b336001600160a01b038216146112c057604051631144200360e31b81526001600160a01b0382166004820152602401610479565b506000908152602081905260409020805460ff19166001179055565b600081815b84518110156113215761130d8286838151811061130057611300612687565b6020026020010151611535565b9150806113198161269d565b9150506112e1565b509392505050565b60006001600160a01b0384163b1561142457600080856001600160a01b0316631626ba7e60e01b86866040516024016113639291906126b6565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516113a191906126d7565b600060405180830381855afa9150503d80600081146113dc576040519150601f19603f3d011682016040523d82523d6000602084013e6113e1565b606091505b50915091508180156113f4575080516020145b801561141b57508051630b135d3f60e11b90611419908301602090810190840161266e565b145b92505050610a4f565b6000806000845160410361144c5750505060208201516040830151606084015160001a6114a3565b845160400361148557602085015160408601519093506001600160ff1b038116925061147d60ff82901c601b61263e565b9150506114a3565b845160405163058676ad60e31b815260040161047991815260200190565b6114af86828585611564565b6001600160a01b0316876001600160a01b0316149350505050610a4f565b600081815b84811015611510576114fc828787848181106114f0576114f0612687565b90506020020135611535565b9150806115088161269d565b9150506114d2565b50949350505050565b60006115248361158c565b8015610a4f5750610a4f83836115bf565b6000818310611551576000828152602084905260409020610a4f565b6000838152602083905260409020610a4f565b600080600061157587878787611648565b915091506115828161170c565b5095945050505050565b600061159f826301ffc9a760e01b6115bf565b801561074a57506115b8826001600160e01b03196115bf565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015611631575060208210155b801561163d5750600081115b979650505050505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561167f5750600090506003611703565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156116d3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116fc57600060019250925050611703565b9150600090505b94509492505050565b600081600481111561172057611720611a39565b036117285750565b600181600481111561173c5761173c611a39565b036117895760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610479565b600281600481111561179d5761179d611a39565b036117ea5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610479565b60038160048111156117fe576117fe611a39565b036118565760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610479565b50565b604080516101208101825260008082526020820181905291810191909152606081016118836118b2565b81526020016118906118b2565b8152600060208201819052604082018190526060820181905260809091015290565b6040805160808101909152806000815260200160006001600160a01b0316815260200160008152602001600081525090565b6001600160a01b038116811461185657600080fd5b8035611904816118e4565b919050565b60008083601f84011261191b57600080fd5b50813567ffffffffffffffff81111561193357600080fd5b60208301915083602082850101111561194b57600080fd5b9250929050565b60008060008060008060008060a0898b03121561196e57600080fd5b8835611979816118e4565b975060208901359650604089013567ffffffffffffffff8082111561199d57600080fd5b6119a98c838d01611909565b909850965060608b01359150808211156119c257600080fd5b818b0191508b601f8301126119d657600080fd5b8135818111156119e557600080fd5b8c60208260051b85010111156119fa57600080fd5b6020830196508095505060808b0135915080821115611a1857600080fd5b50611a258b828c01611909565b999c989b5096995094979396929594505050565b634e487b7160e01b600052602160045260246000fd5b60048110611a6d57634e487b7160e01b600052602160045260246000fd5b9052565b611a7c828251611a4f565b6020818101516001600160a01b03169083015260408082015190830152606090810151910152565b82815281516001600160a01b03166020820152610200810160208301516001600160a01b038116604084015250604083015163ffffffff81166060840152506060830151611af56080840182611a71565b506080830151610100611b0a81850183611a71565b60a085015161018085015260c085015164ffffffffff166101a085015260e08501516101c0850152909301516101e09092019190915292915050565b60006102a08284031215611b5957600080fd5b50919050565b600060208284031215611b7157600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715611bb157611bb1611b78565b60405290565b6040516102a0810167ffffffffffffffff81118282101715611bb157611bb1611b78565b604051601f8201601f1916810167ffffffffffffffff81118282101715611c0457611c04611b78565b604052919050565b60006020808385031215611c1f57600080fd5b823567ffffffffffffffff80821115611c3757600080fd5b818501915085601f830112611c4b57600080fd5b813581811115611c5d57611c5d611b78565b611c6f601f8201601f19168501611bdb565b91508082528684828501011115611c8557600080fd5b8084840185840137600090820190930192909252509392505050565b611cac828251611a4f565b6020810151611cc660208401826001600160a01b03169052565b5060408101516040830152606081015160608301526080810151611cee608084018215159052565b5060a081015160a083015260c0810151611d1360c08401826001600160a01b03169052565b5060e08181015190830152610100808201519083015261012080820151908301526101408082015164ffffffffff908116918401919091526101608083015163ffffffff169084015261018080830151909116908301526101a0808201516001600160a01b03908116918401919091526101c0808301518216908401526101e08083015190840152610200808301511515908401526102208083015190840152610240808301519084015261026080830151908401526102809182015116910152565b60006102c0611de58386611ca1565b6102a0830181905283519083015260208084015160406102e085015280516103008501819052908201906000906103208601905b80831015611e395783518252928401926001929092019190840190611e19565b50979650505050505050565b60008060408385031215611e5857600080fd5b50508035926020909101359150565b600060208284031215611e7957600080fd5b6040516020810181811067ffffffffffffffff82111715611e9c57611e9c611b78565b6040529135825250919050565b6004811061185657600080fd5b803561190481611ea9565b801515811461185657600080fd5b803561190481611ec1565b64ffffffffff8116811461185657600080fd5b803561190481611eda565b63ffffffff8116811461185657600080fd5b803561190481611ef8565b600067ffffffffffffffff821115611f2f57611f2f611b78565b5060051b60200190565b600060408284031215611f4b57600080fd5b611f53611b8e565b90508135815260208083013567ffffffffffffffff811115611f7457600080fd5b8301601f81018513611f8557600080fd5b8035611f98611f9382611f15565b611bdb565b81815260059190911b82018301908381019087831115611fb757600080fd5b928401925b82841015611fd557833582529284019290840190611fbc565b8085870152505050505092915050565b6000808284036102c0811215611ffa57600080fd5b6102a08082121561200a57600080fd5b612012611bb7565b915061201d85611eb6565b825261202b602086016118f9565b6020830152604085013560408301526060850135606083015261205060808601611ecf565b608083015260a085013560a083015261206b60c086016118f9565b60c083015260e085810135908301526101008086013590830152610120808601359083015261014061209e818701611eed565b908301526101606120b0868201611f0a565b908301526101806120c2868201611eed565b908301526101a06120d48682016118f9565b908301526101c06120e68682016118f9565b908301526101e08581013590830152610200612103818701611ecf565b908301526102208581013590830152610240808601359083015261026080860135908301526102806121368187016118f9565b9083015290925083013567ffffffffffffffff81111561215557600080fd5b61216185828601611f39565b9150509250929050565b60005b8381101561218657818101518382015260200161216e565b50506000910152565b600081518084526121a781602086016020860161216b565b601f01601f19169290920160200192915050565b602081526000610a4f602083018461218f565b6102a0810161074a8284611ca1565b6000602082840312156121ef57600080fd5b8135610a4f816118e4565b6102a081016122118261220c85611eb6565b611a4f565b61221d602084016118f9565b6001600160a01b038116602084015250604083013560408301526060830135606083015261224d60808401611ecf565b1515608083015260a0838101359083015261226a60c084016118f9565b6001600160a01b031660c083015260e08381013590830152610100808401359083015261012080840135908301526101406122a6818501611eed565b64ffffffffff16908301526101606122bf848201611f0a565b63ffffffff16908301526101806122d7848201611eed565b64ffffffffff16908301526101a06122f08482016118f9565b6001600160a01b0316908301526101c061230b8482016118f9565b6001600160a01b0316908301526101e08381013590830152610200612331818501611ecf565b1515908301526102208381013590830152610240808401359083015261026080840135908301526102806123668185016118f9565b6001600160a01b0316920191909152919050565b805161190481611ea9565b8051611904816118e4565b805161190481611ec1565b805161190481611eda565b805161190481611ef8565b6000604082840312156123c357600080fd5b6123cb611b8e565b90508151815260208083015167ffffffffffffffff8111156123ec57600080fd5b8301601f810185136123fd57600080fd5b805161240b611f9382611f15565b81815260059190911b8201830190838101908783111561242a57600080fd5b928401925b82841015611fd55783518252928401929084019061242f565b6000808284036102c081121561245d57600080fd5b6102a08082121561246d57600080fd5b612475611bb7565b91506124808561237a565b825261248e60208601612385565b602083015260408501516040830152606085015160608301526124b360808601612390565b608083015260a085015160a08301526124ce60c08601612385565b60c083015260e085810151908301526101008086015190830152610120808601519083015261014061250181870161239b565b908301526101606125138682016123a6565b9083015261018061252586820161239b565b908301526101a0612537868201612385565b908301526101c0612549868201612385565b908301526101e08581015190830152610200612566818701612390565b90830152610220858101519083015261024080860151908301526102608086015190830152610280612599818701612385565b9083015284015190925067ffffffffffffffff8111156125b857600080fd5b612161858286016123b1565b6001600160a01b039390931683526020830191909152604082015260600190565b828152600082516125fd81602085016020870161216b565b919091016020019392505050565b60006020828403121561261d57600080fd5b8151610a4f81611ec1565b634e487b7160e01b600052601160045260246000fd5b8082018082111561074a5761074a612628565b60006020828403121561266357600080fd5b8151610a4f816118e4565b60006020828403121561268057600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000600182016126af576126af612628565b5060010190565b8281526040602082015260006126cf604083018461218f565b949350505050565b600082516126e981846020870161216b565b919091019291505056fea26469706673582212205ee3c5ea8f3e460f171747972966f555d0afadd1a2547107b7a46e08c6bfd05b64736f6c63430008100033",
    "sourceMap": "590:10174:89:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7488:3273;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6336:273;;;;;;:::i;:::-;;:::i;:::-;;;4492:25:119;;;4480:2;4465:18;6336:273:89;4346:177:119;5929:164:89;;;;;;:::i;:::-;;:::i;2224:46:90:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;4974:14:119;;4967:22;4949:41;;4937:2;4922:18;2224:46:90;4809:187:119;7233:192:89;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1134:41:90:-;;;;;1243:27;;;;;;;;-1:-1:-1;;;;;9941:32:119;;;9923:51;;9911:2;9896:18;1243:27:90;9761:219:119;5801:137:90;;;;;;:::i;:::-;;:::i;:::-;;1327:33;;;;;5251:322;;;;;;:::i;:::-;;:::i;772:589:89:-;;816:545;772:589;;1276:45:90;;;;;1181:55;;;;;1367:108;;1416:59;1367:108;;2422:46;;;;;;:::i;:::-;;;;;;;;;;;;;;6826:211:89;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;657:38::-;;;;;;;;;;;;;;;-1:-1:-1;;;657:38:89;;;;;7488:3273;7728:20;7750:36;;:::i;:::-;7831:24;7857:36;7897:32;7916:12;;7897:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7897:18:89;;-1:-1:-1;;;7897:32:89:i;:::-;7830:99;;;;7985:57;816:545;8032:8;8021:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;7985:16;:57::i;:::-;8097:41;;;;7970:72;;-1:-1:-1;8097:55:89;8093:496;;8238:255;8286:14;:35;;;8349:8;:41;;;8445:14;:27;;;8428:45;;;;;;17194:19:119;;17238:2;17229:12;;17065:182;8428:45:89;;;;;;;;;;;;;8418:56;;;;;;8238:18;:255::i;:::-;8216:362;;8548:27;;8515:63;;-1:-1:-1;;;8515:63:89;;;;;4492:25:119;;;;4465:18;;8515:63:89;;;;;;;;8216:362;8734:1021;8763:8;8785:17;8816:12;8842:22;;8878:9;;8901:844;;;;;;;;8951:8;:26;;;-1:-1:-1;;;;;8901:844:89;;;;;9009:14;:27;;;8901:844;;;;9087:8;:40;;;8901:844;;;;;;9173:8;:35;;;8901:844;;;;9240:8;:21;;;8901:844;;;;9301:8;:29;;;8901:844;;;;9360:8;:19;;;8901:844;;;;;;9414:8;:24;;;-1:-1:-1;;;;;8901:844:89;;;;;9466:8;:17;;;-1:-1:-1;;;;;8901:844:89;;;;;9510:8;:16;;;8901:844;;;;;;9563:8;:26;;;8901:844;;;;9619:8;:19;;;8901:844;;;;9663:8;:14;;;8901:844;;;;9709:8;:21;;;-1:-1:-1;;;;;8901:844:89;;;;8734:15;:1021::i;:::-;9814:940;;;;;;;;9856:8;:16;;;:47;;9895:8;9856:47;;;9875:8;:17;;;9856:47;-1:-1:-1;;;;;9814:940:89;;;;;9927:8;:16;;;:47;;9957:8;:17;;;9927:47;;;9946:8;9927:47;-1:-1:-1;;;;;9814:940:89;;;;;9998:8;:17;;;9814:940;;;;;;10041:245;;;;;;;;10086:8;:27;;;10041:245;;;;;;;;:::i;:::-;;;;;10145:8;:26;;;-1:-1:-1;;;;;10041:245:89;;;;;10193:14;:27;;;10041:245;;;;10246:8;:25;;;10041:245;;;9814:940;;;;10308:133;10357:8;:22;;;10405:8;:21;;;10308:16;:133::i;:::-;9814:940;;;;10476:8;:28;;;9814:940;;;;10539:8;:28;;;9814:940;;;;;;10597:8;:16;;;:57;;10652:1;10597:57;;;10616:8;:25;;;10597:57;9814:940;;;;10686:8;:16;;;:57;;10718:8;:25;;;10686:57;;;10713:1;10686:57;9814:940;;;9802:952;;7788:2973;;7488:3273;;;;;;;;;;;:::o;6336:273::-;6404:20;6451:25;6467:8;6451:15;:25::i;:::-;6436:40;-1:-1:-1;6486:46:89;6436:40;6514:17;;;;;;;;:::i;:::-;6486:13;:46::i;:::-;6574:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6547:55:89;6560:12;6547:55;6593:8;6547:55;;;;;;:::i;:::-;;;;;;;;6336:273;;;:::o;5929:164::-;6003:7;6029:57;816:545;6076:8;6065:20;;;;;;;;:::i;6029:57::-;6022:64;5929:164;-1:-1:-1;;5929:164:89:o;7233:192::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7377:12:89;7366:52;;;;;;;;;;;;:::i;:::-;7359:59;;;;7233:192;;;:::o;5801:137:90:-;5876:55;;-1:-1:-1;;;5876:55:90;;-1:-1:-1;;;;;5876:12:90;:24;;;;:55;;5901:10;;5913;;5925:5;;5876:55;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5801:137;;:::o;5251:322::-;5338:7;5415:30;1416:59;5526:13;5515:25;;;;;;24691:13:119;24673:32;;24661:2;24646:18;;24463:248;5515:25:90;;;;-1:-1:-1;;5515:25:90;;;;;;;;;;5457:97;;;5515:25;5457:97;;:::i;:::-;;;;;;;;;;;;;5447:108;;;;;;5374:191;;;;;;;;-1:-1:-1;;;25338:27:119;;25390:1;25381:11;;25374:27;;;;25426:2;25417:12;;25410:28;25463:2;25454:12;;25080:392;5374:191:90;;;;;;;;;;;;;5364:202;;;;;;5357:209;;5251:322;;;:::o;6826:211:89:-;6963:12;7005:8;7015:14;6994:36;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6987:43;;6826:211;;;;:::o;7156:332:90:-;7283:7;7360:16;7422;7440:15;7388:81;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7378:92;;;;;;7319:161;;;;;;;;-1:-1:-1;;;25338:27:119;;25390:1;25381:11;;25374:27;;;;25426:2;25417:12;;25410:28;25463:2;25454:12;;25080:392;7319:161:90;;;;;;;;;;;;;7309:172;;;;;;7302:179;;7156:332;;;;:::o;1156:154:60:-;1247:4;1299;1270:25;1283:5;1290:4;1270:12;:25::i;:::-;:33;1263:40;;1156:154;;;;;;:::o;8351:5323:90:-;8664:8;:21;;;-1:-1:-1;;;;;8650:35:90;:10;-1:-1:-1;;;;;8650:35:90;;8646:155;;8766:21;;;;8708:82;;-1:-1:-1;;;8708:82:90;;8740:10;8708:82;;;25689:34:119;-1:-1:-1;;;;;25759:15:119;;;25739:18;;;25732:43;25624:18;;8708:82:90;25477:304:119;8646:155:90;8826:21;;;;8815:57;;-1:-1:-1;;;8815:57:90;;-1:-1:-1;;;;;25978:32:119;;;8815:57:90;;;25960:51:119;266:28:76;26027:18:119;;;26020:34;8815:3:90;:10;;;;;;25933:18:119;;8815:57:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8810:178;;8924:21;;;;8895:82;;-1:-1:-1;;;8895:82:90;;-1:-1:-1;;;;;25978:32:119;;;8895:82:90;;;25960:51:119;266:28:76;26027:18:119;;;26020:34;25933:18;;8895:82:90;25786:274:119;8810:178:90;9100:1;9067:34;;;9063:1025;;9163:13;:27;;;;;;;;;;;;;9158:293;;9215:83;9255:8;:17;;;9274:12;9288:9;;9215:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9215:39:90;;-1:-1:-1;;;9215:83:90:i;:::-;9210:227;;9376:17;;;;9329:89;;-1:-1:-1;;;9329:89:90;;-1:-1:-1;;;;;25978:32:119;;;9329:89:90;;;25960:51:119;26027:18;;;26020:34;;;25933:18;;9329:89:90;25786:274:119;9210:227:90;9063:1025;;;9520:25;9548:287;9586:235;;;;;;;;9647:155;9713:22;;9767:12;9647:32;:155::i;:::-;9586:235;;9548:20;:287::i;:::-;9520:315;;9854:88;9894:8;:17;;;9913;9932:9;;9854:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9854:39:90;;-1:-1:-1;;;9854:88:90:i;:::-;9849:229;;10016:17;;;;9969:94;;-1:-1:-1;;;9969:94:90;;-1:-1:-1;;;;;25978:32:119;;;9969:94:90;;;25960:51:119;26027:18;;;26020:34;;;25933:18;;9969:94:90;25786:274:119;9849:229:90;9467:621;9063:1025;10165:8;-1:-1:-1;;;;;10144:29:90;:8;:17;;;-1:-1:-1;;;;;10144:29:90;;10140:104;;10196:37;;-1:-1:-1;;;10196:37:90;;-1:-1:-1;;;;;9941:32:119;;10196:37:90;;;9923:51:119;9896:18;;10196:37:90;9761:219:119;10140:104:90;10296:17;10317:1;10296:22;10292:500;;10338:26;;;;:31;10334:152;;10442:8;:26;;;10396:75;;-1:-1:-1;;;10396:75:90;;;;;;4492:25:119;;4480:2;4465:18;;4346:177;10334:152:90;10292:500;;;10541:8;:26;;;10520:17;:47;10516:266;;10591:26;;;;:31;;;:52;;;10627:8;:16;;;10626:17;10591:52;10587:181;;;10720:8;:26;;;10674:75;;-1:-1:-1;;;10674:75:90;;;;;;4492:25:119;;4480:2;4465:18;;4346:177;10587:181:90;10866:8;:19;;;10847:38;;:15;:38;10843:146;;10956:19;;;;10908:70;;-1:-1:-1;;;10908:70:90;;10927:15;10908:70;;;26696:25:119;26769:12;26757:25;;;26737:18;;;26730:53;26669:18;;10908:70:90;26523:266:119;10843:146:90;11045:12;-1:-1:-1;;;;;11045:26:90;;11072:8;:17;;;11091:8;:19;;;11112:8;:14;;;11045:82;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11040:296;;11205:8;:17;;;11252:8;:19;;;11296:8;:14;;;11150:175;;-1:-1:-1;;;11150:175:90;;;;;;;;;;:::i;11040:296::-;11409:24;;;;-1:-1:-1;;;;;11409:38:90;;;;;:78;;;11463:8;:24;;;-1:-1:-1;;;;;11451:36:90;:8;-1:-1:-1;;;;;11451:36:90;;;11409:78;11405:198;;;11565:24;;;;11510:82;;-1:-1:-1;;;11510:82:90;;-1:-1:-1;;;;;25707:15:119;;;11510:82:90;;;25689:34:119;25759:15;;;25739:18;;;25732:43;25624:18;;11510:82:90;25477:304:119;11405:198:90;11617:8;:29;;;11650:1;11617:34;11613:723;;11752:12;-1:-1:-1;;;;;11752:24:90;;11777:8;:17;;;11796:8;:19;;;11817:8;:14;;;11752:80;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11613:723;;;11905:29;;;;11880:21;;;;11853:24;;;;:10;:24;;;;;;:48;;11880:21;11853:48;:::i;:::-;:81;11849:487;;12046:21;;;;12018:24;;;;:10;:24;;;;;:49;;:24;;;:49;;12046:21;;12018:49;:::i;:::-;;;;-1:-1:-1;11849:487:90;;-1:-1:-1;11849:487:90;;12235:21;;;;12208:24;;;;:10;:24;;;;;;:48;;12235:21;12208:48;:::i;:::-;12281:29;;;;12155:170;;-1:-1:-1;;;12155:170:90;;;;;27230:25:119;;;;27271:18;;;27264:34;27203:18;;12155:170:90;27056:248:119;11849:487:90;12406:8;:40;;;12402:1266;;;12574:26;;12539:62;;-1:-1:-1;;;12539:62:90;;-1:-1:-1;;;;;9941:32:119;;;12539:62:90;;;9923:51:119;12462:26:90;;;;12539:6;:34;;;;;;9896:18:119;;12539:62:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12502:99;-1:-1:-1;;;;;;12619:31:90;;;12615:717;;12802:26;;12839:21;;;;12740:139;;-1:-1:-1;;;12740:139:90;;-1:-1:-1;;;;;12740:32:90;;;;;:139;;;;-1:-1:-1;;;;;25978:32:119;;;;25960:51;;26042:2;26027:18;;26020:34;25948:2;25933:18;;25786:274;12740:139:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12719:160;;12615:717;;;12936:26;;12904:87;;-1:-1:-1;;;12904:31:90;:87::i;:::-;12900:432;;;13085:26;;13133:21;;;;13076:79;;-1:-1:-1;;;13076:79:90;;-1:-1:-1;;;;;13076:56:90;;;;;;:79;;;;4492:25:119;;;4480:2;4465:18;;4346:177;12900:432:90;13284:33;;-1:-1:-1;;;13284:33:90;;;;;;;;;;;12900:432;13389:18;13350:8;:35;;;:57;13346:312;;13589:35;;;;13474:169;;-1:-1:-1;;;13474:169:90;;;;13539:18;;13474:169;;27230:25:119;;;27286:2;27271:18;;27264:34;27218:2;27203:18;;27056:248;13346:312:90;12448:1220;;12402:1266;8351:5323;;;;;;;;:::o;2528:160:0:-;2604:12;;:::i;:::-;-1:-1:-1;2635:46:0;;;;;;;;-1:-1:-1;2635:46:0;;;-1:-1:-1;;;;;2635:46:0;;;;;;;;;;;;;;;;;;;;2528:160::o;7709:238:90:-;7795:10;-1:-1:-1;;;;;7795:22:90;;;7791:105;;7840:45;;-1:-1:-1;;;7840:45:90;;-1:-1:-1;;;;;9941:32:119;;7840:45:90;;;9923:51:119;9896:18;;7840:45:90;9761:219:119;7791:105:90;-1:-1:-1;7906:13:90;:27;;;;;;;;;;:34;;-1:-1:-1;;7906:34:90;7936:4;7906:34;;;7709:238::o;1934:290:60:-;2017:7;2059:4;2017:7;2073:116;2097:5;:12;2093:1;:16;2073:116;;;2145:33;2155:12;2169:5;2175:1;2169:8;;;;;;;;:::i;:::-;;;;;;;2145:9;:33::i;:::-;2130:48;-1:-1:-1;2111:3:60;;;;:::i;:::-;;;;2073:116;;;-1:-1:-1;2205:12:60;1934:290;-1:-1:-1;;;1934:290:60:o;1541:1696:85:-;1677:4;-1:-1:-1;;;;;1759:18:85;;;:22;1755:1476;;1798:12;1812:19;1835:6;-1:-1:-1;;;;;1835:17:85;1893:34;;;1929:4;1935:9;1870:75;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1870:75:85;;;;;;;;;;;;;;-1:-1:-1;;;;;1870:75:85;-1:-1:-1;;;;;;1870:75:85;;;;;;;;;;1835:124;;;;1870:75;1835:124;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1797:162;;;;1996:7;:46;;;;;2023:6;:13;2040:2;2023:19;1996:46;:142;;;;-1:-1:-1;2062:29:85;;-1:-1:-1;;;2103:34:85;2062:29;;;;;;;;;;;;:::i;:::-;:76;1996:142;1973:165;;;;;;1755:1476;2226:9;2249;2272:7;2348:9;:16;2368:2;2348:22;2344:817;;-1:-1:-1;;;2447:4:85;2432:20;;2426:27;2500:4;2485:20;;2479:27;2561:4;2546:20;;2540:27;2537:1;2532:36;2344:817;;;2686:9;:16;2706:2;2686:22;2682:479;;2814:4;2799:20;;2793:27;2868:4;2853:20;;2847:27;2793;;-1:-1:-1;;;;;;2914:80:85;;;-1:-1:-1;3022:25:85;3038:3;3023:18;;;3045:2;3022:25;:::i;:::-;3012:36;;2710:353;2682:479;;;3127:9;:16;3094:52;;-1:-1:-1;;;3094:52:85;;;;;;4492:25:119;;4480:2;4465:18;;4346:177;2682:479:85;3192:28;3206:4;3212:1;3215;3218;3192:13;:28::i;:::-;-1:-1:-1;;;;;3182:38:85;:6;-1:-1:-1;;;;;3182:38:85;;3175:45;;;;;;;2331:300:60;2424:7;2466:4;2424:7;2480:116;2500:16;;;2480:116;;;2552:33;2562:12;2576:5;;2582:1;2576:8;;;;;;;:::i;:::-;;;;;;;2552:9;:33::i;:::-;2537:48;-1:-1:-1;2518:3:60;;;;:::i;:::-;;;;2480:116;;;-1:-1:-1;2612:12:60;2331:300;-1:-1:-1;;;;2331:300:60:o;1349:282:62:-;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;9205:147:60:-;9268:7;9298:1;9294;:5;:51;;9426:13;9517:15;;;9552:4;9545:15;;;9598:4;9582:21;;9294:51;;;9426:13;9517:15;;;9552:4;9545:15;;;9598:4;9582:21;;9302:20;9358:261;6598:232:59;6683:7;6703:17;6722:18;6744:25;6755:4;6761:1;6764;6767;6744:10;:25::i;:::-;6702:67;;;;6779:18;6791:5;6779:11;:18::i;:::-;-1:-1:-1;6814:9:59;6598:232;-1:-1:-1;;;;;6598:232:59:o;704:427:62:-;768:4;975:68;1008:7;-1:-1:-1;;;975:32:62;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:62;1093:7;-1:-1:-1;;;;;;1060:32:62;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:62:o;4421:647::-;4592:71;;;-1:-1:-1;;;;;;29340:33:119;;4592:71:62;;;;29322:52:119;;;;4592:71:62;;;;;;;;;;29295:18:119;;;;4592:71:62;;;;;;;;;-1:-1:-1;;;;;4592:71:62;-1:-1:-1;;;4592:71:62;;;4871:20;;4523:4;;4592:71;4523:4;;;;;;4592:71;4523:4;;4871:20;4836:7;4829:5;4818:86;4807:97;;4931:16;4917:30;;4981:4;4975:11;4960:26;;5013:7;:29;;;;;5038:4;5024:10;:18;;5013:29;:48;;;;;5060:1;5046:11;:15;5013:48;5006:55;4421:647;-1:-1:-1;;;;;;;4421:647:62:o;5009:1456:59:-;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:59;;-1:-1:-1;6123:30:59;6103:51;;6004:161;6276:24;;;6259:14;6276:24;;;;;;;;;29612:25:119;;;29685:4;29673:17;;29653:18;;;29646:45;;;;29707:18;;;29700:34;;;29750:18;;;29743:34;;;6276:24:59;;29584:19:119;;6276:24:59;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:59;;-1:-1:-1;;6276:24:59;;;-1:-1:-1;;;;;;;6314:20:59;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:59;;-1:-1:-1;5009:1456:59;;;;;;;;:::o;570:511::-;647:20;638:5;:29;;;;;;;;:::i;:::-;;634:441;;570:511;:::o;634:441::-;743:29;734:5;:38;;;;;;;;:::i;:::-;;730:345;;788:34;;-1:-1:-1;;;788:34:59;;29990:2:119;788:34:59;;;29972:21:119;30029:2;30009:18;;;30002:30;30068:26;30048:18;;;30041:54;30112:18;;788:34:59;29788:348:119;730:345:59;852:35;843:5;:44;;;;;;;;:::i;:::-;;839:236;;903:41;;-1:-1:-1;;;903:41:59;;30343:2:119;903:41:59;;;30325:21:119;30382:2;30362:18;;;30355:30;30421:33;30401:18;;;30394:61;30472:18;;903:41:59;30141:355:119;839:236:59;974:30;965:5;:39;;;;;;;;:::i;:::-;;961:114;;1020:44;;-1:-1:-1;;;1020:44:59;;30703:2:119;1020:44:59;;;30685:21:119;30742:2;30722:18;;;30715:30;30781:34;30761:18;;;30754:62;-1:-1:-1;;;30832:18:119;;;30825:32;30874:19;;1020:44:59;30501:398:119;961:114:59;570:511;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:131:119:-;-1:-1:-1;;;;;89:31:119;;79:42;;69:70;;135:1;132;125:12;150:134;218:20;;247:31;218:20;247:31;:::i;:::-;150:134;;;:::o;289:347::-;340:8;350:6;404:3;397:4;389:6;385:17;381:27;371:55;;422:1;419;412:12;371:55;-1:-1:-1;445:20:119;;488:18;477:30;;474:50;;;520:1;517;510:12;474:50;557:4;549:6;545:17;533:29;;609:3;602:4;593:6;585;581:19;577:30;574:39;571:59;;;626:1;623;616:12;571:59;289:347;;;;;:::o;641:1394::-;785:6;793;801;809;817;825;833;841;894:3;882:9;873:7;869:23;865:33;862:53;;;911:1;908;901:12;862:53;950:9;937:23;969:31;994:5;969:31;:::i;:::-;1019:5;-1:-1:-1;1071:2:119;1056:18;;1043:32;;-1:-1:-1;1126:2:119;1111:18;;1098:32;1149:18;1179:14;;;1176:34;;;1206:1;1203;1196:12;1176:34;1245:58;1295:7;1286:6;1275:9;1271:22;1245:58;:::i;:::-;1322:8;;-1:-1:-1;1219:84:119;-1:-1:-1;1410:2:119;1395:18;;1382:32;;-1:-1:-1;1426:16:119;;;1423:36;;;1455:1;1452;1445:12;1423:36;1493:8;1482:9;1478:24;1468:34;;1540:7;1533:4;1529:2;1525:13;1521:27;1511:55;;1562:1;1559;1552:12;1511:55;1602:2;1589:16;1628:2;1620:6;1617:14;1614:34;;;1644:1;1641;1634:12;1614:34;1697:7;1692:2;1682:6;1679:1;1675:14;1671:2;1667:23;1663:32;1660:45;1657:65;;;1718:1;1715;1708:12;1657:65;1749:2;1745;1741:11;1731:21;;1771:6;1761:16;;;1830:3;1819:9;1815:19;1802:33;1786:49;;1860:2;1850:8;1847:16;1844:36;;;1876:1;1873;1866:12;1844:36;;1915:60;1967:7;1956:8;1945:9;1941:24;1915:60;:::i;:::-;641:1394;;;;-1:-1:-1;641:1394:119;;-1:-1:-1;641:1394:119;;;;;;1994:8;-1:-1:-1;;;641:1394:119:o;2248:127::-;2309:10;2304:3;2300:20;2297:1;2290:31;2340:4;2337:1;2330:15;2364:4;2361:1;2354:15;2380:236;2460:1;2453:5;2450:12;2440:143;;2505:10;2500:3;2496:20;2493:1;2486:31;2540:4;2537:1;2530:15;2568:4;2565:1;2558:15;2440:143;2592:18;;2380:236::o;2621:302::-;2680:43;2719:3;2711:5;2705:12;2680:43;:::i;:::-;2776:4;2765:16;;;2759:23;-1:-1:-1;;;;;2755:49:119;2739:14;;;2732:73;2854:4;2843:16;;;2837:23;2821:14;;;2814:47;2910:4;2899:16;;;2893:23;2877:14;;2870:47;2621:302::o;3029:1111::-;3252:25;;;3305:13;;-1:-1:-1;;;;;2106:31:119;3335:2;3320:18;;2094:44;3239:3;3224:19;;3386:2;3374:15;;3368:22;-1:-1:-1;;;;;2106:31:119;;3447:2;3432:18;;2094:44;-1:-1:-1;3500:2:119;3488:15;;3482:22;2225:10;2214:22;;3562:2;3547:18;;2202:35;3513:53;3615:2;3607:6;3603:15;3597:22;3628:60;3683:3;3672:9;3668:19;3652:14;3628:60;:::i;:::-;;3737:3;3729:6;3725:16;3719:23;3761:3;3773:59;3828:2;3817:9;3813:18;3797:14;3773:59;:::i;:::-;3887:4;3875:17;;3869:24;3863:3;3848:19;;3841:53;3943:4;3931:17;;3925:24;3004:12;2993:24;4007:3;3992:19;;2981:37;4067:4;4055:17;;4049:24;4043:3;4028:19;;4021:53;4117:15;;;4111:22;4105:3;4090:19;;;4083:51;;;;3029:1111;;-1:-1:-1;;3029:1111:119:o;4145:196::-;4233:6;4286:3;4274:9;4265:7;4261:23;4257:33;4254:53;;;4303:1;4300;4293:12;4254:53;-1:-1:-1;4326:9:119;4145:196;-1:-1:-1;4145:196:119:o;4528:180::-;4587:6;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;-1:-1:-1;4679:23:119;;4528:180;-1:-1:-1;4528:180:119:o;5001:127::-;5062:10;5057:3;5053:20;5050:1;5043:31;5093:4;5090:1;5083:15;5117:4;5114:1;5107:15;5133:257;5205:4;5199:11;;;5237:17;;5284:18;5269:34;;5305:22;;;5266:62;5263:88;;;5331:18;;:::i;:::-;5367:4;5360:24;5133:257;:::o;5395:255::-;5467:2;5461:9;5509:6;5497:19;;5546:18;5531:34;;5567:22;;;5528:62;5525:88;;;5593:18;;:::i;5655:275::-;5726:2;5720:9;5791:2;5772:13;;-1:-1:-1;;5768:27:119;5756:40;;5826:18;5811:34;;5847:22;;;5808:62;5805:88;;;5873:18;;:::i;:::-;5909:2;5902:22;5655:275;;-1:-1:-1;5655:275:119:o;5935:763::-;6003:6;6034:2;6077;6065:9;6056:7;6052:23;6048:32;6045:52;;;6093:1;6090;6083:12;6045:52;6133:9;6120:23;6162:18;6203:2;6195:6;6192:14;6189:34;;;6219:1;6216;6209:12;6189:34;6257:6;6246:9;6242:22;6232:32;;6302:7;6295:4;6291:2;6287:13;6283:27;6273:55;;6324:1;6321;6314:12;6273:55;6360:2;6347:16;6382:2;6378;6375:10;6372:36;;;6388:18;;:::i;:::-;6430:53;6473:2;6454:13;;-1:-1:-1;;6450:27:119;6446:36;;6430:53;:::i;:::-;6417:66;;6506:2;6499:5;6492:17;6546:7;6541:2;6536;6532;6528:11;6524:20;6521:33;6518:53;;;6567:1;6564;6557:12;6518:53;6622:2;6617;6613;6609:11;6604:2;6597:5;6593:14;6580:45;6666:1;6645:14;;;6641:23;;;6634:34;;;;-1:-1:-1;6649:5:119;5935:763;-1:-1:-1;;;5935:763:119:o;6703:2073::-;6765:43;6804:3;6796:5;6790:12;6765:43;:::i;:::-;6854:4;6847:5;6843:16;6837:23;6869:48;6911:4;6906:3;6902:14;6888:12;-1:-1:-1;;;;;2106:31:119;2094:44;;2040:104;6869:48;;6966:4;6959:5;6955:16;6949:23;6942:4;6937:3;6933:14;6926:47;7022:4;7015:5;7011:16;7005:23;6998:4;6993:3;6989:14;6982:47;7077:4;7070:5;7066:16;7060:23;7092:47;7133:4;7128:3;7124:14;7108;4783:13;4776:21;4764:34;;4713:91;7092:47;;7188:4;7181:5;7177:16;7171:23;7164:4;7159:3;7155:14;7148:47;7243:4;7236:5;7232:16;7226:23;7258:50;7302:4;7297:3;7293:14;7277;-1:-1:-1;;;;;2106:31:119;2094:44;;2040:104;7258:50;-1:-1:-1;7357:4:119;7346:16;;;7340:23;7324:14;;;7317:47;7383:6;7425:14;;;7419:21;7405:12;;;7398:43;7460:6;7502:14;;;7496:21;7482:12;;;7475:43;7537:6;7580:14;;;7574:21;3004:12;2993:24;;;7638:12;;;2981:37;;;;7670:6;7713:14;;;7707:21;2225:10;2214:22;7771:12;;;2202:35;7803:6;7846:14;;;7840:21;2993:24;;;7904:12;;;2981:37;7936:6;7979:14;;;7973:21;-1:-1:-1;;;;;2106:31:119;;;8038:12;;;2094:44;;;;8070:6;8113:14;;;8107:21;2106:31;;8172:12;;;2094:44;8204:6;8246:14;;;8240:21;8226:12;;;8219:43;8281:6;8324:14;;;8318:21;4783:13;4776:21;8380:12;;;4764:34;8413:6;8456:15;;;8450:22;8435:13;;;8428:45;8493:6;8536:15;;;8530:22;8515:13;;;8508:45;8573:6;8616:15;;;8610:22;8595:13;;;8588:45;8653:6;8696:15;;;8690:22;2106:31;8756:13;;2094:44;6703:2073::o;8781:975::-;9021:4;9050:3;9062:45;9097:9;9089:6;9062:45;:::i;:::-;9138:3;9123:19;;9116:31;;;9225:13;;9205:18;;;9198:41;9258:4;9297:15;;;9291:22;9350:4;9344:3;9329:19;;9322:33;9404:19;;9185:3;9170:19;;9432:22;;;9512:21;;;;-1:-1:-1;;9485:3:119;9470:19;;;9561:169;9575:6;9572:1;9569:13;9561:169;;;9636:13;;9624:26;;9705:15;;;;9597:1;9590:9;;;;;9670:12;;;;9561:169;;;-1:-1:-1;9747:3:119;8781:975;-1:-1:-1;;;;;;;8781:975:119:o;9985:248::-;10053:6;10061;10114:2;10102:9;10093:7;10089:23;10085:32;10082:52;;;10130:1;10127;10120:12;10082:52;-1:-1:-1;;10153:23:119;;;10223:2;10208:18;;;10195:32;;-1:-1:-1;9985:248:119:o;10465:445::-;10556:6;10609:2;10597:9;10588:7;10584:23;10580:32;10577:52;;;10625:1;10622;10615:12;10577:52;10658:2;10652:9;10700:2;10692:6;10688:15;10769:6;10757:10;10754:22;10733:18;10721:10;10718:34;10715:62;10712:88;;;10780:18;;:::i;:::-;10816:2;10809:22;10855:23;;10840:39;;-1:-1:-1;10847:6:119;10465:445;-1:-1:-1;10465:445:119:o;11330:107::-;11411:1;11404:5;11401:12;11391:40;;11427:1;11424;11417:12;11442:146;11516:20;;11545:37;11516:20;11545:37;:::i;11593:118::-;11679:5;11672:13;11665:21;11658:5;11655:32;11645:60;;11701:1;11698;11691:12;11716:128;11781:20;;11810:28;11781:20;11810:28;:::i;11849:123::-;11934:12;11927:5;11923:24;11916:5;11913:35;11903:63;;11962:1;11959;11952:12;11977:132;12044:20;;12073:30;12044:20;12073:30;:::i;12114:121::-;12199:10;12192:5;12188:22;12181:5;12178:33;12168:61;;12225:1;12222;12215:12;12240:132;12307:20;;12336:30;12307:20;12336:30;:::i;12377:183::-;12437:4;12470:18;12462:6;12459:30;12456:56;;;12492:18;;:::i;:::-;-1:-1:-1;12537:1:119;12533:14;12549:4;12529:25;;12377:183::o;12565:967::-;12626:5;12674:4;12662:9;12657:3;12653:19;12649:30;12646:50;;;12692:1;12689;12682:12;12646:50;12714:22;;:::i;:::-;12705:31;;12772:9;12759:23;12752:5;12745:38;12802:2;12855;12844:9;12840:18;12827:32;12882:18;12874:6;12871:30;12868:50;;;12914:1;12911;12904:12;12868:50;12937:22;;12990:4;12982:13;;12978:23;-1:-1:-1;12968:51:119;;13015:1;13012;13005:12;12968:51;13051:2;13038:16;13074:60;13090:43;13130:2;13090:43;:::i;:::-;13074:60;:::i;:::-;13168:15;;;13250:1;13246:10;;;;13238:19;;13234:28;;;13199:12;;;;13274:15;;;13271:35;;;13302:1;13299;13292:12;13271:35;13326:11;;;;13346:142;13362:6;13357:3;13354:15;13346:142;;;13428:17;;13416:30;;13379:12;;;;13466;;;;13346:142;;;13520:5;13515:2;13508:5;13504:14;13497:29;;;;;;12565:967;;;;:::o;13537:2290::-;13665:6;13673;13717:9;13708:7;13704:23;13747:3;13743:2;13739:12;13736:32;;;13764:1;13761;13754:12;13736:32;13787:6;13813:2;13809;13805:11;13802:31;;;13829:1;13826;13819:12;13802:31;13855:22;;:::i;:::-;13842:35;;13900;13925:9;13900:35;:::i;:::-;13893:5;13886:50;13968:38;14002:2;13991:9;13987:18;13968:38;:::i;:::-;13963:2;13956:5;13952:14;13945:62;14067:2;14056:9;14052:18;14039:32;14034:2;14027:5;14023:14;14016:56;14132:2;14121:9;14117:18;14104:32;14099:2;14092:5;14088:14;14081:56;14170:36;14201:3;14190:9;14186:19;14170:36;:::i;:::-;14164:3;14157:5;14153:15;14146:61;14268:3;14257:9;14253:19;14240:33;14234:3;14227:5;14223:15;14216:58;14307:39;14341:3;14330:9;14326:19;14307:39;:::i;:::-;14301:3;14290:15;;14283:64;14408:3;14393:19;;;14380:33;14363:15;;;14356:58;14433:3;14481:18;;;14468:32;14452:14;;;14445:56;14520:3;14568:18;;;14555:32;14539:14;;;14532:56;14607:3;14642:37;14660:18;;;14642:37;:::i;:::-;14626:14;;;14619:61;14699:3;14734:37;14752:18;;;14734:37;:::i;:::-;14718:14;;;14711:61;14791:3;14826:37;14844:18;;;14826:37;:::i;:::-;14810:14;;;14803:61;14883:3;14918:38;14937:18;;;14918:38;:::i;:::-;14902:14;;;14895:62;14976:3;15011:38;15030:18;;;15011:38;:::i;:::-;14995:14;;;14988:62;15070:3;15119:19;;;15106:33;15089:15;;;15082:58;15160:3;15196:36;15212:19;;;15196:36;:::i;:::-;15179:15;;;15172:61;15253:3;15302:19;;;15289:33;15272:15;;;15265:58;15343:3;15392:19;;;15379:33;15362:15;;;15355:58;15433:3;15482:19;;;15469:33;15452:15;;;15445:58;15523:3;15559:39;15578:19;;;15559:39;:::i;:::-;15542:15;;;15535:64;15546:5;;-1:-1:-1;15659:18:119;;15646:32;15701:18;15690:30;;15687:50;;;15733:1;15730;15723:12;15687:50;15756:65;15813:7;15804:6;15793:9;15789:22;15756:65;:::i;:::-;15746:75;;;13537:2290;;;;;:::o;15832:250::-;15917:1;15927:113;15941:6;15938:1;15935:13;15927:113;;;16017:11;;;16011:18;15998:11;;;15991:39;15963:2;15956:10;15927:113;;;-1:-1:-1;;16074:1:119;16056:16;;16049:27;15832:250::o;16087:270::-;16128:3;16166:5;16160:12;16193:6;16188:3;16181:19;16209:76;16278:6;16271:4;16266:3;16262:14;16255:4;16248:5;16244:16;16209:76;:::i;:::-;16339:2;16318:15;-1:-1:-1;;16314:29:119;16305:39;;;;16346:4;16301:50;;16087:270;-1:-1:-1;;16087:270:119:o;16362:217::-;16509:2;16498:9;16491:21;16472:4;16529:44;16569:2;16558:9;16554:18;16546:6;16529:44;:::i;16808:252::-;16996:3;16981:19;;17009:45;16985:9;17036:6;17009:45;:::i;17252:247::-;17311:6;17364:2;17352:9;17343:7;17339:23;17335:32;17332:52;;;17380:1;17377;17370:12;17332:52;17419:9;17406:23;17438:31;17463:5;17438:31;:::i;17504:2571::-;17694:3;17679:19;;17707:69;17683:9;17732:32;17757:6;17732:32;:::i;:::-;17707:69;:::i;:::-;17805:37;17836:4;17828:6;17824:17;17805:37;:::i;:::-;-1:-1:-1;;;;;2106:31:119;;17899:4;17884:20;;2094:44;17851:54;17968:4;17960:6;17956:17;17943:31;17936:4;17925:9;17921:20;17914:61;18038:4;18030:6;18026:17;18013:31;18006:4;17995:9;17991:20;17984:61;18076:34;18104:4;18096:6;18092:17;18076:34;:::i;:::-;4783:13;4776:21;18166:4;18151:20;;4764:34;18235:4;18223:17;;;18210:31;18188:20;;;18181:61;18273:37;18304:4;18292:17;;18273:37;:::i;:::-;-1:-1:-1;;;;;2106:31:119;18369:4;18354:20;;2094:44;18438:4;18426:17;;;18413:31;18391:20;;;18384:61;18464:6;18519:15;;;18506:29;18486:18;;;18479:57;18555:6;18610:15;;;18597:29;18577:18;;;18570:57;18646:6;18683:34;18701:15;;;18683:34;:::i;:::-;3004:12;2993:24;18760:18;;;2981:37;18798:6;18835:34;18853:15;;;18835:34;:::i;:::-;2225:10;2214:22;18912:18;;;2202:35;18950:6;18987:34;19005:15;;;18987:34;:::i;:::-;3004:12;2993:24;19064:18;;;2981:37;19102:6;19139:35;19158:15;;;19139:35;:::i;:::-;-1:-1:-1;;;;;2106:31:119;19218:18;;;2094:44;19256:6;19293:35;19312:15;;;19293:35;:::i;:::-;-1:-1:-1;;;;;2106:31:119;19372:18;;;2094:44;19410:6;19465:15;;;19452:29;19432:18;;;19425:57;19501:6;19538:32;19554:15;;;19538:32;:::i;:::-;4783:13;4776:21;19611:18;;;4764:34;19650:6;19706:16;;;19693:30;19672:19;;;19665:59;19744:6;19800:16;;;19787:30;19766:19;;;19759:59;19838:6;19894:16;;;19881:30;19860:19;;;19853:59;19932:6;19969:36;19988:16;;;19969:36;:::i;:::-;-1:-1:-1;;;;;2106:31:119;20049:19;;2094:44;;;;17504:2571;;-1:-1:-1;17504:2571:119:o;20080:150::-;20165:13;;20187:37;20165:13;20187:37;:::i;20235:138::-;20314:13;;20336:31;20314:13;20336:31;:::i;20378:132::-;20454:13;;20476:28;20454:13;20476:28;:::i;20515:136::-;20593:13;;20615:30;20593:13;20615:30;:::i;20656:136::-;20734:13;;20756:30;20734:13;20756:30;:::i;20797:950::-;20869:5;20917:4;20905:9;20900:3;20896:19;20892:30;20889:50;;;20935:1;20932;20925:12;20889:50;20957:22;;:::i;:::-;20948:31;;21008:9;21002:16;20995:5;20988:31;21038:2;21084;21073:9;21069:18;21063:25;21111:18;21103:6;21100:30;21097:50;;;21143:1;21140;21133:12;21097:50;21166:22;;21219:4;21211:13;;21207:23;-1:-1:-1;21197:51:119;;21244:1;21241;21234:12;21197:51;21273:2;21267:9;21296:60;21312:43;21352:2;21312:43;:::i;21296:60::-;21390:15;;;21472:1;21468:10;;;;21460:19;;21456:28;;;21421:12;;;;21496:15;;;21493:35;;;21524:1;21521;21514:12;21493:35;21548:11;;;;21568:135;21584:6;21579:3;21576:15;21568:135;;;21650:10;;21638:23;;21601:12;;;;21681;;;;21568:135;;21752:2356;21891:6;21899;21943:9;21934:7;21930:23;21973:3;21969:2;21965:12;21962:32;;;21990:1;21987;21980:12;21962:32;22013:6;22039:2;22035;22031:11;22028:31;;;22055:1;22052;22045:12;22028:31;22081:22;;:::i;:::-;22068:35;;22126:46;22162:9;22126:46;:::i;:::-;22119:5;22112:61;22205:49;22250:2;22239:9;22235:18;22205:49;:::i;:::-;22200:2;22193:5;22189:14;22182:73;22308:2;22297:9;22293:18;22287:25;22282:2;22275:5;22271:14;22264:49;22366:2;22355:9;22351:18;22345:25;22340:2;22333:5;22329:14;22322:49;22404:47;22446:3;22435:9;22431:19;22404:47;:::i;:::-;22398:3;22391:5;22387:15;22380:72;22506:3;22495:9;22491:19;22485:26;22479:3;22472:5;22468:15;22461:51;22545:50;22590:3;22579:9;22575:19;22545:50;:::i;:::-;22539:3;22528:15;;22521:75;22650:3;22635:19;;;22629:26;22612:15;;;22605:51;22675:3;22716:18;;;22710:25;22694:14;;;22687:49;22755:3;22796:18;;;22790:25;22774:14;;;22767:49;22835:3;22870:48;22899:18;;;22870:48;:::i;:::-;22854:14;;;22847:72;22938:3;22973:48;23002:18;;;22973:48;:::i;:::-;22957:14;;;22950:72;23041:3;23076:48;23105:18;;;23076:48;:::i;:::-;23060:14;;;23053:72;23144:3;23179:49;23209:18;;;23179:49;:::i;:::-;23163:14;;;23156:73;23248:3;23283:49;23313:18;;;23283:49;:::i;:::-;23267:14;;;23260:73;23353:3;23395:19;;;23389:26;23372:15;;;23365:51;23436:3;23472:47;23499:19;;;23472:47;:::i;:::-;23455:15;;;23448:72;23540:3;23582:19;;;23576:26;23559:15;;;23552:51;23623:3;23665:19;;;23659:26;23642:15;;;23635:51;23706:3;23748:19;;;23742:26;23725:15;;;23718:51;23789:3;23825:50;23855:19;;;23825:50;:::i;:::-;23808:15;;;23801:75;23929:18;;23923:25;23812:5;;-1:-1:-1;23971:18:119;23960:30;;23957:50;;;24003:1;24000;23993:12;23957:50;24026:76;24094:7;24085:6;24074:9;24070:22;24026:76;:::i;24113:345::-;-1:-1:-1;;;;;24333:32:119;;;;24315:51;;24397:2;24382:18;;24375:34;;;;24440:2;24425:18;;24418:34;24303:2;24288:18;;24113:345::o;24716:359::-;24903:6;24898:3;24891:19;24873:3;24939:6;24933:13;24955:73;25021:6;25016:2;25011:3;25007:12;25002:2;24994:6;24990:15;24955:73;:::i;:::-;25048:16;;;;25066:2;25044:25;;24716:359;-1:-1:-1;;;24716:359:119:o;26065:245::-;26132:6;26185:2;26173:9;26164:7;26160:23;26156:32;26153:52;;;26201:1;26198;26191:12;26153:52;26233:9;26227:16;26252:28;26274:5;26252:28;:::i;26794:127::-;26855:10;26850:3;26846:20;26843:1;26836:31;26886:4;26883:1;26876:15;26910:4;26907:1;26900:15;26926:125;26991:9;;;27012:10;;;27009:36;;;27025:18;;:::i;27309:286::-;27414:6;27467:2;27455:9;27446:7;27442:23;27438:32;27435:52;;;27483:1;27480;27473:12;27435:52;27515:9;27509:16;27534:31;27559:5;27534:31;:::i;27879:184::-;27949:6;28002:2;27990:9;27981:7;27977:23;27973:32;27970:52;;;28018:1;28015;28008:12;27970:52;-1:-1:-1;28041:16:119;;27879:184;-1:-1:-1;27879:184:119:o;28321:127::-;28382:10;28377:3;28373:20;28370:1;28363:31;28413:4;28410:1;28403:15;28437:4;28434:1;28427:15;28453:135;28492:3;28513:17;;;28510:43;;28533:18;;:::i;:::-;-1:-1:-1;28580:1:119;28569:13;;28453:135::o;28593:288::-;28768:6;28757:9;28750:25;28811:2;28806;28795:9;28791:18;28784:30;28731:4;28831:44;28871:2;28860:9;28856:18;28848:6;28831:44;:::i;:::-;28823:52;28593:288;-1:-1:-1;;;;28593:288:119:o;28886:287::-;29015:3;29053:6;29047:13;29069:66;29128:6;29123:3;29116:4;29108:6;29104:17;29069:66;:::i;:::-;29151:16;;;;;28886:287;-1:-1:-1;;28886:287:119:o",
    "linkReferences": {},
    "immutableReferences": {
      "64601": [
        {
          "start": 455,
          "length": 32
        },
        {
          "start": 2481,
          "length": 32
        }
      ],
      "64603": [
        {
          "start": 714,
          "length": 32
        },
        {
          "start": 2229,
          "length": 32
        }
      ],
      "64606": [
        {
          "start": 494,
          "length": 32
        },
        {
          "start": 2800,
          "length": 32
        }
      ],
      "64609": [
        {
          "start": 675,
          "length": 32
        },
        {
          "start": 2114,
          "length": 32
        },
        {
          "start": 3579,
          "length": 32
        },
        {
          "start": 3906,
          "length": 32
        }
      ],
      "64612": [
        {
          "start": 578,
          "length": 32
        },
        {
          "start": 4257,
          "length": 32
        }
      ]
    }
  },
  "methodIdentifiers": {
    "DOMAIN_SEPARATOR()": "3644e515",
    "MULTIPROPOSAL_DOMAIN_SEPARATOR()": "abe93878",
    "MULTIPROPOSAL_TYPEHASH()": "d06a0d82",
    "PROPOSAL_TYPEHASH()": "853b94a0",
    "VERSION()": "ffa1ad74",
    "acceptProposal(address,uint256,bytes,bytes32[],bytes)": "01e83272",
    "config()": "79502c55",
    "creditUsed(bytes32)": "f0209ad6",
    "decodeProposalData(bytes)": "2d5d17fc",
    "encodeProposalData((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),(uint256,bytes32[]))": "f1647874",
    "getMultiproposalHash((bytes32))": "829d3770",
    "getProposalHash((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": "1a787a48",
    "hub()": "365a86fc",
    "makeProposal((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": "18e639b9",
    "proposalsMade(bytes32)": "1da4c275",
    "revokeNonce(uint256,uint256)": "579bfc30",
    "revokedNonce()": "9788ad55"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_hub\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_revokedNonce\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_config\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"AcceptorIsProposer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"tag\",\"type\":\"bytes32\"}],\"name\":\"AddressMissingHubTag\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"used\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"AvailableCreditLimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"CallerIsNotStatedProposer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"current\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"allowed\",\"type\":\"address\"}],\"name\":\"CallerNotAllowedAcceptor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"name\":\"CallerNotLoanContract\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"CollateralIdNotWhitelisted\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"Expired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"current\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"proposed\",\"type\":\"bytes32\"}],\"name\":\"InvalidCollateralStateFingerprint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"}],\"name\":\"InvalidRefinancingLoanId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"}],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MissingStateFingerprintComputer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"NonceNotUsable\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"proposalHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"collateralIdsWhitelistMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct PWNSimpleLoanListProposal.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"ProposalMade\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPROPOSAL_DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MULTIPROPOSAL_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROPOSAL_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"acceptor\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"proposalData\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"proposalInclusionProof\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"acceptProposal\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"proposalHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"lender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"category\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assetAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultiToken.Asset\",\"name\":\"collateral\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"category\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"assetAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct MultiToken.Asset\",\"name\":\"credit\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"bytes32\",\"name\":\"lenderSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"borrowerSpecHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct PWNSimpleLoan.Terms\",\"name\":\"loanTerms\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"config\",\"outputs\":[{\"internalType\":\"contract PWNConfig\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"creditUsed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proposalData\",\"type\":\"bytes\"}],\"name\":\"decodeProposalData\",\"outputs\":[{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"collateralIdsWhitelistMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"internalType\":\"struct PWNSimpleLoanListProposal.Proposal\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"collateralId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleInclusionProof\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct PWNSimpleLoanListProposal.ProposalValues\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"collateralIdsWhitelistMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"internalType\":\"struct PWNSimpleLoanListProposal.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"collateralId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleInclusionProof\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct PWNSimpleLoanListProposal.ProposalValues\",\"name\":\"proposalValues\",\"type\":\"tuple\"}],\"name\":\"encodeProposalData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"multiproposalMerkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct PWNSimpleLoanProposal.Multiproposal\",\"name\":\"multiproposal\",\"type\":\"tuple\"}],\"name\":\"getMultiproposalHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"collateralIdsWhitelistMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"internalType\":\"struct PWNSimpleLoanListProposal.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"getProposalHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hub\",\"outputs\":[{\"internalType\":\"contract PWNHub\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum MultiToken.Category\",\"name\":\"collateralCategory\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"collateralAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"collateralIdsWhitelistMerkleRoot\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"collateralAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"checkCollateralStateFingerprint\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"collateralStateFingerprint\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"creditAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creditAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableCreditLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fixedInterestAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint40\",\"name\":\"accruingInterestAPR\",\"type\":\"uint40\"},{\"internalType\":\"uint32\",\"name\":\"duration\",\"type\":\"uint32\"},{\"internalType\":\"uint40\",\"name\":\"expiration\",\"type\":\"uint40\"},{\"internalType\":\"address\",\"name\":\"allowedAcceptor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"proposerSpecHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"isOffer\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"refinancingLoanId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"loanContract\",\"type\":\"address\"}],\"internalType\":\"struct PWNSimpleLoanListProposal.Proposal\",\"name\":\"proposal\",\"type\":\"tuple\"}],\"name\":\"makeProposal\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"proposalHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsMade\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nonceSpace\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"revokeNonce\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"revokedNonce\",\"outputs\":[{\"internalType\":\"contract PWNRevokedNonce\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The proposal can define a list of acceptable collateral ids or the whole collection.\",\"errors\":{\"InvalidSignature(address,bytes32)\":[{\"details\":\"Thrown when signature is invalid.\"}],\"InvalidSignatureLength(uint256)\":[{\"details\":\"Thrown when signature length is not 64 nor 65 bytes.\"}],\"NonceNotUsable(address,uint256,uint256)\":[{\"details\":\"Maybe nonce is revoked or not in the current nonce space.\"}]},\"kind\":\"dev\",\"methods\":{\"acceptProposal(address,uint256,bytes,bytes32[],bytes)\":{\"details\":\"Function can be called only by a loan contract with appropriate PWN Hub tag.\",\"params\":{\"acceptor\":\"Address of a proposal acceptor.\",\"proposalData\":\"Encoded proposal data with signature.\",\"proposalInclusionProof\":\"Multiproposal inclusion proof. Empty if single proposal.\",\"refinancingLoanId\":\"Id of a loan to be refinanced. 0 if creating a new loan.\"},\"returns\":{\"loanTerms\":\"Loan terms.\",\"proposalHash\":\"Proposal hash.\"}},\"decodeProposalData(bytes)\":{\"params\":{\"proposalData\":\"Encoded proposal data.\"},\"returns\":{\"_0\":\"Decoded proposal struct.\",\"_1\":\"Decoded proposal values struct.\"}},\"encodeProposalData((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),(uint256,bytes32[]))\":{\"params\":{\"proposal\":\"Proposal struct to be encoded.\",\"proposalValues\":\"ProposalValues struct to be encoded.\"},\"returns\":{\"_0\":\"Encoded proposal data.\"}},\"getMultiproposalHash((bytes32))\":{\"params\":{\"multiproposal\":\"Multiproposal struct.\"},\"returns\":{\"_0\":\"Multiproposal hash.\"}},\"getProposalHash((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))\":{\"params\":{\"proposal\":\"Proposal struct to be hashed.\"},\"returns\":{\"_0\":\"Proposal struct hash.\"}},\"makeProposal((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))\":{\"details\":\"Function will mark a proposal hash as proposed.\",\"params\":{\"proposal\":\"Proposal struct containing all needed proposal data.\"},\"returns\":{\"proposalHash\":\"Proposal hash.\"}},\"revokeNonce(uint256,uint256)\":{\"params\":{\"nonce\":\"Proposal nonce to be revoked.\",\"nonceSpace\":\"Nonce space of a proposal nonce to be revoked.\"}}},\"stateVariables\":{\"PROPOSAL_TYPEHASH\":{\"details\":\"EIP-712 simple proposal struct type hash.\"}},\"title\":\"PWN Simple Loan List Proposal\",\"version\":1},\"userdoc\":{\"errors\":{\"AcceptorIsProposer(address)\":[{\"notice\":\"Thrown when proposal acceptor and proposer are the same.\"}],\"AddressMissingHubTag(address,bytes32)\":[{\"notice\":\"Thrown when an address is missing a PWN Hub tag.\"}],\"AvailableCreditLimitExceeded(uint256,uint256)\":[{\"notice\":\"Thrown when a proposal would exceed the available credit limit.\"}],\"CallerIsNotStatedProposer(address)\":[{\"notice\":\"Thrown when a caller is not a stated proposer.\"}],\"CallerNotAllowedAcceptor(address,address)\":[{\"notice\":\"Thrown when caller is not allowed to accept a proposal.\"}],\"CallerNotLoanContract(address,address)\":[{\"notice\":\"Thrown when a caller is missing a required hub tag.\"}],\"CollateralIdNotWhitelisted(uint256)\":[{\"notice\":\"Thrown when a collateral id is not whitelisted.\"}],\"Expired(uint256,uint256)\":[{\"notice\":\"Thrown when a proposal is expired.\"}],\"InvalidCollateralStateFingerprint(bytes32,bytes32)\":[{\"notice\":\"Thrown when a proposed collateral state fingerprint doesn't match the current state.\"}],\"InvalidRefinancingLoanId(uint256)\":[{\"notice\":\"Thrown when provided refinance loan id cannot be used.\"}],\"MissingStateFingerprintComputer()\":[{\"notice\":\"Thrown when a state fingerprint computer is not registered.\"}],\"NonceNotUsable(address,uint256,uint256)\":[{\"notice\":\"Thrown when nonce is currently not usable.\"}]},\"events\":{\"ProposalMade(bytes32,address,(uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))\":{\"notice\":\"Emitted when a proposal is made via an on-chain transaction.\"}},\"kind\":\"user\",\"methods\":{\"acceptProposal(address,uint256,bytes,bytes32[],bytes)\":{\"notice\":\"Accept a proposal and create new loan terms.\"},\"decodeProposalData(bytes)\":{\"notice\":\"Decode proposal data.\"},\"encodeProposalData((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),(uint256,bytes32[]))\":{\"notice\":\"Encode proposal data.\"},\"getMultiproposalHash((bytes32))\":{\"notice\":\"Get a multiproposal hash according to EIP-712.\"},\"getProposalHash((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))\":{\"notice\":\"Get an proposal hash according to EIP-712\"},\"makeProposal((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))\":{\"notice\":\"Make an on-chain proposal.\"},\"revokeNonce(uint256,uint256)\":{\"notice\":\"Helper function for revoking a proposal nonce on behalf of a caller.\"}},\"notice\":\"Contract for creating and accepting list loan proposals.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/loan/terms/simple/proposal/PWNSimpleLoanListProposal.sol\":\"PWNSimpleLoanListProposal\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":MultiToken/=lib/MultiToken/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":pwn/=src/\"]},\"sources\":{\"lib/MultiToken/src/MultiToken.sol\":{\"keccak256\":\"0xc82d7bddc1a925316875bfe3bf116cb8deacc2c6296fad57b1895db898bf871e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://587293f9235d52ab6f51c794ed68e8828eaa4f8b073fa191556fff37446be10c\",\"dweb:/ipfs/QmdFay286V8GfHZDE7TFDxh9irQsmNDwP4tQFbno49waxY\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xde231558366826d7cb61725af8147965a61c53b77a352cc8c9af38fc5a92ac3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd55624076bf61d44af5ff351919e32dda748567acfbdd6ba3d6c7be61c758e\",\"dweb:/ipfs/QmSki4dTrf4GPm7MTpG3fk8mC7rnjwd2zMomLp6jLuF63Q\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol\":{\"keccak256\":\"0x10a6688bc4154b1b76268dbaf497bd8b24f77525ecb9cf829bd3cccec98eefc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68663f939b79e88a5bb677cf6c549e88eb4f587379c09f80d19cde14b0eb984b\",\"dweb:/ipfs/QmVfeL1uxQ5161d25DsNqptjaur7VQugjCSGitrRscTdmV\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45\",\"dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8\",\"dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed\",\"dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xcab667ddad478ff0d39c2053ca77fac778af8483c18ab07d810277b4216fd582\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://919c7ea27c77275c3c341da0c4a26a66a20ed27605fbe8becf11f58ec3bc65bf\",\"dweb:/ipfs/QmRLKyVE2n7e2Jo4bLNn8eLgqqhNGYnVQyjJPWdr8poskf\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x2c309e7df9e05e6ce15bedfe74f3c61b467fc37e0fae9eab496acf5ea0bbd7ff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7063b5c98711a98018ba4635ac74cee1c1cfa2ea01099498e062699ed9530005\",\"dweb:/ipfs/QmeJ8rGXkcv7RrqLdAW8PCXPAykxVsddfYY6g5NaTwmRFE\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4\",\"dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04\",\"dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278\",\"dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"src/PWNErrors.sol\":{\"keccak256\":\"0x8a0e516fc8ddf54aecb82d5cbd19b6f263950a91d4411d1d4c54b90fae010692\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b9cd08003376c48cdaf6279c4237a38efb1e26080bc29de3343bcfe397a4bb0f\",\"dweb:/ipfs/QmXtMtn71ZzRu1rGQLq8u5vnDy4k462d7mGtu1jFd7ZBJG\"]},\"src/config/PWNConfig.sol\":{\"keccak256\":\"0x15a2ab788f84df29b960d50b33803130bdd61fe7c0ce76d4f6bf76da7cccb594\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://b1310535db741a5a7a0aff71f34ef329c7f5bf3117f9c38587e4090bec340fb4\",\"dweb:/ipfs/QmYRWwiSAyZMdxSqMYU1K2YRFzBW7L2dHXktx1BdFW9fP5\"]},\"src/hub/PWNHub.sol\":{\"keccak256\":\"0x92ad9edafc151bc7efc1b132c1be55966bb692860a94803a74ce5a948985126c\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://a04dbfe0ea39f7cd04b7947cac66ce77745ecc20a24aad3f8d35a6d319eec202\",\"dweb:/ipfs/QmbxoqEtL4YwMQDfCydurWLHeVjL1Yjc4Ty4vsRoCqXabv\"]},\"src/hub/PWNHubAccessControl.sol\":{\"keccak256\":\"0x310e0389c98971c4d6c25d8756c1e8a962c8b22c54e3ce6d80a383fb5b755448\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://63748084b8c8a9e2cce98a87d27a8baf353fae903641d6fdfc2cdc4ed229243f\",\"dweb:/ipfs/QmVywLNCBeWkNdWjpdumnAam1Shwj8k3DxxpRcWAK997Nw\"]},\"src/hub/PWNHubTags.sol\":{\"keccak256\":\"0xd1e685e8075f1f16835d38cfe39b1eee9edbf75089a0109002f7b2bfe14c177a\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://4a01df6b1c2cf493017b7abb4b9ec6ac16c9b1c3498b16ccbdc4f2045909dde8\",\"dweb:/ipfs/QmcYEgSZrE33YKxDDBvhVgZTfT9Tj1RTEX3iA717zZyspJ\"]},\"src/interfaces/ICryptoKitties.sol\":{\"keccak256\":\"0x9aaa7f948d4f2121d764b5664fe1c8431b3c5bfce780228eceb56d1589681706\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://05416e111c8ff6a1464248ac387e8c69015c355e949967586d514d9d17d619aa\",\"dweb:/ipfs/QmVK5Q6bS1CevgdxB17RJ9BGZsspCXdY5Y5dX4cpgQ4Rze\"]},\"src/interfaces/IERC5646.sol\":{\"keccak256\":\"0xff5ce494375d2cf5a67fe9460ea66aa3572b8a0434ae538cbac0a55f7aac5c5e\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://e8e2b472fa80a92ae12985da77056f68f0e0f36fca7ac37b6d30db82a2527180\",\"dweb:/ipfs/QmdFTGSCaPcVfthbGSUuiyhivqBx6xN9dCL14PCbR39Wki\"]},\"src/interfaces/IMultiTokenCategoryRegistry.sol\":{\"keccak256\":\"0x5607c7415785a07c7226638ab7d16ae9a87906e5eafb06e723944144b8f7c48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd5f1d39f2acb6cda18a1199e06be211deccce27478de077d942ced8ada6e0b1\",\"dweb:/ipfs/Qmdx2uXjyoyyqNQU5aQTpagujxSVAfS17Sc3ziJGAofXnX\"]},\"src/interfaces/IPWNLoanMetadataProvider.sol\":{\"keccak256\":\"0x6cc991fd9c8c88e0a69e835fcd514868836e2432b12454dfcb6a681a3a9d13b8\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://69fd07433fd7eb2f1474d778476240434fa79a31525341d88a588573562389c6\",\"dweb:/ipfs/Qmb6gWNQD96oSgwH5Yf6eMHxYWXZwCPrd7MvK86r7UKhZK\"]},\"src/interfaces/IPoolAdapter.sol\":{\"keccak256\":\"0xe0309b4e7da2046095c7dc943d953f32d2a46b0ad64beaf3f4ed1b440fe43f89\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://15870bf95e096b35620787a0eba49f7becbaff738651a83bd28310d022cdc93b\",\"dweb:/ipfs/QmZPYmxrjB6SFWr5arTztrDofQ6XdyzXTUMeaQt5wcbv3T\"]},\"src/interfaces/IStateFingerpringComputer.sol\":{\"keccak256\":\"0xb2f72031bdd6b6ac7179ca9af90c290d37bcc43d6bab4db6e0b1ee7c7b4f72a2\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://d8de3c648f1afab5458e553042a59b0df3d8d54be1a488e891de70821745da0c\",\"dweb:/ipfs/QmQ6QoeMgZGdVjJ2aAt8t1AuBCJ95m6BRSR1GKRqVk4jct\"]},\"src/loan/lib/PWNFeeCalculator.sol\":{\"keccak256\":\"0xab8eb0be2d2e5a7c909a326de53459ae2ed6fd7cdd3985719515f279f952fcdf\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://4ca7a9d230ab90b46cdb1a16bd99af5639af7adcf2250a20b7e1f77c952344f5\",\"dweb:/ipfs/QmXzwraVHPmrVFtR4tkm5JqafygeDDvbQbkKu33EYUWLMq\"]},\"src/loan/lib/PWNSignatureChecker.sol\":{\"keccak256\":\"0xb76220c904f1b4c9e08166c4175746b161aaf70be14dc22b1a335f351970d1fd\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://846d1cc6b7f1ba8b0bc6b5836aad018828bc1ad8f6f994ec59d24f6617d91fc1\",\"dweb:/ipfs/QmWe7cAsDysa6Qjn9vBAiHW4iaPmZnaeVmqxnwRMikgSCM\"]},\"src/loan/terms/simple/loan/PWNSimpleLoan.sol\":{\"keccak256\":\"0x6dd44efd796277aeb5a7712591cfbee10ea3058c0f8f97f9c6111297714d3155\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://0a65b5a30ea71966c8deaa54f621985568fbcbe37bcb6174219410837c9722d9\",\"dweb:/ipfs/QmWzCC35n2a2GsqEkU27i1LKGjqhYTZ1wLfEBnUxsPRrfr\"]},\"src/loan/terms/simple/proposal/PWNSimpleLoanListProposal.sol\":{\"keccak256\":\"0xcabb2b3b9f1868f2b0f107f5d9ceda83d04d9d626f17f514f0a854a45699db61\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://1a937b71a107655e0250b7900b06c11b5a6a6d0fbfed9420223f06df660d3141\",\"dweb:/ipfs/QmX26UhXH4FAHCjwcFjqrwNzCr8VmVHkqxEJGHcJSc1tEA\"]},\"src/loan/terms/simple/proposal/PWNSimpleLoanProposal.sol\":{\"keccak256\":\"0xa0569c9949bfcd4995d813e1bfe3cb89dcf55293e2fb7728ade49d49be1c6d2d\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://d94dc60f4f6591cac65d95bea69a8b6364589977b085892f334e4224ce3b754d\",\"dweb:/ipfs/QmV3NaHYz3bNbXsKbrHEJxBuLHJyStB6917hJ1D7dtqhs5\"]},\"src/loan/token/PWNLOAN.sol\":{\"keccak256\":\"0x92981fb0bd0abcadc45b0f88bfc5fcc960ce7a5b79494fc6c9fd5990b197c764\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://e10726f492991694d751b68bf87a352f1284710ba311614295381a58ebfd226e\",\"dweb:/ipfs/Qmct6PYHSqHo9K9rGAif9ohBpJuQnTBWdHJRdENpetGg7k\"]},\"src/loan/vault/PWNVault.sol\":{\"keccak256\":\"0x00f3a6cad5f19a0a818d351a5aa849e41a34bf0251a872d4993d40d77468f29e\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://01942d7d871fe64f229820f5f90be23b647e438d951531a5f60a470f8093977e\",\"dweb:/ipfs/QmcyDXfCdgSQ8P454JxfuTzNBSxfpzeJ9aTPBefTH3dTvK\"]},\"src/loan/vault/Permit.sol\":{\"keccak256\":\"0xce0acf24731cfaa49535adea5c0c6ebade736d35f3f54a8150ef175a693e3cee\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://3542ad1e3295c63363fe825d3e46ad447fcd614f31f4dadeea39d24086e02c7a\",\"dweb:/ipfs/QmVjAuaQ1UdqgJAmvR8pdXQCb3Zy7fDQeBtbx9ZTbCQic4\"]},\"src/nonce/PWNRevokedNonce.sol\":{\"keccak256\":\"0xc0c75afa97243c3ef711e04cc9ffd0b3d44fa7999333b0048dc37b562a4cc06e\",\"license\":\"GPL-3.0-only\",\"urls\":[\"bzz-raw://5b2b7271b9505f35a05d2d68803f20116b621dcecfc528806225e0280b0a420e\",\"dweb:/ipfs/QmZh95WUcgTHz7ifsQhmrq1wCjvDXfwwh9G7k49otPisxx\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.16+commit.07a7930e"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_hub",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "_revokedNonce",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "_config",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "constructor"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "AcceptorIsProposer"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "tag",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "AddressMissingHubTag"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "used",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "limit",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "AvailableCreditLimitExceeded"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "CallerIsNotStatedProposer"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "current",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "allowed",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "CallerNotAllowedAcceptor"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "caller",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "loanContract",
              "type": "address"
            }
          ],
          "type": "error",
          "name": "CallerNotLoanContract"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "CollateralIdNotWhitelisted"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "current",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "expiration",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "Expired"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "current",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "proposed",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "InvalidCollateralStateFingerprint"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "InvalidRefinancingLoanId"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "signer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "digest",
              "type": "bytes32"
            }
          ],
          "type": "error",
          "name": "InvalidSignature"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "length",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "InvalidSignatureLength"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "MissingStateFingerprintComputer"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "addr",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            }
          ],
          "type": "error",
          "name": "NonceNotUsable"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "proposalHash",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "struct PWNSimpleLoanListProposal.Proposal",
              "name": "proposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralIdsWhitelistMerkleRoot",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "creditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "expiration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ],
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ProposalMade",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "DOMAIN_SEPARATOR",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "MULTIPROPOSAL_DOMAIN_SEPARATOR",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "MULTIPROPOSAL_TYPEHASH",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "PROPOSAL_TYPEHASH",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "VERSION",
          "outputs": [
            {
              "internalType": "string",
              "name": "",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "acceptor",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "refinancingLoanId",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "proposalData",
              "type": "bytes"
            },
            {
              "internalType": "bytes32[]",
              "name": "proposalInclusionProof",
              "type": "bytes32[]"
            },
            {
              "internalType": "bytes",
              "name": "signature",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "acceptProposal",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "proposalHash",
              "type": "bytes32"
            },
            {
              "internalType": "struct PWNSimpleLoan.Terms",
              "name": "loanTerms",
              "type": "tuple",
              "components": [
                {
                  "internalType": "address",
                  "name": "lender",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "borrower",
                  "type": "address"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "struct MultiToken.Asset",
                  "name": "collateral",
                  "type": "tuple",
                  "components": [
                    {
                      "internalType": "enum MultiToken.Category",
                      "name": "category",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "assetAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "id",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "amount",
                      "type": "uint256"
                    }
                  ]
                },
                {
                  "internalType": "struct MultiToken.Asset",
                  "name": "credit",
                  "type": "tuple",
                  "components": [
                    {
                      "internalType": "enum MultiToken.Category",
                      "name": "category",
                      "type": "uint8"
                    },
                    {
                      "internalType": "address",
                      "name": "assetAddress",
                      "type": "address"
                    },
                    {
                      "internalType": "uint256",
                      "name": "id",
                      "type": "uint256"
                    },
                    {
                      "internalType": "uint256",
                      "name": "amount",
                      "type": "uint256"
                    }
                  ]
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "bytes32",
                  "name": "lenderSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "borrowerSpecHash",
                  "type": "bytes32"
                }
              ]
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "config",
          "outputs": [
            {
              "internalType": "contract PWNConfig",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "creditUsed",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes",
              "name": "proposalData",
              "type": "bytes"
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "decodeProposalData",
          "outputs": [
            {
              "internalType": "struct PWNSimpleLoanListProposal.Proposal",
              "name": "",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralIdsWhitelistMerkleRoot",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "creditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "expiration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ]
            },
            {
              "internalType": "struct PWNSimpleLoanListProposal.ProposalValues",
              "name": "",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "collateralId",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32[]",
                  "name": "merkleInclusionProof",
                  "type": "bytes32[]"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct PWNSimpleLoanListProposal.Proposal",
              "name": "proposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralIdsWhitelistMerkleRoot",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "creditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "expiration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ]
            },
            {
              "internalType": "struct PWNSimpleLoanListProposal.ProposalValues",
              "name": "proposalValues",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "collateralId",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes32[]",
                  "name": "merkleInclusionProof",
                  "type": "bytes32[]"
                }
              ]
            }
          ],
          "stateMutability": "pure",
          "type": "function",
          "name": "encodeProposalData",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "",
              "type": "bytes"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct PWNSimpleLoanProposal.Multiproposal",
              "name": "multiproposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "multiproposalMerkleRoot",
                  "type": "bytes32"
                }
              ]
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getMultiproposalHash",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct PWNSimpleLoanListProposal.Proposal",
              "name": "proposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralIdsWhitelistMerkleRoot",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "creditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "expiration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ]
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getProposalHash",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "hub",
          "outputs": [
            {
              "internalType": "contract PWNHub",
              "name": "",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "struct PWNSimpleLoanListProposal.Proposal",
              "name": "proposal",
              "type": "tuple",
              "components": [
                {
                  "internalType": "enum MultiToken.Category",
                  "name": "collateralCategory",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "collateralAddress",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralIdsWhitelistMerkleRoot",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint256",
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "checkCollateralStateFingerprint",
                  "type": "bool"
                },
                {
                  "internalType": "bytes32",
                  "name": "collateralStateFingerprint",
                  "type": "bytes32"
                },
                {
                  "internalType": "address",
                  "name": "creditAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "creditAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "availableCreditLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "fixedInterestAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint40",
                  "name": "accruingInterestAPR",
                  "type": "uint40"
                },
                {
                  "internalType": "uint32",
                  "name": "duration",
                  "type": "uint32"
                },
                {
                  "internalType": "uint40",
                  "name": "expiration",
                  "type": "uint40"
                },
                {
                  "internalType": "address",
                  "name": "allowedAcceptor",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "proposerSpecHash",
                  "type": "bytes32"
                },
                {
                  "internalType": "bool",
                  "name": "isOffer",
                  "type": "bool"
                },
                {
                  "internalType": "uint256",
                  "name": "refinancingLoanId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonceSpace",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "nonce",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "loanContract",
                  "type": "address"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "makeProposal",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "proposalHash",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "proposalsMade",
          "outputs": [
            {
              "internalType": "bool",
              "name": "",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "nonceSpace",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "nonce",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "revokeNonce"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "revokedNonce",
          "outputs": [
            {
              "internalType": "contract PWNRevokedNonce",
              "name": "",
              "type": "address"
            }
          ]
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "acceptProposal(address,uint256,bytes,bytes32[],bytes)": {
            "details": "Function can be called only by a loan contract with appropriate PWN Hub tag.",
            "params": {
              "acceptor": "Address of a proposal acceptor.",
              "proposalData": "Encoded proposal data with signature.",
              "proposalInclusionProof": "Multiproposal inclusion proof. Empty if single proposal.",
              "refinancingLoanId": "Id of a loan to be refinanced. 0 if creating a new loan."
            },
            "returns": {
              "loanTerms": "Loan terms.",
              "proposalHash": "Proposal hash."
            }
          },
          "decodeProposalData(bytes)": {
            "params": {
              "proposalData": "Encoded proposal data."
            },
            "returns": {
              "_0": "Decoded proposal struct.",
              "_1": "Decoded proposal values struct."
            }
          },
          "encodeProposalData((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),(uint256,bytes32[]))": {
            "params": {
              "proposal": "Proposal struct to be encoded.",
              "proposalValues": "ProposalValues struct to be encoded."
            },
            "returns": {
              "_0": "Encoded proposal data."
            }
          },
          "getMultiproposalHash((bytes32))": {
            "params": {
              "multiproposal": "Multiproposal struct."
            },
            "returns": {
              "_0": "Multiproposal hash."
            }
          },
          "getProposalHash((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": {
            "params": {
              "proposal": "Proposal struct to be hashed."
            },
            "returns": {
              "_0": "Proposal struct hash."
            }
          },
          "makeProposal((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": {
            "details": "Function will mark a proposal hash as proposed.",
            "params": {
              "proposal": "Proposal struct containing all needed proposal data."
            },
            "returns": {
              "proposalHash": "Proposal hash."
            }
          },
          "revokeNonce(uint256,uint256)": {
            "params": {
              "nonce": "Proposal nonce to be revoked.",
              "nonceSpace": "Nonce space of a proposal nonce to be revoked."
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "acceptProposal(address,uint256,bytes,bytes32[],bytes)": {
            "notice": "Accept a proposal and create new loan terms."
          },
          "decodeProposalData(bytes)": {
            "notice": "Decode proposal data."
          },
          "encodeProposalData((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address),(uint256,bytes32[]))": {
            "notice": "Encode proposal data."
          },
          "getMultiproposalHash((bytes32))": {
            "notice": "Get a multiproposal hash according to EIP-712."
          },
          "getProposalHash((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": {
            "notice": "Get an proposal hash according to EIP-712"
          },
          "makeProposal((uint8,address,bytes32,uint256,bool,bytes32,address,uint256,uint256,uint256,uint40,uint32,uint40,address,address,bytes32,bool,uint256,uint256,uint256,address))": {
            "notice": "Make an on-chain proposal."
          },
          "revokeNonce(uint256,uint256)": {
            "notice": "Helper function for revoking a proposal nonce on behalf of a caller."
          }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "MultiToken/=lib/MultiToken/src/",
        "ds-test/=lib/forge-std/lib/ds-test/src/",
        "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
        "forge-std/=lib/forge-std/src/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "openzeppelin/=lib/openzeppelin-contracts/contracts/",
        "pwn/=src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "src/loan/terms/simple/proposal/PWNSimpleLoanListProposal.sol": "PWNSimpleLoanListProposal"
      },
      "libraries": {}
    },
    "sources": {
      "lib/MultiToken/src/MultiToken.sol": {
        "keccak256": "0xc82d7bddc1a925316875bfe3bf116cb8deacc2c6296fad57b1895db898bf871e",
        "urls": [
          "bzz-raw://587293f9235d52ab6f51c794ed68e8828eaa4f8b073fa191556fff37446be10c",
          "dweb:/ipfs/QmdFay286V8GfHZDE7TFDxh9irQsmNDwP4tQFbno49waxY"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/access/Ownable.sol": {
        "keccak256": "0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218",
        "urls": [
          "bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32",
          "dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/access/Ownable2Step.sol": {
        "keccak256": "0xde231558366826d7cb61725af8147965a61c53b77a352cc8c9af38fc5a92ac3c",
        "urls": [
          "bzz-raw://1fd55624076bf61d44af5ff351919e32dda748567acfbdd6ba3d6c7be61c758e",
          "dweb:/ipfs/QmSki4dTrf4GPm7MTpG3fk8mC7rnjwd2zMomLp6jLuF63Q"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/interfaces/IERC1155.sol": {
        "keccak256": "0x10a6688bc4154b1b76268dbaf497bd8b24f77525ecb9cf829bd3cccec98eefc2",
        "urls": [
          "bzz-raw://68663f939b79e88a5bb677cf6c549e88eb4f587379c09f80d19cde14b0eb984b",
          "dweb:/ipfs/QmVfeL1uxQ5161d25DsNqptjaur7VQugjCSGitrRscTdmV"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol": {
        "keccak256": "0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544",
        "urls": [
          "bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e",
          "dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol": {
        "keccak256": "0x6ebf1944ab804b8660eb6fc52f9fe84588cee01c2566a69023e59497e7d27f45",
        "urls": [
          "bzz-raw://2900536cdadec954ced8789a9d1ed4b5e640029e1424e91fd5b88026486f4d45",
          "dweb:/ipfs/QmUMUX7CuYoiHvFkhifqtXGaciw2wnm4t9sAoPzETZ3Gbq"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol": {
        "keccak256": "0xaf297d12d8d4a57fe01a70f0ef38908f208e3faedc577056d0b728fa2f3ccf0c",
        "urls": [
          "bzz-raw://fbfaf37123958822a2720a4ea29651be00edab787540b770f73d3e025d286ff8",
          "dweb:/ipfs/QmbzgWeTm8hJVUqWrNAwFjshqbYVyeGpQA8D1huzxQdmw6"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/proxy/utils/Initializable.sol": {
        "keccak256": "0x3d6069be9b4c01fb81840fb9c2c4dc58dd6a6a4aafaa2c6837de8699574d84c6",
        "urls": [
          "bzz-raw://720d6bb56ea0c4ef781c0bd65c5bd0541f5a46100163b2587170f97658d2deed",
          "dweb:/ipfs/QmTS2biLVPrv8CeeXCaKmkFxonMiRvc1LxiYBRYDAJHQUS"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155.sol": {
        "keccak256": "0xcab667ddad478ff0d39c2053ca77fac778af8483c18ab07d810277b4216fd582",
        "urls": [
          "bzz-raw://919c7ea27c77275c3c341da0c4a26a66a20ed27605fbe8becf11f58ec3bc65bf",
          "dweb:/ipfs/QmRLKyVE2n7e2Jo4bLNn8eLgqqhNGYnVQyjJPWdr8poskf"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol": {
        "keccak256": "0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b",
        "urls": [
          "bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec",
          "dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": {
        "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305",
        "urls": [
          "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5",
          "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol": {
        "keccak256": "0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69",
        "urls": [
          "bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71",
          "dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol": {
        "keccak256": "0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1",
        "urls": [
          "bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68",
          "dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol": {
        "keccak256": "0x2c309e7df9e05e6ce15bedfe74f3c61b467fc37e0fae9eab496acf5ea0bbd7ff",
        "urls": [
          "bzz-raw://7063b5c98711a98018ba4635ac74cee1c1cfa2ea01099498e062699ed9530005",
          "dweb:/ipfs/QmeJ8rGXkcv7RrqLdAW8PCXPAykxVsddfYY6g5NaTwmRFE"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": {
        "keccak256": "0x5bce51e11f7d194b79ea59fe00c9e8de9fa2c5530124960f29a24d4c740a3266",
        "urls": [
          "bzz-raw://7e66dfde185df46104c11bc89d08fa0760737aa59a2b8546a656473d810a8ea4",
          "dweb:/ipfs/QmXvyqtXPaPss2PD7eqPoSao5Szm2n6UMoiG8TZZDjmChR"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol": {
        "keccak256": "0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da",
        "urls": [
          "bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708",
          "dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
        "keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9",
        "urls": [
          "bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146",
          "dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/Address.sol": {
        "keccak256": "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa",
        "urls": [
          "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931",
          "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/Context.sol": {
        "keccak256": "0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439",
        "urls": [
          "bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c",
          "dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/Strings.sol": {
        "keccak256": "0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0",
        "urls": [
          "bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f",
          "dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol": {
        "keccak256": "0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58",
        "urls": [
          "bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2",
          "dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol": {
        "keccak256": "0xcf688741f79f4838d5301dcf72d0af9eff11bbab6ab0bb112ad144c7fb672dac",
        "urls": [
          "bzz-raw://85d9c87a481fe99fd28a146c205da0867ef7e1b7edbe0036abc86d2e64eb1f04",
          "dweb:/ipfs/QmR7m1zWQNfZHUKTtqnjoCjCBbNFcjCxV27rxf6iMfhVtG"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol": {
        "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b",
        "urls": [
          "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d",
          "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol": {
        "keccak256": "0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5",
        "urls": [
          "bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd",
          "dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": {
        "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
        "urls": [
          "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
          "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": {
        "keccak256": "0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3",
        "urls": [
          "bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c",
          "dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol": {
        "keccak256": "0x52a8cfb0f5239d11b457dcdd1b326992ef672714ca8da71a157255bddd13f3ad",
        "urls": [
          "bzz-raw://495145362c7ff1c9ca88c58bbbbcb412e3c2004406647412394486552ff6c278",
          "dweb:/ipfs/QmNNCeng6d5eRPDn6tkWSQhjE39XWfQEfjA63rRwHmr1iH"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": {
        "keccak256": "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc",
        "urls": [
          "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7",
          "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"
        ],
        "license": "MIT"
      },
      "src/PWNErrors.sol": {
        "keccak256": "0x8a0e516fc8ddf54aecb82d5cbd19b6f263950a91d4411d1d4c54b90fae010692",
        "urls": [
          "bzz-raw://b9cd08003376c48cdaf6279c4237a38efb1e26080bc29de3343bcfe397a4bb0f",
          "dweb:/ipfs/QmXtMtn71ZzRu1rGQLq8u5vnDy4k462d7mGtu1jFd7ZBJG"
        ],
        "license": "GPL-3.0-only"
      },
      "src/config/PWNConfig.sol": {
        "keccak256": "0x15a2ab788f84df29b960d50b33803130bdd61fe7c0ce76d4f6bf76da7cccb594",
        "urls": [
          "bzz-raw://b1310535db741a5a7a0aff71f34ef329c7f5bf3117f9c38587e4090bec340fb4",
          "dweb:/ipfs/QmYRWwiSAyZMdxSqMYU1K2YRFzBW7L2dHXktx1BdFW9fP5"
        ],
        "license": "GPL-3.0-only"
      },
      "src/hub/PWNHub.sol": {
        "keccak256": "0x92ad9edafc151bc7efc1b132c1be55966bb692860a94803a74ce5a948985126c",
        "urls": [
          "bzz-raw://a04dbfe0ea39f7cd04b7947cac66ce77745ecc20a24aad3f8d35a6d319eec202",
          "dweb:/ipfs/QmbxoqEtL4YwMQDfCydurWLHeVjL1Yjc4Ty4vsRoCqXabv"
        ],
        "license": "GPL-3.0-only"
      },
      "src/hub/PWNHubAccessControl.sol": {
        "keccak256": "0x310e0389c98971c4d6c25d8756c1e8a962c8b22c54e3ce6d80a383fb5b755448",
        "urls": [
          "bzz-raw://63748084b8c8a9e2cce98a87d27a8baf353fae903641d6fdfc2cdc4ed229243f",
          "dweb:/ipfs/QmVywLNCBeWkNdWjpdumnAam1Shwj8k3DxxpRcWAK997Nw"
        ],
        "license": "GPL-3.0-only"
      },
      "src/hub/PWNHubTags.sol": {
        "keccak256": "0xd1e685e8075f1f16835d38cfe39b1eee9edbf75089a0109002f7b2bfe14c177a",
        "urls": [
          "bzz-raw://4a01df6b1c2cf493017b7abb4b9ec6ac16c9b1c3498b16ccbdc4f2045909dde8",
          "dweb:/ipfs/QmcYEgSZrE33YKxDDBvhVgZTfT9Tj1RTEX3iA717zZyspJ"
        ],
        "license": "GPL-3.0-only"
      },
      "src/interfaces/ICryptoKitties.sol": {
        "keccak256": "0x9aaa7f948d4f2121d764b5664fe1c8431b3c5bfce780228eceb56d1589681706",
        "urls": [
          "bzz-raw://05416e111c8ff6a1464248ac387e8c69015c355e949967586d514d9d17d619aa",
          "dweb:/ipfs/QmVK5Q6bS1CevgdxB17RJ9BGZsspCXdY5Y5dX4cpgQ4Rze"
        ],
        "license": "MIT"
      },
      "src/interfaces/IERC5646.sol": {
        "keccak256": "0xff5ce494375d2cf5a67fe9460ea66aa3572b8a0434ae538cbac0a55f7aac5c5e",
        "urls": [
          "bzz-raw://e8e2b472fa80a92ae12985da77056f68f0e0f36fca7ac37b6d30db82a2527180",
          "dweb:/ipfs/QmdFTGSCaPcVfthbGSUuiyhivqBx6xN9dCL14PCbR39Wki"
        ],
        "license": "GPL-3.0-only"
      },
      "src/interfaces/IMultiTokenCategoryRegistry.sol": {
        "keccak256": "0x5607c7415785a07c7226638ab7d16ae9a87906e5eafb06e723944144b8f7c48a",
        "urls": [
          "bzz-raw://dd5f1d39f2acb6cda18a1199e06be211deccce27478de077d942ced8ada6e0b1",
          "dweb:/ipfs/Qmdx2uXjyoyyqNQU5aQTpagujxSVAfS17Sc3ziJGAofXnX"
        ],
        "license": "MIT"
      },
      "src/interfaces/IPWNLoanMetadataProvider.sol": {
        "keccak256": "0x6cc991fd9c8c88e0a69e835fcd514868836e2432b12454dfcb6a681a3a9d13b8",
        "urls": [
          "bzz-raw://69fd07433fd7eb2f1474d778476240434fa79a31525341d88a588573562389c6",
          "dweb:/ipfs/Qmb6gWNQD96oSgwH5Yf6eMHxYWXZwCPrd7MvK86r7UKhZK"
        ],
        "license": "GPL-3.0-only"
      },
      "src/interfaces/IPoolAdapter.sol": {
        "keccak256": "0xe0309b4e7da2046095c7dc943d953f32d2a46b0ad64beaf3f4ed1b440fe43f89",
        "urls": [
          "bzz-raw://15870bf95e096b35620787a0eba49f7becbaff738651a83bd28310d022cdc93b",
          "dweb:/ipfs/QmZPYmxrjB6SFWr5arTztrDofQ6XdyzXTUMeaQt5wcbv3T"
        ],
        "license": "GPL-3.0-only"
      },
      "src/interfaces/IStateFingerpringComputer.sol": {
        "keccak256": "0xb2f72031bdd6b6ac7179ca9af90c290d37bcc43d6bab4db6e0b1ee7c7b4f72a2",
        "urls": [
          "bzz-raw://d8de3c648f1afab5458e553042a59b0df3d8d54be1a488e891de70821745da0c",
          "dweb:/ipfs/QmQ6QoeMgZGdVjJ2aAt8t1AuBCJ95m6BRSR1GKRqVk4jct"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/lib/PWNFeeCalculator.sol": {
        "keccak256": "0xab8eb0be2d2e5a7c909a326de53459ae2ed6fd7cdd3985719515f279f952fcdf",
        "urls": [
          "bzz-raw://4ca7a9d230ab90b46cdb1a16bd99af5639af7adcf2250a20b7e1f77c952344f5",
          "dweb:/ipfs/QmXzwraVHPmrVFtR4tkm5JqafygeDDvbQbkKu33EYUWLMq"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/lib/PWNSignatureChecker.sol": {
        "keccak256": "0xb76220c904f1b4c9e08166c4175746b161aaf70be14dc22b1a335f351970d1fd",
        "urls": [
          "bzz-raw://846d1cc6b7f1ba8b0bc6b5836aad018828bc1ad8f6f994ec59d24f6617d91fc1",
          "dweb:/ipfs/QmWe7cAsDysa6Qjn9vBAiHW4iaPmZnaeVmqxnwRMikgSCM"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/terms/simple/loan/PWNSimpleLoan.sol": {
        "keccak256": "0x6dd44efd796277aeb5a7712591cfbee10ea3058c0f8f97f9c6111297714d3155",
        "urls": [
          "bzz-raw://0a65b5a30ea71966c8deaa54f621985568fbcbe37bcb6174219410837c9722d9",
          "dweb:/ipfs/QmWzCC35n2a2GsqEkU27i1LKGjqhYTZ1wLfEBnUxsPRrfr"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/terms/simple/proposal/PWNSimpleLoanListProposal.sol": {
        "keccak256": "0xcabb2b3b9f1868f2b0f107f5d9ceda83d04d9d626f17f514f0a854a45699db61",
        "urls": [
          "bzz-raw://1a937b71a107655e0250b7900b06c11b5a6a6d0fbfed9420223f06df660d3141",
          "dweb:/ipfs/QmX26UhXH4FAHCjwcFjqrwNzCr8VmVHkqxEJGHcJSc1tEA"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/terms/simple/proposal/PWNSimpleLoanProposal.sol": {
        "keccak256": "0xa0569c9949bfcd4995d813e1bfe3cb89dcf55293e2fb7728ade49d49be1c6d2d",
        "urls": [
          "bzz-raw://d94dc60f4f6591cac65d95bea69a8b6364589977b085892f334e4224ce3b754d",
          "dweb:/ipfs/QmV3NaHYz3bNbXsKbrHEJxBuLHJyStB6917hJ1D7dtqhs5"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/token/PWNLOAN.sol": {
        "keccak256": "0x92981fb0bd0abcadc45b0f88bfc5fcc960ce7a5b79494fc6c9fd5990b197c764",
        "urls": [
          "bzz-raw://e10726f492991694d751b68bf87a352f1284710ba311614295381a58ebfd226e",
          "dweb:/ipfs/Qmct6PYHSqHo9K9rGAif9ohBpJuQnTBWdHJRdENpetGg7k"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/vault/PWNVault.sol": {
        "keccak256": "0x00f3a6cad5f19a0a818d351a5aa849e41a34bf0251a872d4993d40d77468f29e",
        "urls": [
          "bzz-raw://01942d7d871fe64f229820f5f90be23b647e438d951531a5f60a470f8093977e",
          "dweb:/ipfs/QmcyDXfCdgSQ8P454JxfuTzNBSxfpzeJ9aTPBefTH3dTvK"
        ],
        "license": "GPL-3.0-only"
      },
      "src/loan/vault/Permit.sol": {
        "keccak256": "0xce0acf24731cfaa49535adea5c0c6ebade736d35f3f54a8150ef175a693e3cee",
        "urls": [
          "bzz-raw://3542ad1e3295c63363fe825d3e46ad447fcd614f31f4dadeea39d24086e02c7a",
          "dweb:/ipfs/QmVjAuaQ1UdqgJAmvR8pdXQCb3Zy7fDQeBtbx9ZTbCQic4"
        ],
        "license": "GPL-3.0-only"
      },
      "src/nonce/PWNRevokedNonce.sol": {
        "keccak256": "0xc0c75afa97243c3ef711e04cc9ffd0b3d44fa7999333b0048dc37b562a4cc06e",
        "urls": [
          "bzz-raw://5b2b7271b9505f35a05d2d68803f20116b621dcecfc528806225e0280b0a420e",
          "dweb:/ipfs/QmZh95WUcgTHz7ifsQhmrq1wCjvDXfwwh9G7k49otPisxx"
        ],
        "license": "GPL-3.0-only"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "src/loan/terms/simple/proposal/PWNSimpleLoanListProposal.sol",
    "id": 64575,
    "exportedSymbols": {
      "MerkleProof": [
        53984
      ],
      "MultiToken": [
        1132
      ],
      "PWNSimpleLoan": [
        63281
      ],
      "PWNSimpleLoanListProposal": [
        64574
      ],
      "PWNSimpleLoanProposal": [
        65236
      ]
    },
    "nodeType": "SourceUnit",
    "src": "41:10724:89",
    "nodes": [
      {
        "id": 64214,
        "nodeType": "PragmaDirective",
        "src": "41:23:89",
        "nodes": [],
        "literals": [
          "solidity",
          "0.8",
          ".16"
        ]
      },
      {
        "id": 64216,
        "nodeType": "ImportDirective",
        "src": "66:55:89",
        "nodes": [],
        "absolutePath": "lib/MultiToken/src/MultiToken.sol",
        "file": "MultiToken/MultiToken.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 64575,
        "sourceUnit": 1133,
        "symbolAliases": [
          {
            "foreign": {
              "id": 64215,
              "name": "MultiToken",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 1132,
              "src": "75:10:89",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 64218,
        "nodeType": "ImportDirective",
        "src": "123:78:89",
        "nodes": [],
        "absolutePath": "lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol",
        "file": "openzeppelin/utils/cryptography/MerkleProof.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 64575,
        "sourceUnit": 53985,
        "symbolAliases": [
          {
            "foreign": {
              "id": 64217,
              "name": "MerkleProof",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 53984,
              "src": "132:11:89",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 64220,
        "nodeType": "ImportDirective",
        "src": "203:77:89",
        "nodes": [],
        "absolutePath": "src/loan/terms/simple/loan/PWNSimpleLoan.sol",
        "file": "pwn/loan/terms/simple/loan/PWNSimpleLoan.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 64575,
        "sourceUnit": 63282,
        "symbolAliases": [
          {
            "foreign": {
              "id": 64219,
              "name": "PWNSimpleLoan",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 63281,
              "src": "212:13:89",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 64222,
        "nodeType": "ImportDirective",
        "src": "281:97:89",
        "nodes": [],
        "absolutePath": "src/loan/terms/simple/proposal/PWNSimpleLoanProposal.sol",
        "file": "pwn/loan/terms/simple/proposal/PWNSimpleLoanProposal.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 64575,
        "sourceUnit": 65237,
        "symbolAliases": [
          {
            "foreign": {
              "id": 64221,
              "name": "PWNSimpleLoanProposal",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 65236,
              "src": "290:21:89",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 64574,
        "nodeType": "ContractDefinition",
        "src": "590:10174:89",
        "nodes": [
          {
            "id": 64228,
            "nodeType": "VariableDeclaration",
            "src": "657:38:89",
            "nodes": [],
            "constant": true,
            "functionSelector": "ffa1ad74",
            "mutability": "constant",
            "name": "VERSION",
            "nameLocation": "680:7:89",
            "scope": 64574,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 64226,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "657:6:89",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "312e32",
              "id": 64227,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "690:5:89",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_72fde8556a44472a9465c32773a7311620e335fb2293061673df3c1dc72c1df3",
                "typeString": "literal_string \"1.2\""
              },
              "value": "1.2"
            },
            "visibility": "public"
          },
          {
            "id": 64234,
            "nodeType": "VariableDeclaration",
            "src": "772:589:89",
            "nodes": [],
            "constant": true,
            "documentation": {
              "id": 64229,
              "nodeType": "StructuredDocumentation",
              "src": "702:65:89",
              "text": " @dev EIP-712 simple proposal struct type hash."
            },
            "functionSelector": "853b94a0",
            "mutability": "constant",
            "name": "PROPOSAL_TYPEHASH",
            "nameLocation": "796:17:89",
            "scope": 64574,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 64230,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "772:7:89",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "arguments": [
                {
                  "hexValue": "50726f706f73616c2875696e743820636f6c6c61746572616c43617465676f72792c6164647265737320636f6c6c61746572616c416464726573732c6279746573333220636f6c6c61746572616c49647357686974656c6973744d65726b6c65526f6f742c75696e7432353620636f6c6c61746572616c416d6f756e742c626f6f6c20636865636b436f6c6c61746572616c537461746546696e6765727072696e742c6279746573333220636f6c6c61746572616c537461746546696e6765727072696e742c6164647265737320637265646974416464726573732c75696e7432353620637265646974416d6f756e742c75696e7432353620617661696c61626c654372656469744c696d69742c75696e74323536206669786564496e746572657374416d6f756e742c75696e743430206163637275696e67496e7465726573744150522c75696e743332206475726174696f6e2c75696e7434302065787069726174696f6e2c6164647265737320616c6c6f7765644163636570746f722c616464726573732070726f706f7365722c627974657333322070726f706f73657253706563486173682c626f6f6c2069734f666665722c75696e7432353620726566696e616e63696e674c6f616e49642c75696e74323536206e6f6e636553706163652c75696e74323536206e6f6e63652c61646472657373206c6f616e436f6e747261637429",
                  "id": 64232,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "string",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "835:520:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_stringliteral_afbf4de294949c186bbc5f2122c5a2c96baf0ea86d6d3b740cddf83e4f890351",
                    "typeString": "literal_string \"Proposal(uint8 collateralCategory,address collateralAddress,bytes32 collateralIdsWhitelistMerkleRoot,uint256 collateralAmount,bool checkCollateralStateFingerprint,bytes32 collateralStateFingerprint,address creditAddress,uint256 creditAmount,uint256 availableCreditLimit,uint256 fixedInterestAmount,uint40 accruingInterestAPR,uint32 duration,uint40 expiration,address allowedAcceptor,address proposer,bytes32 proposerSpecHash,bool isOffer,uint256 refinancingLoanId,uint256 nonceSpace,uint256 nonce,address loanContract)\""
                  },
                  "value": "Proposal(uint8 collateralCategory,address collateralAddress,bytes32 collateralIdsWhitelistMerkleRoot,uint256 collateralAmount,bool checkCollateralStateFingerprint,bytes32 collateralStateFingerprint,address creditAddress,uint256 creditAmount,uint256 availableCreditLimit,uint256 fixedInterestAmount,uint40 accruingInterestAPR,uint32 duration,uint40 expiration,address allowedAcceptor,address proposer,bytes32 proposerSpecHash,bool isOffer,uint256 refinancingLoanId,uint256 nonceSpace,uint256 nonce,address loanContract)"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_stringliteral_afbf4de294949c186bbc5f2122c5a2c96baf0ea86d6d3b740cddf83e4f890351",
                    "typeString": "literal_string \"Proposal(uint8 collateralCategory,address collateralAddress,bytes32 collateralIdsWhitelistMerkleRoot,uint256 collateralAmount,bool checkCollateralStateFingerprint,bytes32 collateralStateFingerprint,address creditAddress,uint256 creditAmount,uint256 availableCreditLimit,uint256 fixedInterestAmount,uint40 accruingInterestAPR,uint32 duration,uint40 expiration,address allowedAcceptor,address proposer,bytes32 proposerSpecHash,bool isOffer,uint256 refinancingLoanId,uint256 nonceSpace,uint256 nonce,address loanContract)\""
                  }
                ],
                "id": 64231,
                "name": "keccak256",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": -8,
                "src": "816:9:89",
                "typeDescriptions": {
                  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                  "typeString": "function (bytes memory) pure returns (bytes32)"
                }
              },
              "id": 64233,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "functionCall",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "816:545:89",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "public"
          },
          {
            "id": 64278,
            "nodeType": "StructDefinition",
            "src": "3948:735:89",
            "nodes": [],
            "canonicalName": "PWNSimpleLoanListProposal.Proposal",
            "members": [
              {
                "constant": false,
                "id": 64237,
                "mutability": "mutable",
                "name": "collateralCategory",
                "nameLocation": "3994:18:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "3974:38:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_Category_$50",
                  "typeString": "enum MultiToken.Category"
                },
                "typeName": {
                  "id": 64236,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 64235,
                    "name": "MultiToken.Category",
                    "nameLocations": [
                      "3974:10:89",
                      "3985:8:89"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 50,
                    "src": "3974:19:89"
                  },
                  "referencedDeclaration": 50,
                  "src": "3974:19:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_Category_$50",
                    "typeString": "enum MultiToken.Category"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64239,
                "mutability": "mutable",
                "name": "collateralAddress",
                "nameLocation": "4030:17:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4022:25:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 64238,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4022:7:89",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64241,
                "mutability": "mutable",
                "name": "collateralIdsWhitelistMerkleRoot",
                "nameLocation": "4065:32:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4057:40:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 64240,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4057:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64243,
                "mutability": "mutable",
                "name": "collateralAmount",
                "nameLocation": "4115:16:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4107:24:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 64242,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4107:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64245,
                "mutability": "mutable",
                "name": "checkCollateralStateFingerprint",
                "nameLocation": "4146:31:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4141:36:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 64244,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "4141:4:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64247,
                "mutability": "mutable",
                "name": "collateralStateFingerprint",
                "nameLocation": "4195:26:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4187:34:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 64246,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4187:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64249,
                "mutability": "mutable",
                "name": "creditAddress",
                "nameLocation": "4239:13:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4231:21:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 64248,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4231:7:89",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64251,
                "mutability": "mutable",
                "name": "creditAmount",
                "nameLocation": "4270:12:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4262:20:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 64250,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4262:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64253,
                "mutability": "mutable",
                "name": "availableCreditLimit",
                "nameLocation": "4300:20:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4292:28:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 64252,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4292:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64255,
                "mutability": "mutable",
                "name": "fixedInterestAmount",
                "nameLocation": "4338:19:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4330:27:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 64254,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4330:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64257,
                "mutability": "mutable",
                "name": "accruingInterestAPR",
                "nameLocation": "4374:19:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4367:26:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint40",
                  "typeString": "uint40"
                },
                "typeName": {
                  "id": 64256,
                  "name": "uint40",
                  "nodeType": "ElementaryTypeName",
                  "src": "4367:6:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint40",
                    "typeString": "uint40"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64259,
                "mutability": "mutable",
                "name": "duration",
                "nameLocation": "4410:8:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4403:15:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 64258,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4403:6:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64261,
                "mutability": "mutable",
                "name": "expiration",
                "nameLocation": "4435:10:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4428:17:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint40",
                  "typeString": "uint40"
                },
                "typeName": {
                  "id": 64260,
                  "name": "uint40",
                  "nodeType": "ElementaryTypeName",
                  "src": "4428:6:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint40",
                    "typeString": "uint40"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64263,
                "mutability": "mutable",
                "name": "allowedAcceptor",
                "nameLocation": "4463:15:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4455:23:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 64262,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4455:7:89",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64265,
                "mutability": "mutable",
                "name": "proposer",
                "nameLocation": "4496:8:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4488:16:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 64264,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4488:7:89",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64267,
                "mutability": "mutable",
                "name": "proposerSpecHash",
                "nameLocation": "4522:16:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4514:24:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 64266,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4514:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64269,
                "mutability": "mutable",
                "name": "isOffer",
                "nameLocation": "4553:7:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4548:12:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 64268,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "4548:4:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64271,
                "mutability": "mutable",
                "name": "refinancingLoanId",
                "nameLocation": "4578:17:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4570:25:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 64270,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4570:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64273,
                "mutability": "mutable",
                "name": "nonceSpace",
                "nameLocation": "4613:10:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4605:18:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 64272,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4605:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64275,
                "mutability": "mutable",
                "name": "nonce",
                "nameLocation": "4641:5:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4633:13:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 64274,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4633:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64277,
                "mutability": "mutable",
                "name": "loanContract",
                "nameLocation": "4664:12:89",
                "nodeType": "VariableDeclaration",
                "scope": 64278,
                "src": "4656:20:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 64276,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "4656:7:89",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Proposal",
            "nameLocation": "3955:8:89",
            "scope": 64574,
            "visibility": "public"
          },
          {
            "id": 64284,
            "nodeType": "StructDefinition",
            "src": "5145:99:89",
            "nodes": [],
            "canonicalName": "PWNSimpleLoanListProposal.ProposalValues",
            "members": [
              {
                "constant": false,
                "id": 64280,
                "mutability": "mutable",
                "name": "collateralId",
                "nameLocation": "5185:12:89",
                "nodeType": "VariableDeclaration",
                "scope": 64284,
                "src": "5177:20:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 64279,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "5177:7:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 64283,
                "mutability": "mutable",
                "name": "merkleInclusionProof",
                "nameLocation": "5217:20:89",
                "nodeType": "VariableDeclaration",
                "scope": 64284,
                "src": "5207:30:89",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                  "typeString": "bytes32[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 64281,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5207:7:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 64282,
                  "nodeType": "ArrayTypeName",
                  "src": "5207:9:89",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "ProposalValues",
            "nameLocation": "5152:14:89",
            "scope": 64574,
            "visibility": "public"
          },
          {
            "id": 64294,
            "nodeType": "EventDefinition",
            "src": "5342:94:89",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 64285,
              "nodeType": "StructuredDocumentation",
              "src": "5250:87:89",
              "text": " @notice Emitted when a proposal is made via an on-chain transaction."
            },
            "eventSelector": "5ea9a493aa7cc9a038b59151e7f783c297cb1b764579b58cfd90f530049a8c09",
            "name": "ProposalMade",
            "nameLocation": "5348:12:89",
            "parameters": {
              "id": 64293,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64287,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "proposalHash",
                  "nameLocation": "5377:12:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64294,
                  "src": "5361:28:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 64286,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5361:7:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64289,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "proposer",
                  "nameLocation": "5407:8:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64294,
                  "src": "5391:24:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 64288,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5391:7:89",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64292,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "proposal",
                  "nameLocation": "5426:8:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64294,
                  "src": "5417:17:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                    "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                  },
                  "typeName": {
                    "id": 64291,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 64290,
                      "name": "Proposal",
                      "nameLocations": [
                        "5417:8:89"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 64278,
                      "src": "5417:8:89"
                    },
                    "referencedDeclaration": 64278,
                    "src": "5417:8:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$64278_storage_ptr",
                      "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5360:75:89"
            }
          },
          {
            "id": 64299,
            "nodeType": "ErrorDefinition",
            "src": "5521:45:89",
            "nodes": [],
            "documentation": {
              "id": 64295,
              "nodeType": "StructuredDocumentation",
              "src": "5442:74:89",
              "text": " @notice Thrown when a collateral id is not whitelisted."
            },
            "errorSelector": "54eb3324",
            "name": "CollateralIdNotWhitelisted",
            "nameLocation": "5527:26:89",
            "parameters": {
              "id": 64298,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64297,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "5562:2:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64299,
                  "src": "5554:10:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 64296,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5554:7:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5553:12:89"
            }
          },
          {
            "id": 64316,
            "nodeType": "FunctionDefinition",
            "src": "5572:188:89",
            "nodes": [],
            "body": {
              "id": 64315,
              "nodeType": "Block",
              "src": "5758:2:89",
              "nodes": [],
              "statements": []
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 64308,
                    "name": "_hub",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 64301,
                    "src": "5690:4:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 64309,
                    "name": "_revokedNonce",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 64303,
                    "src": "5696:13:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "id": 64310,
                    "name": "_config",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 64305,
                    "src": "5711:7:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  {
                    "hexValue": "50574e53696d706c654c6f616e4c69737450726f706f73616c",
                    "id": 64311,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "5720:27:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_d7df4e2ebe96ff8df227f8e42996fe3eb8beb1bdb3863e4186d775441dfde8fd",
                      "typeString": "literal_string \"PWNSimpleLoanListProposal\""
                    },
                    "value": "PWNSimpleLoanListProposal"
                  },
                  {
                    "id": 64312,
                    "name": "VERSION",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 64228,
                    "src": "5749:7:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  }
                ],
                "id": 64313,
                "kind": "baseConstructorSpecifier",
                "modifierName": {
                  "id": 64307,
                  "name": "PWNSimpleLoanProposal",
                  "nameLocations": [
                    "5668:21:89"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 65236,
                  "src": "5668:21:89"
                },
                "nodeType": "ModifierInvocation",
                "src": "5668:89:89"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "parameters": {
              "id": 64306,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64301,
                  "mutability": "mutable",
                  "name": "_hub",
                  "nameLocation": "5601:4:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64316,
                  "src": "5593:12:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 64300,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5593:7:89",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64303,
                  "mutability": "mutable",
                  "name": "_revokedNonce",
                  "nameLocation": "5623:13:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64316,
                  "src": "5615:21:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 64302,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5615:7:89",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64305,
                  "mutability": "mutable",
                  "name": "_config",
                  "nameLocation": "5654:7:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64316,
                  "src": "5646:15:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 64304,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5646:7:89",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5583:84:89"
            },
            "returnParameters": {
              "id": 64314,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5758:0:89"
            },
            "scope": 64574,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 64334,
            "nodeType": "FunctionDefinition",
            "src": "5929:164:89",
            "nodes": [],
            "body": {
              "id": 64333,
              "nodeType": "Block",
              "src": "6012:81:89",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 64326,
                        "name": "PROPOSAL_TYPEHASH",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64234,
                        "src": "6046:17:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 64329,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 64320,
                            "src": "6076:8:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$64278_calldata_ptr",
                              "typeString": "struct PWNSimpleLoanListProposal.Proposal calldata"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Proposal_$64278_calldata_ptr",
                              "typeString": "struct PWNSimpleLoanListProposal.Proposal calldata"
                            }
                          ],
                          "expression": {
                            "id": 64327,
                            "name": "abi",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -1,
                            "src": "6065:3:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_abi",
                              "typeString": "abi"
                            }
                          },
                          "id": 64328,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberLocation": "6069:6:89",
                          "memberName": "encode",
                          "nodeType": "MemberAccess",
                          "src": "6065:10:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                            "typeString": "function () pure returns (bytes memory)"
                          }
                        },
                        "id": 64330,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6065:20:89",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "id": 64325,
                      "name": "_getProposalHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64872,
                      "src": "6029:16:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (bytes32,bytes memory) view returns (bytes32)"
                      }
                    },
                    "id": 64331,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6029:57:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 64324,
                  "id": 64332,
                  "nodeType": "Return",
                  "src": "6022:64:89"
                }
              ]
            },
            "documentation": {
              "id": 64317,
              "nodeType": "StructuredDocumentation",
              "src": "5766:158:89",
              "text": " @notice Get an proposal hash according to EIP-712\n @param proposal Proposal struct to be hashed.\n @return Proposal struct hash."
            },
            "functionSelector": "1a787a48",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getProposalHash",
            "nameLocation": "5938:15:89",
            "parameters": {
              "id": 64321,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64320,
                  "mutability": "mutable",
                  "name": "proposal",
                  "nameLocation": "5972:8:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64334,
                  "src": "5954:26:89",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$64278_calldata_ptr",
                    "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                  },
                  "typeName": {
                    "id": 64319,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 64318,
                      "name": "Proposal",
                      "nameLocations": [
                        "5954:8:89"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 64278,
                      "src": "5954:8:89"
                    },
                    "referencedDeclaration": 64278,
                    "src": "5954:8:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$64278_storage_ptr",
                      "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5953:28:89"
            },
            "returnParameters": {
              "id": 64324,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64323,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 64334,
                  "src": "6003:7:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 64322,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6003:7:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6002:9:89"
            },
            "scope": 64574,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 64363,
            "nodeType": "FunctionDefinition",
            "src": "6336:273:89",
            "nodes": [],
            "body": {
              "id": 64362,
              "nodeType": "Block",
              "src": "6426:183:89",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 64347,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 64343,
                      "name": "proposalHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64341,
                      "src": "6436:12:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 64345,
                          "name": "proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 64338,
                          "src": "6467:8:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$64278_calldata_ptr",
                            "typeString": "struct PWNSimpleLoanListProposal.Proposal calldata"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Proposal_$64278_calldata_ptr",
                            "typeString": "struct PWNSimpleLoanListProposal.Proposal calldata"
                          }
                        ],
                        "id": 64344,
                        "name": "getProposalHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64334,
                        "src": "6451:15:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Proposal_$64278_calldata_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct PWNSimpleLoanListProposal.Proposal calldata) view returns (bytes32)"
                        }
                      },
                      "id": 64346,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6451:25:89",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "6436:40:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 64348,
                  "nodeType": "ExpressionStatement",
                  "src": "6436:40:89"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 64350,
                        "name": "proposalHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64341,
                        "src": "6500:12:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 64351,
                          "name": "proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 64338,
                          "src": "6514:8:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$64278_calldata_ptr",
                            "typeString": "struct PWNSimpleLoanListProposal.Proposal calldata"
                          }
                        },
                        "id": 64352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6523:8:89",
                        "memberName": "proposer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 64265,
                        "src": "6514:17:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 64349,
                      "name": "_makeProposal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64897,
                      "src": "6486:13:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 64353,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6486:46:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 64354,
                  "nodeType": "ExpressionStatement",
                  "src": "6486:46:89"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 64356,
                        "name": "proposalHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64341,
                        "src": "6560:12:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 64357,
                          "name": "proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 64338,
                          "src": "6574:8:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$64278_calldata_ptr",
                            "typeString": "struct PWNSimpleLoanListProposal.Proposal calldata"
                          }
                        },
                        "id": 64358,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6583:8:89",
                        "memberName": "proposer",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 64265,
                        "src": "6574:17:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 64359,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64338,
                        "src": "6593:8:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$64278_calldata_ptr",
                          "typeString": "struct PWNSimpleLoanListProposal.Proposal calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_struct$_Proposal_$64278_calldata_ptr",
                          "typeString": "struct PWNSimpleLoanListProposal.Proposal calldata"
                        }
                      ],
                      "id": 64355,
                      "name": "ProposalMade",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64294,
                      "src": "6547:12:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_struct$_Proposal_$64278_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,address,struct PWNSimpleLoanListProposal.Proposal memory)"
                      }
                    },
                    "id": 64360,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6547:55:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 64361,
                  "nodeType": "EmitStatement",
                  "src": "6542:60:89"
                }
              ]
            },
            "documentation": {
              "id": 64335,
              "nodeType": "StructuredDocumentation",
              "src": "6099:232:89",
              "text": " @notice Make an on-chain proposal.\n @dev Function will mark a proposal hash as proposed.\n @param proposal Proposal struct containing all needed proposal data.\n @return proposalHash Proposal hash."
            },
            "functionSelector": "18e639b9",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "makeProposal",
            "nameLocation": "6345:12:89",
            "parameters": {
              "id": 64339,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64338,
                  "mutability": "mutable",
                  "name": "proposal",
                  "nameLocation": "6376:8:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64363,
                  "src": "6358:26:89",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$64278_calldata_ptr",
                    "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                  },
                  "typeName": {
                    "id": 64337,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 64336,
                      "name": "Proposal",
                      "nameLocations": [
                        "6358:8:89"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 64278,
                      "src": "6358:8:89"
                    },
                    "referencedDeclaration": 64278,
                    "src": "6358:8:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$64278_storage_ptr",
                      "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6357:28:89"
            },
            "returnParameters": {
              "id": 64342,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64341,
                  "mutability": "mutable",
                  "name": "proposalHash",
                  "nameLocation": "6412:12:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64363,
                  "src": "6404:20:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 64340,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6404:7:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6403:22:89"
            },
            "scope": 64574,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 64382,
            "nodeType": "FunctionDefinition",
            "src": "6826:211:89",
            "nodes": [],
            "body": {
              "id": 64381,
              "nodeType": "Block",
              "src": "6977:60:89",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 64377,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64367,
                        "src": "7005:8:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                          "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                        }
                      },
                      {
                        "id": 64378,
                        "name": "proposalValues",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64370,
                        "src": "7015:14:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalValues_$64284_memory_ptr",
                          "typeString": "struct PWNSimpleLoanListProposal.ProposalValues memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                          "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_ProposalValues_$64284_memory_ptr",
                          "typeString": "struct PWNSimpleLoanListProposal.ProposalValues memory"
                        }
                      ],
                      "expression": {
                        "id": 64375,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -1,
                        "src": "6994:3:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 64376,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "6998:6:89",
                      "memberName": "encode",
                      "nodeType": "MemberAccess",
                      "src": "6994:10:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function () pure returns (bytes memory)"
                      }
                    },
                    "id": 64379,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6994:36:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "functionReturnParameters": 64374,
                  "id": 64380,
                  "nodeType": "Return",
                  "src": "6987:43:89"
                }
              ]
            },
            "documentation": {
              "id": 64364,
              "nodeType": "StructuredDocumentation",
              "src": "6615:206:89",
              "text": " @notice Encode proposal data.\n @param proposal Proposal struct to be encoded.\n @param proposalValues ProposalValues struct to be encoded.\n @return Encoded proposal data."
            },
            "functionSelector": "f1647874",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "encodeProposalData",
            "nameLocation": "6835:18:89",
            "parameters": {
              "id": 64371,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64367,
                  "mutability": "mutable",
                  "name": "proposal",
                  "nameLocation": "6879:8:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64382,
                  "src": "6863:24:89",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                    "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                  },
                  "typeName": {
                    "id": 64366,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 64365,
                      "name": "Proposal",
                      "nameLocations": [
                        "6863:8:89"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 64278,
                      "src": "6863:8:89"
                    },
                    "referencedDeclaration": 64278,
                    "src": "6863:8:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$64278_storage_ptr",
                      "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64370,
                  "mutability": "mutable",
                  "name": "proposalValues",
                  "nameLocation": "6919:14:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64382,
                  "src": "6897:36:89",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ProposalValues_$64284_memory_ptr",
                    "typeString": "struct PWNSimpleLoanListProposal.ProposalValues"
                  },
                  "typeName": {
                    "id": 64369,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 64368,
                      "name": "ProposalValues",
                      "nameLocations": [
                        "6897:14:89"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 64284,
                      "src": "6897:14:89"
                    },
                    "referencedDeclaration": 64284,
                    "src": "6897:14:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ProposalValues_$64284_storage_ptr",
                      "typeString": "struct PWNSimpleLoanListProposal.ProposalValues"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6853:86:89"
            },
            "returnParameters": {
              "id": 64374,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64373,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 64382,
                  "src": "6963:12:89",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 64372,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6963:5:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6962:14:89"
            },
            "scope": 64574,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 64403,
            "nodeType": "FunctionDefinition",
            "src": "7233:192:89",
            "nodes": [],
            "body": {
              "id": 64402,
              "nodeType": "Block",
              "src": "7349:76:89",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 64396,
                        "name": "proposalData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64385,
                        "src": "7377:12:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      {
                        "components": [
                          {
                            "id": 64397,
                            "name": "Proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 64278,
                            "src": "7392:8:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Proposal_$64278_storage_ptr_$",
                              "typeString": "type(struct PWNSimpleLoanListProposal.Proposal storage pointer)"
                            }
                          },
                          {
                            "id": 64398,
                            "name": "ProposalValues",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 64284,
                            "src": "7402:14:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_ProposalValues_$64284_storage_ptr_$",
                              "typeString": "type(struct PWNSimpleLoanListProposal.ProposalValues storage pointer)"
                            }
                          }
                        ],
                        "id": 64399,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "7391:26:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$_t_type$_t_struct$_Proposal_$64278_storage_ptr_$_$_t_type$_t_struct$_ProposalValues_$64284_storage_ptr_$_$",
                          "typeString": "tuple(type(struct PWNSimpleLoanListProposal.Proposal storage pointer),type(struct PWNSimpleLoanListProposal.ProposalValues storage pointer))"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        },
                        {
                          "typeIdentifier": "t_tuple$_t_type$_t_struct$_Proposal_$64278_storage_ptr_$_$_t_type$_t_struct$_ProposalValues_$64284_storage_ptr_$_$",
                          "typeString": "tuple(type(struct PWNSimpleLoanListProposal.Proposal storage pointer),type(struct PWNSimpleLoanListProposal.ProposalValues storage pointer))"
                        }
                      ],
                      "expression": {
                        "id": 64394,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -1,
                        "src": "7366:3:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 64395,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberLocation": "7370:6:89",
                      "memberName": "decode",
                      "nodeType": "MemberAccess",
                      "src": "7366:10:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                        "typeString": "function () pure"
                      }
                    },
                    "id": 64400,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7366:52:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_struct$_Proposal_$64278_memory_ptr_$_t_struct$_ProposalValues_$64284_memory_ptr_$",
                      "typeString": "tuple(struct PWNSimpleLoanListProposal.Proposal memory,struct PWNSimpleLoanListProposal.ProposalValues memory)"
                    }
                  },
                  "functionReturnParameters": 64393,
                  "id": 64401,
                  "nodeType": "Return",
                  "src": "7359:59:89"
                }
              ]
            },
            "documentation": {
              "id": 64383,
              "nodeType": "StructuredDocumentation",
              "src": "7043:185:89",
              "text": " @notice Decode proposal data.\n @param proposalData Encoded proposal data.\n @return Decoded proposal struct.\n @return Decoded proposal values struct."
            },
            "functionSelector": "2d5d17fc",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decodeProposalData",
            "nameLocation": "7242:18:89",
            "parameters": {
              "id": 64386,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64385,
                  "mutability": "mutable",
                  "name": "proposalData",
                  "nameLocation": "7274:12:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64403,
                  "src": "7261:25:89",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 64384,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7261:5:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7260:27:89"
            },
            "returnParameters": {
              "id": 64393,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64389,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 64403,
                  "src": "7309:15:89",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                    "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                  },
                  "typeName": {
                    "id": 64388,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 64387,
                      "name": "Proposal",
                      "nameLocations": [
                        "7309:8:89"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 64278,
                      "src": "7309:8:89"
                    },
                    "referencedDeclaration": 64278,
                    "src": "7309:8:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$64278_storage_ptr",
                      "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64392,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 64403,
                  "src": "7326:21:89",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ProposalValues_$64284_memory_ptr",
                    "typeString": "struct PWNSimpleLoanListProposal.ProposalValues"
                  },
                  "typeName": {
                    "id": 64391,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 64390,
                      "name": "ProposalValues",
                      "nameLocations": [
                        "7326:14:89"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 64284,
                      "src": "7326:14:89"
                    },
                    "referencedDeclaration": 64284,
                    "src": "7326:14:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ProposalValues_$64284_storage_ptr",
                      "typeString": "struct PWNSimpleLoanListProposal.ProposalValues"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7308:40:89"
            },
            "scope": 64574,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 64573,
            "nodeType": "FunctionDefinition",
            "src": "7488:3273:89",
            "nodes": [],
            "body": {
              "id": 64572,
              "nodeType": "Block",
              "src": "7788:2973:89",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    64426,
                    64429
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 64426,
                      "mutability": "mutable",
                      "name": "proposal",
                      "nameLocation": "7847:8:89",
                      "nodeType": "VariableDeclaration",
                      "scope": 64572,
                      "src": "7831:24:89",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                        "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                      },
                      "typeName": {
                        "id": 64425,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 64424,
                          "name": "Proposal",
                          "nameLocations": [
                            "7831:8:89"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 64278,
                          "src": "7831:8:89"
                        },
                        "referencedDeclaration": 64278,
                        "src": "7831:8:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$64278_storage_ptr",
                          "typeString": "struct PWNSimpleLoanListProposal.Proposal"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 64429,
                      "mutability": "mutable",
                      "name": "proposalValues",
                      "nameLocation": "7879:14:89",
                      "nodeType": "VariableDeclaration",
                      "scope": 64572,
                      "src": "7857:36:89",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_ProposalValues_$64284_memory_ptr",
                        "typeString": "struct PWNSimpleLoanListProposal.ProposalValues"
                      },
                      "typeName": {
                        "id": 64428,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 64427,
                          "name": "ProposalValues",
                          "nameLocations": [
                            "7857:14:89"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 64284,
                          "src": "7857:14:89"
                        },
                        "referencedDeclaration": 64284,
                        "src": "7857:14:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalValues_$64284_storage_ptr",
                          "typeString": "struct PWNSimpleLoanListProposal.ProposalValues"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 64433,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 64431,
                        "name": "proposalData",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64410,
                        "src": "7916:12:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "id": 64430,
                      "name": "decodeProposalData",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64403,
                      "src": "7897:18:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_struct$_Proposal_$64278_memory_ptr_$_t_struct$_ProposalValues_$64284_memory_ptr_$",
                        "typeString": "function (bytes memory) pure returns (struct PWNSimpleLoanListProposal.Proposal memory,struct PWNSimpleLoanListProposal.ProposalValues memory)"
                      }
                    },
                    "id": 64432,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7897:32:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_struct$_Proposal_$64278_memory_ptr_$_t_struct$_ProposalValues_$64284_memory_ptr_$",
                      "typeString": "tuple(struct PWNSimpleLoanListProposal.Proposal memory,struct PWNSimpleLoanListProposal.ProposalValues memory)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7830:99:89"
                },
                {
                  "expression": {
                    "id": 64442,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 64434,
                      "name": "proposalHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64419,
                      "src": "7970:12:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 64436,
                          "name": "PROPOSAL_TYPEHASH",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 64234,
                          "src": "8002:17:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "id": 64439,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "8032:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            ],
                            "expression": {
                              "id": 64437,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -1,
                              "src": "8021:3:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 64438,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberLocation": "8025:6:89",
                            "memberName": "encode",
                            "nodeType": "MemberAccess",
                            "src": "8021:10:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function () pure returns (bytes memory)"
                            }
                          },
                          "id": 64440,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8021:20:89",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        ],
                        "id": 64435,
                        "name": "_getProposalHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64872,
                        "src": "7985:16:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32,bytes memory) view returns (bytes32)"
                        }
                      },
                      "id": 64441,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7985:57:89",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7970:72:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 64443,
                  "nodeType": "ExpressionStatement",
                  "src": "7970:72:89"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 64450,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 64444,
                        "name": "proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64426,
                        "src": "8097:8:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                          "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                        }
                      },
                      "id": 64445,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8106:32:89",
                      "memberName": "collateralIdsWhitelistMerkleRoot",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 64241,
                      "src": "8097:41:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 64448,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8150:1:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 64447,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "8142:7:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_bytes32_$",
                          "typeString": "type(bytes32)"
                        },
                        "typeName": {
                          "id": 64446,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "8142:7:89",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 64449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8142:10:89",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "8097:55:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 64473,
                  "nodeType": "IfStatement",
                  "src": "8093:496:89",
                  "trueBody": {
                    "id": 64472,
                    "nodeType": "Block",
                    "src": "8154:435:89",
                    "statements": [
                      {
                        "condition": {
                          "id": 64465,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "8237:256:89",
                          "subExpression": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 64453,
                                  "name": "proposalValues",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 64429,
                                  "src": "8286:14:89",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ProposalValues_$64284_memory_ptr",
                                    "typeString": "struct PWNSimpleLoanListProposal.ProposalValues memory"
                                  }
                                },
                                "id": 64454,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "8301:20:89",
                                "memberName": "merkleInclusionProof",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 64283,
                                "src": "8286:35:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                }
                              },
                              {
                                "expression": {
                                  "id": 64455,
                                  "name": "proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 64426,
                                  "src": "8349:8:89",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                    "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                                  }
                                },
                                "id": 64456,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "8358:32:89",
                                "memberName": "collateralIdsWhitelistMerkleRoot",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 64241,
                                "src": "8349:41:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "expression": {
                                          "id": 64460,
                                          "name": "proposalValues",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 64429,
                                          "src": "8445:14:89",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_ProposalValues_$64284_memory_ptr",
                                            "typeString": "struct PWNSimpleLoanListProposal.ProposalValues memory"
                                          }
                                        },
                                        "id": 64461,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "8460:12:89",
                                        "memberName": "collateralId",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 64280,
                                        "src": "8445:27:89",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "expression": {
                                        "id": 64458,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -1,
                                        "src": "8428:3:89",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 64459,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberLocation": "8432:12:89",
                                      "memberName": "encodePacked",
                                      "nodeType": "MemberAccess",
                                      "src": "8428:16:89",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 64462,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "8428:45:89",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 64457,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -8,
                                  "src": "8418:9:89",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 64463,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8418:56:89",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                  "typeString": "bytes32[] memory"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "id": 64451,
                                "name": "MerkleProof",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 53984,
                                "src": "8238:11:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_MerkleProof_$53984_$",
                                  "typeString": "type(library MerkleProof)"
                                }
                              },
                              "id": 64452,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8250:6:89",
                              "memberName": "verify",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 53480,
                              "src": "8238:18:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                                "typeString": "function (bytes32[] memory,bytes32,bytes32) pure returns (bool)"
                              }
                            },
                            "id": 64464,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [
                              "8279:5:89",
                              "8343:4:89",
                              "8412:4:89"
                            ],
                            "names": [
                              "proof",
                              "root",
                              "leaf"
                            ],
                            "nodeType": "FunctionCall",
                            "src": "8238:255:89",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 64471,
                        "nodeType": "IfStatement",
                        "src": "8216:362:89",
                        "trueBody": {
                          "errorCall": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 64467,
                                  "name": "proposalValues",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 64429,
                                  "src": "8548:14:89",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ProposalValues_$64284_memory_ptr",
                                    "typeString": "struct PWNSimpleLoanListProposal.ProposalValues memory"
                                  }
                                },
                                "id": 64468,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "8563:12:89",
                                "memberName": "collateralId",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 64280,
                                "src": "8548:27:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 64466,
                              "name": "CollateralIdNotWhitelisted",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64299,
                              "src": "8515:26:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$",
                                "typeString": "function (uint256) pure"
                              }
                            },
                            "id": 64469,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [
                              "8544:2:89"
                            ],
                            "names": [
                              "id"
                            ],
                            "nodeType": "FunctionCall",
                            "src": "8515:63:89",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 64470,
                          "nodeType": "RevertStatement",
                          "src": "8508:70:89"
                        }
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 64475,
                        "name": "acceptor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64406,
                        "src": "8763:8:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 64476,
                        "name": "refinancingLoanId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64408,
                        "src": "8785:17:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 64477,
                        "name": "proposalHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64419,
                        "src": "8816:12:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 64478,
                        "name": "proposalInclusionProof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64413,
                        "src": "8842:22:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      },
                      {
                        "id": 64479,
                        "name": "signature",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 64415,
                        "src": "8878:9:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 64481,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "8951:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64482,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8960:17:89",
                            "memberName": "collateralAddress",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64239,
                            "src": "8951:26:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "id": 64483,
                              "name": "proposalValues",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64429,
                              "src": "9009:14:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ProposalValues_$64284_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.ProposalValues memory"
                              }
                            },
                            "id": 64484,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9024:12:89",
                            "memberName": "collateralId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64280,
                            "src": "9009:27:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 64485,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9087:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64486,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9096:31:89",
                            "memberName": "checkCollateralStateFingerprint",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64245,
                            "src": "9087:40:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "expression": {
                              "id": 64487,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9173:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64488,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9182:26:89",
                            "memberName": "collateralStateFingerprint",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64247,
                            "src": "9173:35:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "expression": {
                              "id": 64489,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9240:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64490,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9249:12:89",
                            "memberName": "creditAmount",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64251,
                            "src": "9240:21:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 64491,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9301:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64492,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9310:20:89",
                            "memberName": "availableCreditLimit",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64253,
                            "src": "9301:29:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 64493,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9360:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64494,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9369:10:89",
                            "memberName": "expiration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64261,
                            "src": "9360:19:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint40",
                              "typeString": "uint40"
                            }
                          },
                          {
                            "expression": {
                              "id": 64495,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9414:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64496,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9423:15:89",
                            "memberName": "allowedAcceptor",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64263,
                            "src": "9414:24:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "id": 64497,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9466:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64498,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9475:8:89",
                            "memberName": "proposer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64265,
                            "src": "9466:17:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          {
                            "expression": {
                              "id": 64499,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9510:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64500,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9519:7:89",
                            "memberName": "isOffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64269,
                            "src": "9510:16:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "expression": {
                              "id": 64501,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9563:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64502,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9572:17:89",
                            "memberName": "refinancingLoanId",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64271,
                            "src": "9563:26:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 64503,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9619:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64504,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9628:10:89",
                            "memberName": "nonceSpace",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64273,
                            "src": "9619:19:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 64505,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9663:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64506,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9672:5:89",
                            "memberName": "nonce",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64275,
                            "src": "9663:14:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          {
                            "expression": {
                              "id": 64507,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9709:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64508,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9718:12:89",
                            "memberName": "loanContract",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64277,
                            "src": "9709:21:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint40",
                              "typeString": "uint40"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 64480,
                          "name": "ProposalBase",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 64649,
                          "src": "8901:12:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_ProposalBase_$64649_storage_ptr_$",
                            "typeString": "type(struct PWNSimpleLoanProposal.ProposalBase storage pointer)"
                          }
                        },
                        "id": 64509,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [
                          "8932:17:89",
                          "8995:12:89",
                          "9054:31:89",
                          "9145:26:89",
                          "9226:12:89",
                          "9279:20:89",
                          "9348:10:89",
                          "9397:15:89",
                          "9456:8:89",
                          "9501:7:89",
                          "9544:17:89",
                          "9607:10:89",
                          "9656:5:89",
                          "9695:12:89"
                        ],
                        "names": [
                          "collateralAddress",
                          "collateralId",
                          "checkCollateralStateFingerprint",
                          "collateralStateFingerprint",
                          "creditAmount",
                          "availableCreditLimit",
                          "expiration",
                          "allowedAcceptor",
                          "proposer",
                          "isOffer",
                          "refinancingLoanId",
                          "nonceSpace",
                          "nonce",
                          "loanContract"
                        ],
                        "nodeType": "FunctionCall",
                        "src": "8901:844:89",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalBase_$64649_memory_ptr",
                          "typeString": "struct PWNSimpleLoanProposal.ProposalBase memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        },
                        {
                          "typeIdentifier": "t_struct$_ProposalBase_$64649_memory_ptr",
                          "typeString": "struct PWNSimpleLoanProposal.ProposalBase memory"
                        }
                      ],
                      "id": 64474,
                      "name": "_acceptProposal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 65235,
                      "src": "8734:15:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$_t_struct$_ProposalBase_$64649_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,bytes32,bytes32[] calldata,bytes calldata,struct PWNSimpleLoanProposal.ProposalBase memory)"
                      }
                    },
                    "id": 64510,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8734:1021:89",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 64511,
                  "nodeType": "ExpressionStatement",
                  "src": "8734:1021:89"
                },
                {
                  "expression": {
                    "id": 64570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 64512,
                      "name": "loanTerms",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 64422,
                      "src": "9802:9:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Terms_$61054_memory_ptr",
                        "typeString": "struct PWNSimpleLoan.Terms memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "condition": {
                            "expression": {
                              "id": 64515,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9856:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64516,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9865:7:89",
                            "memberName": "isOffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64269,
                            "src": "9856:16:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "id": 64519,
                            "name": "acceptor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 64406,
                            "src": "9895:8:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 64520,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "9856:47:89",
                          "trueExpression": {
                            "expression": {
                              "id": 64517,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9875:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64518,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9884:8:89",
                            "memberName": "proposer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64265,
                            "src": "9875:17:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "condition": {
                            "expression": {
                              "id": 64521,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9927:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64522,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9936:7:89",
                            "memberName": "isOffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64269,
                            "src": "9927:16:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "expression": {
                              "id": 64524,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "9957:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64525,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9966:8:89",
                            "memberName": "proposer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64265,
                            "src": "9957:17:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 64526,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "9927:47:89",
                          "trueExpression": {
                            "id": 64523,
                            "name": "acceptor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 64406,
                            "src": "9946:8:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "expression": {
                            "id": 64527,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 64426,
                            "src": "9998:8:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                              "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                            }
                          },
                          "id": 64528,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10007:8:89",
                          "memberName": "duration",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 64259,
                          "src": "9998:17:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "expression": {
                                "id": 64531,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 64426,
                                "src": "10086:8:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                                }
                              },
                              "id": 64532,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10095:18:89",
                              "memberName": "collateralCategory",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64237,
                              "src": "10086:27:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_Category_$50",
                                "typeString": "enum MultiToken.Category"
                              }
                            },
                            {
                              "expression": {
                                "id": 64533,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 64426,
                                "src": "10145:8:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                                }
                              },
                              "id": 64534,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10154:17:89",
                              "memberName": "collateralAddress",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64239,
                              "src": "10145:26:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 64535,
                                "name": "proposalValues",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 64429,
                                "src": "10193:14:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ProposalValues_$64284_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanListProposal.ProposalValues memory"
                                }
                              },
                              "id": 64536,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10208:12:89",
                              "memberName": "collateralId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64280,
                              "src": "10193:27:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 64537,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 64426,
                                "src": "10246:8:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                                }
                              },
                              "id": 64538,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10255:16:89",
                              "memberName": "collateralAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64243,
                              "src": "10246:25:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_enum$_Category_$50",
                                "typeString": "enum MultiToken.Category"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 64529,
                              "name": "MultiToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1132,
                              "src": "10041:10:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_MultiToken_$1132_$",
                                "typeString": "type(library MultiToken)"
                              }
                            },
                            "id": 64530,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10052:5:89",
                            "memberName": "Asset",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 60,
                            "src": "10041:16:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Asset_$60_storage_ptr_$",
                              "typeString": "type(struct MultiToken.Asset storage pointer)"
                            }
                          },
                          "id": 64539,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "10076:8:89",
                            "10131:12:89",
                            "10189:2:89",
                            "10238:6:89"
                          ],
                          "names": [
                            "category",
                            "assetAddress",
                            "id",
                            "amount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "10041:245:89",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$60_memory_ptr",
                            "typeString": "struct MultiToken.Asset memory"
                          }
                        },
                        {
                          "arguments": [
                            {
                              "expression": {
                                "id": 64542,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 64426,
                                "src": "10357:8:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                                }
                              },
                              "id": 64543,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10366:13:89",
                              "memberName": "creditAddress",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64249,
                              "src": "10357:22:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 64544,
                                "name": "proposal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 64426,
                                "src": "10405:8:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                  "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                                }
                              },
                              "id": 64545,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10414:12:89",
                              "memberName": "creditAmount",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64251,
                              "src": "10405:21:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 64540,
                              "name": "MultiToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1132,
                              "src": "10308:10:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_MultiToken_$1132_$",
                                "typeString": "type(library MultiToken)"
                              }
                            },
                            "id": 64541,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10319:5:89",
                            "memberName": "ERC20",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 85,
                            "src": "10308:16:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_address_$_t_uint256_$returns$_t_struct$_Asset_$60_memory_ptr_$",
                              "typeString": "function (address,uint256) pure returns (struct MultiToken.Asset memory)"
                            }
                          },
                          "id": 64546,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [
                            "10343:12:89",
                            "10397:6:89"
                          ],
                          "names": [
                            "assetAddress",
                            "amount"
                          ],
                          "nodeType": "FunctionCall",
                          "src": "10308:133:89",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Asset_$60_memory_ptr",
                            "typeString": "struct MultiToken.Asset memory"
                          }
                        },
                        {
                          "expression": {
                            "id": 64547,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 64426,
                            "src": "10476:8:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                              "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                            }
                          },
                          "id": 64548,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10485:19:89",
                          "memberName": "fixedInterestAmount",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 64255,
                          "src": "10476:28:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "expression": {
                            "id": 64549,
                            "name": "proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 64426,
                            "src": "10539:8:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                              "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                            }
                          },
                          "id": 64550,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "10548:19:89",
                          "memberName": "accruingInterestAPR",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 64257,
                          "src": "10539:28:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          }
                        },
                        {
                          "condition": {
                            "expression": {
                              "id": 64551,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "10597:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64552,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10606:7:89",
                            "memberName": "isOffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64269,
                            "src": "10597:16:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 64557,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10652:1:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 64556,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "10644:7:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 64555,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "10644:7:89",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 64558,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10644:10:89",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "id": 64559,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "10597:57:89",
                          "trueExpression": {
                            "expression": {
                              "id": 64553,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "10616:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64554,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10625:16:89",
                            "memberName": "proposerSpecHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64267,
                            "src": "10616:25:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "condition": {
                            "expression": {
                              "id": 64560,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "10686:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64561,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10695:7:89",
                            "memberName": "isOffer",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64269,
                            "src": "10686:16:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseExpression": {
                            "expression": {
                              "id": 64566,
                              "name": "proposal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 64426,
                              "src": "10718:8:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$64278_memory_ptr",
                                "typeString": "struct PWNSimpleLoanListProposal.Proposal memory"
                              }
                            },
                            "id": 64567,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10727:16:89",
                            "memberName": "proposerSpecHash",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64267,
                            "src": "10718:25:89",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "id": 64568,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "Conditional",
                          "src": "10686:57:89",
                          "trueExpression": {
                            "arguments": [
                              {
                                "hexValue": "30",
                                "id": 64564,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "10713:1:89",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 64563,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "10705:7:89",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes32_$",
                                "typeString": "type(bytes32)"
                              },
                              "typeName": {
                                "id": 64562,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "10705:7:89",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 64565,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10705:10:89",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          {
                            "typeIdentifier": "t_struct$_Asset_$60_memory_ptr",
                            "typeString": "struct MultiToken.Asset memory"
                          },
                          {
                            "typeIdentifier": "t_struct$_Asset_$60_memory_ptr",
                            "typeString": "struct MultiToken.Asset memory"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint40",
                            "typeString": "uint40"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "id": 64513,
                          "name": "PWNSimpleLoan",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 63281,
                          "src": "9814:13:89",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_PWNSimpleLoan_$63281_$",
                            "typeString": "type(contract PWNSimpleLoan)"
                          }
                        },
                        "id": 64514,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9828:5:89",
                        "memberName": "Terms",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 61054,
                        "src": "9814:19:89",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_Terms_$61054_storage_ptr_$",
                          "typeString": "type(struct PWNSimpleLoan.Terms storage pointer)"
                        }
                      },
                      "id": 64569,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [
                        "9848:6:89",
                        "9917:8:89",
                        "9988:8:89",
                        "10029:10:89",
                        "10300:6:89",
                        "10455:19:89",
                        "10518:19:89",
                        "10581:14:89",
                        "10668:16:89"
                      ],
                      "names": [
                        "lender",
                        "borrower",
                        "duration",
                        "collateral",
                        "credit",
                        "fixedInterestAmount",
                        "accruingInterestAPR",
                        "lenderSpecHash",
                        "borrowerSpecHash"
                      ],
                      "nodeType": "FunctionCall",
                      "src": "9814:940:89",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Terms_$61054_memory_ptr",
                        "typeString": "struct PWNSimpleLoan.Terms memory"
                      }
                    },
                    "src": "9802:952:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Terms_$61054_memory_ptr",
                      "typeString": "struct PWNSimpleLoan.Terms memory"
                    }
                  },
                  "id": 64571,
                  "nodeType": "ExpressionStatement",
                  "src": "9802:952:89"
                }
              ]
            },
            "baseFunctions": [
              64846
            ],
            "documentation": {
              "id": 64404,
              "nodeType": "StructuredDocumentation",
              "src": "7431:52:89",
              "text": " @inheritdoc PWNSimpleLoanProposal"
            },
            "functionSelector": "01e83272",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "acceptProposal",
            "nameLocation": "7497:14:89",
            "overrides": {
              "id": 64417,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7701:8:89"
            },
            "parameters": {
              "id": 64416,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64406,
                  "mutability": "mutable",
                  "name": "acceptor",
                  "nameLocation": "7529:8:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64573,
                  "src": "7521:16:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 64405,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7521:7:89",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64408,
                  "mutability": "mutable",
                  "name": "refinancingLoanId",
                  "nameLocation": "7555:17:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64573,
                  "src": "7547:25:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 64407,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7547:7:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64410,
                  "mutability": "mutable",
                  "name": "proposalData",
                  "nameLocation": "7597:12:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64573,
                  "src": "7582:27:89",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 64409,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7582:5:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64413,
                  "mutability": "mutable",
                  "name": "proposalInclusionProof",
                  "nameLocation": "7638:22:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64573,
                  "src": "7619:41:89",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 64411,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "7619:7:89",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 64412,
                    "nodeType": "ArrayTypeName",
                    "src": "7619:9:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64415,
                  "mutability": "mutable",
                  "name": "signature",
                  "nameLocation": "7685:9:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64573,
                  "src": "7670:24:89",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 64414,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7670:5:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7511:189:89"
            },
            "returnParameters": {
              "id": 64423,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 64419,
                  "mutability": "mutable",
                  "name": "proposalHash",
                  "nameLocation": "7736:12:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64573,
                  "src": "7728:20:89",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 64418,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7728:7:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 64422,
                  "mutability": "mutable",
                  "name": "loanTerms",
                  "nameLocation": "7777:9:89",
                  "nodeType": "VariableDeclaration",
                  "scope": 64573,
                  "src": "7750:36:89",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Terms_$61054_memory_ptr",
                    "typeString": "struct PWNSimpleLoan.Terms"
                  },
                  "typeName": {
                    "id": 64421,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 64420,
                      "name": "PWNSimpleLoan.Terms",
                      "nameLocations": [
                        "7750:13:89",
                        "7764:5:89"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 61054,
                      "src": "7750:19:89"
                    },
                    "referencedDeclaration": 61054,
                    "src": "7750:19:89",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Terms_$61054_storage_ptr",
                      "typeString": "struct PWNSimpleLoan.Terms"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7727:60:89"
            },
            "scope": 64574,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 64224,
              "name": "PWNSimpleLoanProposal",
              "nameLocations": [
                "628:21:89"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 65236,
              "src": "628:21:89"
            },
            "id": 64225,
            "nodeType": "InheritanceSpecifier",
            "src": "628:21:89"
          }
        ],
        "canonicalName": "PWNSimpleLoanListProposal",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 64223,
          "nodeType": "StructuredDocumentation",
          "src": "381:208:89",
          "text": " @title PWN Simple Loan List Proposal\n @notice Contract for creating and accepting list loan proposals.\n @dev The proposal can define a list of acceptable collateral ids or the whole collection."
        },
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          64574,
          65236
        ],
        "name": "PWNSimpleLoanListProposal",
        "nameLocation": "599:25:89",
        "scope": 64575,
        "usedErrors": [
          59971,
          59984,
          60778,
          60785,
          64299,
          64666,
          64669,
          64676,
          64681,
          64686,
          64691,
          64698,
          64705,
          66360
        ]
      }
    ],
    "license": "GPL-3.0-only"
  },
  "id": 89
}